Administrasjon
av Geodatabasen
(SQL, Oracle og PostgreSQL)
Morten Grimnes og Thor Morten Kopaas
ARCGIS ARKITEKTUREN
Klienter/konsumenter
Web tjenester, GP tjenester og lagring av data
Vi ser nærmere på databasen
ARCGIS DATABASEN - GEODATABASEN
• Data kan lagres i flere formater, alt fra filer til store
databasesystemer
– Access databaser, personlig geodatabase
– Filgeodatabase
– RDBMS database (Oracle, SQL Server, PostgreSQL + + )
• Personlig- og filgeodatabase gir alle brukere rett til «alt»
• RDBMS database gir muligheter for brukerkontroll
BRUKERTYPER I RDBMS
• RDBMS administrator
– Rettigheter til å opprette alle typer objekter innen en RDBMS
installasjon. Dette er «DBA».
• Geodatabase administrator
– Rettigheter til å administrere alle metadata og brukerdata som ligger
inne i en geodatabase. Normalt bruker SDE.
• Geodatabase eier
– Rettigheter til å jobbe med skjemaet i geodatabasen, utseendet.
– Gi rettigheter til utvalgte data - ikke områder men «typer» av data.
• Redigeringsbruker
– Rettigheter til å endre innholdet i geodatabasen, men ikke «utseendet»
• Innsysnbruker
– Rettigheter til å se innholdet i geodatabasen.
TILKOBLING TIL GEODATABASEN
Direct Connect – anbefalt og fremtidig tilkoblingsmetode
Application Server – tidligere metode. Støtte etter 10.2 faller bort
ArcSDEbiblioteker
RDBMSklient
RDBMS serverArcSDE biblioteker
gsrvr
giomgr
RDBMS server
TILKOBLING TIL GEODATABASEN -
DATABASEKLIENT
• Må installeres separat. Kan lastes ned fra flere plasser
– Databaseleverandøren (Oracle, Microsoft, PostgreSQL.org)
– ESRI, https://customers.esri.com (ikke nødvendigvis «siste» versjon)
TILKOBLING TIL (GEO)DATABASEN
• Ny tilnærming til kobling mot databaser fra 10.1
– Kan koble til «vanlige» databaser og Geodatabaser fra samme
dialogvindu.
– Direct Connect er standard tilkoblingsmetode
10.0 10.1
ROMLIGE DATATYPER
• Datatype hvor geometrien er en fysisk del av raden i en tabell
• Kan bare være én kolonne pr. tabell som inneholder en romlig
datatype (ArcGIS regel, ikke RDBMS)
• Oracle:
– ST_GEOMETRY (ESRI romlig type)
– SDO_GEOMETRY (Oracle Spatial eller Locator)
• PostgreSQL:
– ST_GEOMETRY (ESRI romlig type)
– POSTGIS (frittstående tillegg fra postgis.org)
• SQL Server:
– GEOMETRY (Geografiske koordinater, har fått Z- og M-verdier fra
SQL Server 2012)
– GEOGRAPHY (lik ESRI ST_GEOMETRY i Oracle og PostgreSQL)
VERSJONERING
Hver rad i disse tabellene inneholder en state.En state = en endring.
EnterpriseGDB
Vil alltid inneholde minst én versjon:SDE.DEFAULT
Brukere Geodatabase-objekter
.
.
.
.
.
.
Business-tabeller
Adds (A#)
Deletes (D#)
Delta-tabeller
VERSJONERING
• Tre hovedalternativer mulig
• Uversjonert
– Redigering basert på korte transaksjoner (RDBMS transaksjoner)
– Vil ikke «skjerme» redigeringer for andre
– Eksterne systemer kan se alle data
• Versjonert
– Redigering basert på lange transaksjoner
– Full isolering av redigeringer i egne versjoner
– Eksterne systemer har problemer med å se alle data
• Noe midt i mellom? Versjonert med «move edits to base»
– Redigeringer i egne versjoner basert på lange transaksjoner
– Redigeringer i SDE.DEFAULT basert på korte transaksjoner
– Alt knyttet til versjon SDE.DEFAULT liggende i businesstabellen
– Fungerer bare for enkle geometrier
REPLIKERING
• En måte å synkronisere innholdet i to eller flere databaser
– Krever full versjoneringsmodell (ikke «move edits to base»)
ARKIVERING
• Metode for å holde oversikt over endringer utført i databasen over
tid
• Tar utgangspunkt i alle endringer som gjøres i versjonen
SDE.DEFAULT
• Tidspunkt som registreres er tidspunkt endringen skjer i
SDE.DEFAULT
• Fra 10.1 også mulig å ha på uversjonerte data
1/1 1/2
1/2 1/3
1/3
Versjon: SDE.DEFAULT Arkiv (historikk)
EDITOR TRACKING
• Holder styr på hvem som endrer et objekt – en type «autoupdater»
• Ved bruk av fil- og personlige-, samt ArcSDE geodatabaser hvor
innlogging er «OS autentisert» er navn lik OS-brukernavn
• Ved bruk av ArcSDE geodatabaser hvor innlogging er et
brukernavn i databasen, er navn lik brukernavn i databasen
• Endringstidspunkt er tidspunktet endringen skjer i databasen
1/1Ole 1/2Jan 1/3Eva
Versjon: Hvilken som helst…
HVA MENER VI MED
GEODATABASEADMINISTRASJON?
• Hvilke oppgaver inngår?
– Backup?
– Tuning?
– Vedlikeholde geodatabaseskjema
– Brukere?
– Rettigheter
– ++
• Hvem er involvert
– Bare GDB ansvarlig? DBA’er i tillegg?
• Omfang
– Kan ikke «bare installere» og så ikke gjøre noe mer.
– Gjelder spesielt når det gjøres forvaltning av data i databasen.
NOEN «NOTATER» OM BACKUP
• Trenger ingen spesielle typer backup for en geodatabase
• Standard databaseverktøy fungerer fint
• I tillegg til Geodatabaseeieren, må vi også ha med SDE skjemaet
– Kopi av geodatabaseskjemaet er ubrukelig uten SDE skjemaet
• SQL Server og PostgreSQL databasebackup tar med «alt»
• I Oracle må vi huske på også å ta med SDE skjemaet sammen med
geodatabaseskjemaet ved bruk av exp[dp]/imp[dp]
ytelse og skalerbarhet
Database
Network
Geodatabase
Web Server
Application Server(s) (ArcGIS)
Network
Applications
Clients (Desktop, Browser, Devices)
Network DevicesHardware
Disk I/O
Er ytelsesproblemet i databasen?
Analyze og rebuild indexes
• Analyze
(Bygger databasestatistikk på tabeller og
indekser slik at RDBMS velger beste
eksekveringsplan)
arcpy.AnalyzeDatasets_management
• Rebuild indexes
(«Utdaterte» indekser kan føre til dårligere
ytelse)
arcpy.RebuildIndexes_management
compress
• Compress
(«Rydder» opp i deltatabellene til feature-
/objektklassene.)
arcpy.Compress_management
compress
• Dialogen «Geodatabase
Administration» gir en oversikt
over versjoner i geodatabasen.
• Anbefales at ingen brukere er
pålogget under kjøring av
compress -> kast ut brukere
Adds (A#)
Deletes (D#)
Delta-tabeller
.
.
.
Business-tabeller
• Flytter så mange rader som mulig fra delta-tabellene tilbake til
business-tabellene.
• Mange rader i delta-tabellene påvirker ytelsen negativt.
• Kan bare flytte rader med stater som er felles for alle versjoner.
compress
Reconcile / post
• Reconcile
(Henter endringer i «foreldre»-versjon
over i «barn»-versjon)
• Post
(Dytter endringer i «barn»-versjon over i
«foreldre»-versjonen)
arcpy.ReconcileVersions_management
Blokkerende versjoner
• Medfører at vi får en mindre optimal compress av
databasen.
• Versjoner som blokkerer for at en compress kan flytte
alle rader i delta-tabellene for SDE.DEFAULT til
business-tabellene
• Slike versjoner må
spores opp og enten
• Samkjøres
• Slettes
Monitorer system ressurser
• CPU
• Snitt på under 70%
• Disk
• Holdes under 80%
• Memory
• Snitt på under 80%
Tools:
Task Manager, resource monitor, perfmon, osv (windows)
top, glance, iostat, osv (unix/linux)
ytelse og skalerbarhet (Oppsummering)
1. Samkjør regelmessig
• Arcpy.ReconcileVersions.management
2. Komprimer regelmessig
• Arcpy.compress_management
3. Rebuild indekser regelmessig
• arcpy.RebuildIndexes_management
4. Oppdater statistikk regelmessig
• Arcpy.AnalyzeDataset_management
• Monitorer system ressurser regelmessig
Feilsøking
• Sdedc_<RDBMS>.log (C:\Users\<USERNAME>\AppData\Local\Temp)
• Direct-connect loggfil
• Nyttig hvis klienten ikke gir en “fornuftig” feilmelding
• SDEVERBOSE
• SQL-trace
• Veldig nyttig hvis ArcGIS-logger ikke er nok
• Vi kunne se alle SQL’er som er generert av ArcGIS og eventuelle
feilmeldinger
• sde_setup.log (C:\Users\<USERNAME>\AppData\Local\Temp)
• Logger ved kjøring av “Create Enterprise Geodatabase”
• GDBUpgrade.log (C:\Users\<USERNAME>\AppData\Local\Esri\Desktop10.2\)
• Logger ved oppgradering av en geodatabase.
Testverktøy
System Monitor (http://www.arcgis.com/home/item.html?id=848f48b0f88e4de7a036377197453efe)
• Et gratis verktøy for å monitorere og analysere et enterprise GIS system
(Windows, linux, ArcGIS for server, http, database)
• Ytelse
• Last
• Hardware
• Hvor er flaskehalsen
• Oppetid
• +++
Testverktøy
System Test (http://www.arcgis.com/home/item.html?id=e8bac3559fd64352b799b6adf5721d81)
• Et gratis verktøy for å gjennomføre funksjonalitet- og lasttester i et
enterprise GIS system (Gis Services)
• Automatisk generert test
• Spill av sesjon med Fiddler2/Firebug
• Simuler x-antall brukere
• Resultat fra test er en veldig nyttig
rapport
Testverktøy
PerfQA Analyzer (http://blogs.esri.com/esri/supportcenter/2012/04/03/new-arcgis-performance-calibration-tool/)
• Et gratis verktøy for å tune mxd-dokumenter og database
• Opptegning
• Simuler redigeringsesjoner
• Fetch Data times
• Start/stop SQL-trace
Testverktøy
mxdperfstat (http://www.arcgis.com/home/item.html?id=a269d03aa1c840638680e2902dadecac)
• Et kommandolinje-verktøy for å analysere ytelse på mxd-dokumenter
mxdperfstat -mxd <DocumentName.mxd> [-scale scale1;scale2;...] [-xy <x;y>] [-width <screen width> -height
<screen height>] [-dbms -host -instance -database -service -port -user -password]
Takk for oss