srpen 2008
Přehled revizí | ||
---|---|---|
Revize 1.1 | 28. dubna 2009 | Pejša Jiří |
Zapracování připomínek Ing. Karla Jedličky z 8.4.2009.
| ||
Revize 1.0 | 15. února 2009 | Pejša Jiří |
První verze dokumentu ke zpřipomínkování. |
Anotace / Annotation
„(SDE) Geodatabáze“ popisuje typy geodatabází a zaměřuje se na SDE geodatabáze, které by mohli být řešením pro víceuživatelskou editaci kartografických vizualizací geodatabází. Je popsána instalace databázového systému Oracle Express Edition a instalace ArcSDE Enterprise Edition a jejich vzájemná konfigurace. V závěru jsou diskutována možná řešení využití SDE geodatabází na katedře archeologie.
“(SDE) Geodatabáze” describes types of geodatabses and especially deals about SDE geodatabases, which could be solution for multi-user editing of cartographic vizualisations of geodatabases. There is description of instalation of database management system Oracle Express Edition and instalation ArcSDE Enterprise Edition and their configuration.
Obsah
Seznam obrázků
Seznam tabulek
Obsah
Rozsáhlé kartografické produkty vytvářené pomocí databázové kartografie vznikají za spolupráce větších týmů. Proto je nezbytná možnost víceuživatelské editace jedné databáze. Tomuto požadavku vyhovuje ArcSDE geodatabáze, která je uložena v některém relačním databázovém systému. Přístup do ní ESRI produktům zprostředkovává (middleware) ArcSDE.
V této práci jsem na jednom ze serverů katedry archeologie (KAR) provedl instalaci ArcSDE pro účely uložení dat, která jsou následně publikována technologií ArcIMS.
Kromě instalace DBMS a ArcSDE jsou popsány základní operace administrace a vzájemné konfigurace těchto technologií.
Obecně báze geodat je databáze přizpůsobená pro ukládání a správu prostorových dat. V podání ESRI se báze geodat nazývá geodatabáze, které mohou být různých typů.
V ArcGIS 9.2 se rozlišují tři hlavní typy geodatabází: Personal Geodatabase, File Geodatabase a ArcSDE Geodatabase. U ArcSDE Geodatabase se rozlišují tři typy, které se liší použitými technologiemi při jejich tvorbě a správě. Obrázek 1.1 – „Typy geodatabází“ graficky znázorňuje těchto celkem pět typů geodatabází:
Tabulka 1.1 – „Srovnání typů geodatabází“ shrnuje různé parametry těchto pěti typů geodatabází:
Tabulka 1.1. Srovnání typů geodatabází
Charakteristika | Personal Geodatabase | File Geodatabase | ArcSDE Personal Geodatabase 9.2 | ArcSDE Workgroup Geodatabase 9.2 | ArcSDE Enterprise Geodatabase 9.2 |
---|---|---|---|---|---|
Databázový systém (formát uložení) | MS Access Jet Database engine (*.mdb) | Binární soubory v souborovém systému | MS SQL Server 2005 Express Edition[a] | MS SQL Server 2005 Express Edition | |
Omezení velikosti | 2 GB, efektivně 250-500 GB | 1 TB / dataset (tabulku) | 4 GB / GDB[d] | 4 GB / GDB[d] | Omezeno pouze použitým OS a DBMS |
Podporované platformy | Windows | Multi-platformní: Windows, Linux, Solaris | Windows | Windows | Windows, Unix, Linux; při přímém připojení jakákoliv platforma |
Počet uživatelů |
|
|
|
|
|
Podpora verzování | Ne (pouze check-in/checkout replikace) | Ne (pouze check-in/checkout replikace) | Ano | Ano | Ano |
Podpora archivování | Ne | Ne | Ano | Ano | Ano |
Podpora replikací | Ne | Ne | Ano | Ano | Ano |
Typ připojení do databáze | - - - | - - - | přímé | přímé | přímé nebo přes ArcSDE application server (ArcSDE službu) |
Možnost uživatelské změny konfigurace | - - - | - - - | Ne | Ne | Ano |
Typ autentifikace uživatele | - - - | - - - | OS autentifikace | OS autentifikace | DBMS nebo OS autentifikace |
Rozhraní pro správu | ArcCatalog, MS Access | ArcCatalog | ArcCatalog (+ případné nástroje pro správu SQL Serveru) | ArcCatalog (+ případné nástroje pro správu SQL Serveru) | ArcCatalog, ArcSDE command line, klienti příslušných RDBMS |
Licencování | ArcView, ArcEditor, ArcInfo | ArcView, ArcEditor, ArcInfo | ArcEditor, ArcInfo (jako součást ArcGIS Desktop) | ArcEditor nebo ArcInfo & ArcGIS Server Workgroup ( 1 počítač & 1 CPU Socket s jedním nebo dvěma jádry) | ArcEditor nebo ArcInfo & ArcGIS Server Enterprises (více počítačů, bez omezení, licencováno pro CPU nebo jádro) |
Použití v síti | ? | ? | Ne - pouze desktopové využití | Intranet & internet | Intranet & internet |
CPU | ? | ? | 1 CPU nebo jádro[d] | 1 CPU nebo jádro[d] | Bez omezení |
RAM | ? | ? | 1 GB[d] | 1 GB[d] | Bez omezení |
Bezpečnost a práva | Dána možnostmi OS Windows (zabezpečení souborů systémem) | Dána možnostmi požitého OS | Dána možnostmi OS Windows & MS SQL Server | Dána možnostmi OS Windows & MS SQL Server | Zajišťuje DBMS |
Poznámky | Původní formát pro ArcGIS uložený a spravovaný v Microsoft Access. Omezena velikost a vázaný na OS Windows. Využití MS Access pro správu atributů. | Doporučený formát pro ukládání geodat v souborovém systému. Umožňuje zkomprimovat data, která jsou pak pouze pro čtení | Je nutná dodatečná investice do ArcGIS Server Workgroup. | Je nutná dodatečná investice do ArcGIS Server Workgroup a vlastního RDBMS. | |
[a] [ESRI: New in ArcGIS 9.2] : „Bude (vedle SQL Express) , nebo jiný volně dostupný DBMS?“ „Ve verzi 9.2 nikoliv. Personal a Workgroup podporují hlavně SQL Server Express, avšak zvažujeme, že některé z těchto express verzí, které byly zveřejněny, budou v budoucnu podporovány.“ [b] Volitelně mohou být pro uložení geometrie použity nadstavby Oracle Spatial nebo Oracle Locator. [c] Velmi příjemným překvapením pro mě bylo nahlédnutí na odpovídající stránky ArcSDE 9.3 - přibyla podpora DBMS PosgreSQL! [d] Dáno omezením použitého RDBMS |
Personal Geodatabase (PGDB) je používána v ArcGIS od verze 8.0 a
je ukládána ve formátu Mirosoft Access (*.mdb
).
Poskytuje však možnost správy omezeného množství dat a nevyniká ani v
kompresních poměrech (viz [KRALOVEC: Geodatabáze]). Někteří
uživatelé však mohou využívat pro správu atributových dat funkcí
programu Microsoft Access.
ArcGIS bude nadále podporovat tento formát, nicméně uživatelům je dnes spíše doporučován formát File Geodatabase.
Tento nástupce PGDB, který byl představen ve verzi ArcGIS 9.2 disponuje nespornými výhodami (viz též již citovanou [KRALOVEC: Geodatabáze]):
přenosná multiplatformní geodatabáze nezávislá na žádném DBMS,
vhodná pro práci s velmi objemnými daty,
vysoký výkon a kompresní poměry (oproti PGDB přibližně poloviční nároky na úložný prostor),
umožňuje více současných editací, které však musí být prováděny v různých datasetech, nebo samostatných prvkových třídách či tabulkách.
„Vítejte do ArcSDE, GIS brány do vašeho DBMS.“[1][ESRI: Understanding ArcSDE]
ArcSDE Geodatabáze jsou třetím typem geodatabáze v ArcGIS 9.2. Při vytváření těchto typů geodatabází je využíván produkt ArcSDE - Spatial Database Engine (Advanced Spatial Data Server).
ArcSDE bývalo samostatným produktem patřícím do "Arc..." rodiny produktů ESRI, avšak od verze 9.2[2]je začleněno v balíku ArcGIS Server [ESRI: ArcSDE]. Ten je dodáván ve dvou úrovních kapacity: ArcGIS Server Workgroup a ArcGIS Server Enterprise a třech úrovních funkcionality kde ve všech je zahrnuta technologie ArcSDE: Basic, Standard, Advanced (viz obrázky 1.2 – „Licence a verze ArcGIS Server Workgroup“ a 1.3 – „Licence a verze ArcGIS Server Enterprise“).
Poznámka: licence Workgroup a Enterprise se liší hlavně v typu podporovaných DBMS, počtu uživatelů, maximální velikosti databáze a využití paměti (viz tabulku 1.1 – „Srovnání typů geodatabází“). |
Rozlišují se tři typy ArcSDE geodatabází (viz též tabulku 1.1 – „Srovnání typů geodatabází“):
ArcSDE Personal Geodatabase dodávána jako součást instalace ArcEditor či ArcInfo licence ArcGIS Desktop,
ArcSDE Workgroup geodatabáze dodávána jako jedna z komponent ArcGIS Serveru v licenci Workgroup,
ArcSDE Enterprise geodatabáze dodávána jako jedna z komponent ArcGIS Serveru v licenci Enterprise.
Jejich společným rysem je využití relačních databázových systémů (RDBMS) pro uložení geodat.
Hlavní důvody (výhody) využití RDBMS pro ukládání geodat stručně shrnují následující body:
Data (atributová i prostorová) jsou integrována v jednom datovém úložišti.
Větší možnosti při ochraně, sdílení a publikování dat.
Umožněna současná práce (editace/prohlížení) více uživatelů najednou.
Snadná tvorba záloh a replikací.
Centralizovaný přístup k datům.
Výhody při údržbě SW i HW.
Výhody přístupu klient/server.
Využití zavedených relačních databázových systémů disponujících vysokým výkonem a souvisejících standardů pro operace s/nad daty (SQL).
DBMS spolu s ArcSDE vytváří databázovou vrstvu v komplexní n-vrstvé architektuře tvorby aplikací. Atributová data by ještě bylo možné ukládat přímo do RDBMS (například pomocí různých nativních klientů jednotlivých DBMS), ale prostorová data a operace s/nad nimi je třeba upravit do formy vhodné pro konkrétní RDBMS - a právě toto zajišťuje ArcSDE - tvoří důležitý mezičlánek (middleware) pro ESRI produkty (ArcGIS Desktop/Server/Engine, ArcIMS, ArcInfo Workstation, ArcWiew ArcSDE CAD Client, MapObjects..) při ukládání a správě geodat v DBMS (viz obrázek 1.4 – „Role ArcSDE v rámci třívrstvé aplikační logiky za využití ESRI produktů“).
Tato základní verze ArcSDE geodatabáze je již dostupná v rámci licence ArcEditor[3] a vyšší. Představuje tak nenákladnou volbu pro ukládání dat v DBMS při zachování výhod verzování, replikování a archivování. Využívá Microsoft SQL Server Express Edition 2005, který je též volně k dispozici - lze buď nainstalovat v rámci instalace ArcGIS Desktop nebo je volně ke stažení. Pro ovládání DBMS není třeba hlubokých znalostí databází, neboť lze ovládat velmi jednoduše přes ArcCatalog.
ArcSDE Personal Geodatabase má svá omezení, které plynou z použitého DBMS: je možné využít pouze jeden procesor (či jedno jádro u vícejádrových procesorů), dále je možné využít maximálně 1 GB RAM a maximální velikost databáze jsou 4 GB. Víceuživatelská editace není možná, neboť dalším omezením jsou 3 paralelní uživatelé z nichž pouze jeden může provádět editace.
Tato verze, stejně jako předchozí využívá stejný DBMS - SQL Server Express Edition 2005 a proto má stejná omezení ze strany databázového serveru: jeden procesor, max. 1 GB RAM, max. velikost GDB 4 GB. Také ovládání je stejné - přes ArcCatolog.
Odlišuje se v maximálním počtu paralelních uživatelů, kterých může být 10 a všichni mohou provádět editace. Pro tuto verzi je však třeba dokoupit ArcGIS Server v licenci Workgroup (viz kapitola 1.1.3 – „ArcSDE Geodatabase“), který může poskytnou další přidanou funkcionalitu.
Tato funkčně nejpokročilejší a také nejdražší varianta využívá služeb komerčních DBMS. Z tabulky 1.1 – „Srovnání typů geodatabází“ je vidět, že jsou podporovány čtyři různé relační databázové systémy, které však už musí spravovat někdo s většími znalostmi databázových systémů.
Je tak možné dosáhnou nejvyšší možné velikosti databáze i počtu editujících uživatelů.
Někteří z podporovaných producentů DBMS také ve svých systémech podporují ukládání prostorových dat. Je tak možné využít prostorové datové typy při ukládání geometrie a implementované funkce nad nimi, nebo pokročilé struktury pro ukládání rastrů (konkrétně pro DBMS Oracle jde například o nadstavbu
s datovými typy SDO Geometry a GeoRaster).Obsah
Na začátku práce jsem se rozhodoval, který RDBMS instaluji. K dispozici jsem měl ArcGIS Server Enterprise 9.2, takže na výběr jsem měl ze 4 RDBMS (viz tabulku 1.1 – „Srovnání typů geodatabází“). Vzhledem k větší rozšířenosti a tedy podpoře v našich končinách, jsem se rozhodoval mezi DBMS Oracle a Microsoft SQL Server. Před instalací je třeba prozkoumat, které verze DBMS jsou podporovány, což závisí nejenom na použité verzi ArcSDE ale i OS. Zjištěná fakta shrnuje tabulka 2.1 – „Výběr podporovaných DBMS pro ArcSDE 9.2 na PC-Intel Windows XP Professional Edition“:
Tabulka 2.1. Výběr podporovaných DBMS pro ArcSDE 9.2 na PC-Intel Windows XP Professional Edition[4]
DBMS | Versions |
---|---|
Oracle | Oracle 10g R2 (32 bit) 10.2.0.2 |
Oracle 9i (32 bit) 9.2.0.7 | |
SQL Server | Microsoft SQL Server 2000 SP4 Developer Edition |
[4] (zdroj [ESRI: Support matrix for ArcSDE]) |
Z tabulky plynou překvapivé informace:
Microsoft SQL Server 2005 není na platformě Windows XP podporován. Na platformě Windows 2003 Server však již tato podpora je. Je možné, že by ArcSDE 9.2 Enteprise běhalo in na Windows XP s Microsoft SQL Server 2005, což by také mohl podpořit fakt, že ve verzích ArcSDE Personal a ArcSDE Workgroup je používán právě a pouze tento DBMS. Jde však pouze o domněnku, kterou jsem více nezkoumal.
Mezi podporovanými verzemi Oracle 10g R2 je jako nejnižší uvedena verze 10.2.0.2. Na stránkách Oracle je však ke stažení[5] pouze verze 10.2.0.1 (edice Enterprise, Standard i Express). Je možné, že by to spravil nějaký service pack, nicméně též jsem to podrobněji nezkoumal[6].
Pro verzi Oracle 10g R2 (32 bit) 10.2.0.2 je v omezeních uvedena následující poznámka:
„Windows XP Service Pack 2 je podporován pouze pro základní testování a vývoj aplikací. Není však doporučen pro využití v produkčním prostředí.“[7]Také v instalační příručce jsou zmiňovány pouze systémy Windows Server 2003 a Windows 2000 nicméně je tam poznámka: "Vyšší verze mohou fungovat a obyčejně i fungují. Nižší verze podporvány nejsou."[8]
Zajímalo mě tedy, jak to je s podporou Windows XP a položil jsem dotaz na uživatelskou podporu firmy ARCDATA. Dozvěděl jsem se, že na Windows XP to bude pracovat korektně, niméně to není podporovaná platforma.
Bohužel jsem neměl k dispozici žádnou z komerčních verzí DBMS o kterých jsem uvažoval - tedy ani Oracle 10g, ani Microsoft SQL Server 2000. Proto jsem se musel spokojit s volně dostupnými verzemi. Před objevením informací o podporovaných verzích na stránkách ESRI jsem si myslel, že bude pod OS Windows XP podporován i MS SQL Server 2005. Provedl jsem proto srovnání freewarových verzí Oracle Database 10g Express Edition a MS SQL Server 2005 Express Edition. Přestože jsem se později dozvěděl o že SQL Server 2005 není podporován (což jak bylo řečeno neznamená, že to nejde pod jiným OS, ani to, že by to pod XP nechodilo), tak jde o zajímavé srovnání hlavních prvků konkurenčních produktů:
Tabulka 2.2. Oracle Express versus SQL Server 2005 Express
Feature | Oracle 10g Express Edition[a] | SQL Server 2005 Express[b] |
---|---|---|
Number of CPUs | 1 | 1 |
RAM | 1GB | 1GB |
Database Size | 4GB | 4GB |
OS | Windows / Linux | Windows |
Spatial[c] / Locator | NO / YES | [d]NO / NO |
Oracle SQL Developer / SQL Server Management Studio Express | YES | YES |
Application Express | YES | NO |
Java Support | NO | NO |
PL/SQL and Java Server Pages | YES / NO | YES? |
T-SQL Enhancements | NO | YES |
Stored Procedures, Triggers, and Views | YES | YES |
User-defined Types | YES? | YES |
Comprehensive XML Support / Native XML | YES | YES |
Data Warehousing | NO | NO |
Data Mining | NO | NO |
Price | Free | Free |
[a] Verze 10g je uvedena na stránce: Oracle.com: Oracle Database 11g Editions [c] Zahrnuje plnou podporu 3D a Webových služeb pro správu všech geodat (vektorových a rastrových dat, topologie, a síťových modelů) [d] Je však třeba podotknout, že ve verzi SQL Server 2008 se již podpora prostorových datových typů chystá. |
Vzhledem k jisté podpoře jsem nakonec zvolil DBMS Oracle 10g.
Vzhledem k tomu, že se jedná o nejnižší verzi DBMS Oracle vhodnou
i pro méně zkušené databázové administrátory, tak i instalace byla velmi
snadnou záležitostí za automatické volby přednastavených hodnot. Během
instalace jste tak dotázáni pouze na umístění a heslo pro přístup do
databáze (neboli heslo administrátorských účtů SYS a SYSTEM). Toto heslo
jsem zvolil standardně - *******
[9].
V instalačním manuálu [ORACLE: EE Installation Guide] stojí:
Jestliže se chystáte instalovat Oracle Database XE Server na počítač s Windows XP Service Pack 2 nebo Windows Server 2003 Service Pack 1 a následně se připojovat z jiného počítače, zkontrolujte, zda firewall neblokuje komunikaci na těchto portech. Jedná se o standardní porty, které Oracle Database XE využívá.
1521: Oracle database listener,
2030: Oracle Services pro Microsoft Transaction Server,
8080: HTTP port pro Oracle XML DB a pro grafické uživatelské rozhranní Oracle Database XE.[10]
V rámci instalace DBMS Oracle je nainstalován Oracle Net který zajišťuje spojení mezi klientskými aplikacemi a databází za použití TCP/IP. Ten zahrnuje Oracle Net listener (krátce listener). Tento proces[11], který běží na serveru naslouchá na určitých TCP/IP portech požadavkům na spojení. Dorazí-li validní požadavek z klientské aplikace, tak je nasměrován do databáze a dojde k přímému spojení. Existují dva typy spojení:
Standardní číslo TCP portu je 1521. Jde například o vzdálené spojení z SQL příkazové řádky.
Standardní číslo TCP portu je 8080. Jde například o (vzdálený) přístup do aplikace Application Express.
Stav procesu listener lze zjistit zadáním příkazu LSNRCTL STATUS v příkazové řádce serveru.
Během istalace však nedošlo k nabídce změny standardních čísel portů (jak slibuje manuál v případě že je některý z portů již obsazen). Automatická volba portu pro HTTP Listener na honotu 8080 však způsbila potíže. Na tomto portu totiž již běžel Apache servrující služby ArcIMS, na které po instalaci Oracle přestal fungovat přístup přes web. Kvůli kolizi na portu 8080 též nefungovala správa Oracle přes webové rozhraní Application Express (viz obrázek 2.1 – „Chybové hlášení při pokusu otevřít Application Express“).
Bylo proto nutné změnit číslo portu na kterém listener naslouchá
HTTP požadavkům. Hodnoty portů procesu listener lze vidět například ve
výpisu jeho statusu nebo klasickým příkazem SELECT.
Jejich změnu lze provést pomocí SQL příkazů skrze nějakého
databázového klienta či v SQL řádce Application
Express. Já jsem použil aplikaci SQL
Developer (více o obou aplikacích viz kapitolu 2.1.2.1 – „Připojení do DBMS“). Hodnotu čísla portu na kterém
listener naslouchá HTTP požadavkům jsem změnil na hodnotu
8090
(viz [12] nebo [13]):
/*zjisteni cisla aktualne pouziteho HTTP portu select dbms_xdb.gethttpport as "HTTP-Port" from dual; HTTP-Port ----------- 8080 1 rows selected /*zmena cisla HTTP portu EXEC DBMS_XDB.SETHTTPPORT('8090'); anonymous block completed HTTP-Port ------------ 8090
Před úpravou čísla tohoto portu příkaz LSNRCTL STATUS nevypsal žádný HTTP port, což bylo nejspíše způsobeno kolizí. Po jeho změně již je vypsán s novým číslem:
C:\oraclexe\app\oracle\product\10.2.0\server\BIN>LSNRCTL STATUS
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 30-Září-2008 20:11:57
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
Start Date 30-Září-2008 13:57:44
Uptime 0 days 6 hr. 14 min. 13 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Default Service XE
Listener Parameter File C:\oraclexe\app\oracle\product\10.2.0\server\network\admin\listener.ora
Listener Log File C:\oraclexe\app\oracle\product\10.2.0\server\network\log\listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC_FOR_XEipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=eugen)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=eugen)(PORT=8090))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "XEXDB" has 1 instance(s).
Instance "xe", status READY, has 1 handler(s) for this service...
Service "XE_XPT" has 1 instance(s).
Instance "xe", status READY, has 1 handler(s) for this service...
Service "xe" has 1 instance(s).
Instance "xe", status READY, has 1 handler(s) for this service...
The command completed successfully
Po této změně a změně odkazu
Database_homepage.url
v menu
Start/Programy/Oracle Database 10g Express Edition/Go To
Database Home Page se již v pořádku načte úvodní stránka
aplikace Application Express (viz obrázek 2.2 – „Úvodní stránka aplikace Application
Express“) kam je možné se přihlásit jako administrátor
DBMS (DBA) loginem a heslem zmíněným v úvodu kapitoly.
Existují dva způsoby připojení: lokální a vzdálené. Vzhledem k tomu že se jedná o server, tak lze předpokládat, že častější bude vzdálené připojení.
Zmíním dva způsoby připojení: pomocí webového rozhraní Application Express a pomocí aplikace SQL Developer. Jiná možnost připojení je například z SQL řádky.
„Oracle Application Express (Oracle APEX) je rychlé vývojové prostředí webových aplikací pro databáze Oracle. Pouze za použití webového prohlížeče a skromných zkušeností s programováním můžete vyvíjet a rozmisťovat profesionální aplikace, které jsou jak rychlé, tak bezpečné.“[14][ORACLE: Application Express]
Application Express je standardně nainstalován v rámci instalace Oracle Database Express Edition. Kromě základních operací administrace DBMS zahrnuje Application Builder - prostředí pro vývoj vlastních webových aplikací nad databázemi.
Na úvodní stránku rozhraní (viz obrázek 2.2 – „Úvodní stránka aplikace Application Express“) se lze dostat například následujícími způsoby:
Menu Start/Programy/Oracle Database 10g Express Edition/Go To Database Home Page,
Zadání adresy ve tvaru
http://127.0.0.1:port/apex
,
případně
http://localhost:port/apex
do
webového prohlížeče. Takže pro tuto instanci DBMS to
jest:
http://127.0.0.1:8090/apex
či
http://localhost:8090/apex
.
Na úvodní stránce je již možné provést přihlášení buď do standardního administrátorského účtu SYSTEM (nebo SYS) nebo do vytvořených uživatelských účtů.
Tyto administrátorské účty jsou automaticky vytvořeny při instalaci DBMS se stejným heslem (viz úvod kapitoly 2.1 – „Instalace Oracle Database 10g Express Edition“).
Vykonává všechny běžné administrátorské funkce vyjma startování a zastavování databázového serveru.
Má přístup a práva ke všem tabulkám data dictionary. Nicméně je doporučeno neprovádět na nich jakékoliv změny ani vytvářet nové v zájmu zachování integrity a fungování databáze.
Obyčejně není důvod přihlašovat se jako SYS uživatel. Ke všem potřebným operacím by měl postačovat účet SYSTEM[15].
„Oracle SQL Developer je volně dostupné a plně podporované grafické prostředí pro databázový vývoj. S aplikací SQL Developer můžete procházet databázové objekty, vykonávat SQL příkazy a skripty, editovat a ladit PL/SLQ příkazy. Také můžete spouštět jakékoliv množství připravených reportů, stejně tak jako vytvářet své vlastní. SQL Developer zvyšuje produktivitu a zjednodušuje úkoly databázového vývoje.“[16][ORACLE: SQL Developer]
Aplikace je skutečně velmi dobrým nástrojem pro vývoj a správu databází jak slibuje úvodní citace. Výhodou může být také to, že není třeba instalovat - stačí rozbalit. Jiným též velmi dobrým a v určité verzi volně dostupným nástrojem je například DbVisualiser[17].
Oba zmiňované nástroje jsem nainstaloval na straně serveru - viz Oracle Thin v příslušné verzi[18]). Připojení v programu SQL Developer provedeme v menu například tak, jak je ukázáno na následujícím obrázku:
či (pro připojení do databáze Oracle je třeba přidat JDBC ovladačToto spojení jsem uložil pod názvem
OracleXE_system
.
Popíši tři způsoby připojení - opět pomocí webového rozhraní Application Express, z SQL řádky a pomocí aplikace SQL Developer:
Jde o nejméně náročné připojení co do administrátorovi aktivity, avšak jde také o nejméně bezpečné připojení.
Po instalaci je připojení do databáze přes HTTP protokol pomocí aplikace Application Express možné pouze lokálně na straně serveru. Vzdálené připojení přes tento protokol musí administrátor nejprve povolit. Je zde však jedno varování:
Vzdálený přístup přes HTTP protokol do databáze Oracle XE není nijak kódováno - veškeré vyměněné informace, včetně jmen a hesel, jsou v textové formě!!!
Povolení tohoto přístupu je možné provést různými způsoby [19]:
Po přihlášení do Application Express jako administrátor je třeba zaškrtnout volbu „Available from local server and remote clients“ v menu .
SQL příkazem (ať už ze vzdáleného či lokálního klienta):
/*Povoleni vzdaleneho pristupu do DBMS pres HTTP port: EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE); /*Zakázani vzdaleneho pristupu do DBMS pres HTTP port: EXEC DBMS_XDB.SETLISTENERLOCALACCESS(TRUE);
Po povolení je pak možné i ze vzdálených počítačů přistupovat k DBMS přes webové rozhraní aplikace Application Express z adresy http://147.228.18.11:8090/apex.
Pro fungování tohoto vzdáleného přístupu však bylo třeba ještě provést jednu operaci - udělit výjimku portu 8090 ve Windows firewallu a antiviru na straně serveru:
- přidat port - 8090 (název např.: Oracle_HTTP_connection_8090)
Obdobným způsobem je třeba udělit výjimku portu v případě, že antivir používá vlastní firewall.
Následující dva způsoby připojení jsou odlišné v tom, že komunikace neprobíhá přes protokol HTTP na portu 8090, ale v různých klientských aplikacích pomocí JDBC driverů na portu 1521 a proto je možné dosáhnou mnohem větší míry zabezpečení. Stejným způsobem jako v případě portu 8090, je třeba udělit portu 1521 výjimku ve Windows firewallu (přidat port - 1521, název např.: Oracle_database_connection_1521)) a případně v antiviru.
Pro tento způsob připojení je již nutná instalace klientského prostředí. Tím je Oracle Database Express Edition Client (Oracle Database XE Client). Tento klient se instaluje na vzdálený klientský počítač a je volně ke stažení[20]. Existují však i jiní klienti - například Oracle Database Instant Client, který není nutno instalovat[21]. Zde však popíši připojení pomocí programu XE Client.
Po instalaci klientského prostředí spustíme buď přímo SQL řádku z menu sqlplus /nolog. Připojení do databáze pak provedeme následující notací: CONNECT username/password@[//]host[:port][/service_name]. V našem případě tedy: CONNECT system/*******@147.228.18.11:1521 nebo CONNECT system/arcdata@eugen.ff.zcu.cz:1521 (viz obrázek 2.3 – „Vzdálené připojení do Oracle XE pomocí programu XE Client“).
nebo v příkazové řádce napíšeme příkazProgram a způsob připojení je stejný jako v případě lokálního připojení. Odlišné je pouze IP adresa:
Systém je automaticky spouštěn po každém restartu, pokud nebyl ručně zastaven.
DBMS je možné spustit či zastavit pomocí dávkového souboru
StartDB.bat
jehož zástupce Start
Database
je umístěn v příslušné položce Oracle Database v
menu Start. Při spouštění systému jsou spuštěny služby
OracleXETNSListener.exe
a
OracleServiceXE.exe
. (viz obrázek 2.5 – „Spuštění DBMS Oracle Express Edition“). Po spuštění systému je také spuštěn
proces oracle oracle.exe
.
Na stejném místě je také umístěn zástupce Stop
Database
dávkového souboru
StopDB.bat
, který databázový systém zastaví,
respektive zastaví službu OracleServiceXE.exe
(viz obrázek 2.6 – „Zastavení DBMS Oracle Express Edition“). Po zastavení
systému je také zastaven a odstraněn zmiňovaný proces
oracle.exe
.
Při pokusu o ukončení databázového systému v případě, kdy
běží služba ArcSDE (více viz kapitola 3.4.1 – „Spuštění služby ArcSDE“) je administrátor upozorněn, že
právě ArcSDE Service závisí na službě
OracleServiceXE.exe
a že dojde také k jejímu
ukončení. V případě, že jsou do databáze připojeni uživatelé, tak
bude mít tento úkon za následek ztrátu jejich připojení!
Uživatele je opět možné vytvořit více způsoby. Jednoduchý a intuitivní je například způsob v Application Express. Druhým je samozřejmě použití SQL příkazů v některém z klientů.
Podrobněji tento úkon popíši například v kapitole 3.3.2 – „Vytvoření uživatelů uživatelské SDE geodatabáze“, kde využívám druhého způsobu.
Popsaná omezení DBMS Oracle XE napovídá, že kombinace ArcSDE 9.2 Enterprise Edition - Oracle 10g Express Edition - Windows XP není zcela optimální. Nicméně vzhledem k daným podmínkám (jiné DBMS nebylo k dispozici) je to maximum, čeho lze dosáhnout.
Nejvíce omezujícím je omezení maximální velikosti databáze na 4GB, což v případě geodat může být poměrně omezující.
Zajímalo mě, čeho se toto omezení týká - zda to je součet všech tablespaces v DBMS, nebo zda to je omezení velikosti jednoho tablespace (více o tablespaces a jejich definicích viz kapitoly 3.2.1 – „Nastavení prostředí SDE uživatele“ a 3.3.1.1 – „Vytvoření prostředí uživatele“). V případě, že by se jednalo pouze o omezení maximální velikosti jednoho tablespace, tak by se nejednalo o tak velký problém, neboť by šlo data organizovat do více tablespaces (neboli do více uživatelských SDE geodatabází; více viz kapitolu 3.3 – „Vytvoření více uživatelských SDE geodatabází v DBMS Oracle XE“). Při definování uživatelských tablespaces ve zmiňovaných kapitolách jsem však zjistil, že se bohužel jedná o součet velikostí všech uživatelem definovaných tablespaces. Jak je vidět z obrázků v tabulce 2.3 – „Definované tablespaces“ tak se do tohoto součtu zřejmě nepočítají systémové tablespace, čemuž nasvědčuje celkový součet všech tablespaces (5020MB) přičemž součet mnou definovaných tablespaces je přesně 4GB, součet systémových tablespaces je 1110MB a fyzický limit je 5120MB. Při pokusech definovat tablespaces v součtu překročující tento fyzický limit mi to hlásilo chybu.
[4] (zdroj [ESRI: Support matrix for ArcSDE])
[5] Oracle Database 10g Release 2 (10.2.0.1.0) Enterprise/Standard Edition for Microsoft Windows (32-bit)
Oracle Database 10g Release 2 (10.2.0.1) Express Edition for Microsoft Windows
[6] Když mi to na té verzi 10.2.0.1 běhá.
[7] „Windows XP Service Pack 2 is supported for basic testing and application development use only. It is not recommended for deployment in a production environment.“
[8] Higher releases may, and usually do, work. Lower versions of releases are not supported.
[9] :-)
[10] „If you plan to install Oracle Database XE Server onto a computer running Windows XP Service Pack 2 or Windows Server 2003 Service Pack 1 and then connect to it from another computer, check that the firewall has not been configured to block communication from the following incoming ports. These ports are the default ports that Oracle Database XE uses.“
„-1521: Oracle database listener,“
„-2030: Oracle Services for Microsoft Transaction Server,“
„-8080: HTTP port for Oracle XML DB and the Oracle Database XE graphical user interface.“
[11] tj. zřejmě služba OracleXETNSListener.exe
[14] „Oracle Application Express (Oracle APEX) is a rapid web application development tool for the Oracle database. Using only a web browser and limited programming experience, you can develop and deploy professional applications that are both fast and secure.“
[15] Jedná se o doporučení na stránkách Oracle. V případě administrace ArcSDE to nemusí být vždy pravda (viz kapitolu 3.2.1 – „Nastavení prostředí SDE uživatele“ :-)
[16] „Oracle SQL Developer is a free and fully supported graphical tool for database development. With SQL Developer, you can browse database objects, run SQL statements and SQL scripts, and edit and debug PL/SQL statements. You can also run any number of provided reports, as well as create and save your own. SQL Developer enhances productivity and simplifies your database development tasks.“
[20] po registraci .. oracle.com: Oracle Database 10g Express Client
Obsah
V této kapitole popíši instalaci ArcSDE, ručně provedu post-instalační nastavení a budu se zabývat užitečnou možností definovat si více SDE geodatabází v jediném DBMS. Na závěr uvedu několik užitečných příkazů pro zjišťování informací o stavu SDE a jeho správu.
Jak bylo zmíněno v kapitole 1.1.3 – „ArcSDE Geodatabase“,
tak ArcSDE je nyní součástí ArcGIS Serveru. Proto pro jeho instalaci
byla použita sada ArcGIS Server Enterprise for Windows
MediaKit. V této sadě se pak nachází DVD ArcSDE
9.2. Po vložení instalačního média bylo nutné vybrat ten
správný instalační soubor pro požadované DBMS: ArcSDE 9.2
Oracle10gR2. Jedná se o jednoduchou instalaci (jak napovídají
screenshoty v tabulce 3.1 – „Vlastní instalace ArcSDE je jednoduchá záležitost“), ke které
není třeba zvláštních komentářů. Jako instalační adresář jsem zvolil
C:\Program Files\ArcGIS\ArcSDE\
.
Po instalaci je uživatel požádán (viz poslední screenshot), zda má instalace pokračovat post-instalačním nastavením. Tuto část instalace podrobněji popíši v kapitole 3.2 – „Post-instalační nastavení“.
Post-instalační nastavení je důležitou součástí instalace, neboť zde se určuje vzájemná konfigurace ArcSDE a databáze Oracle. Pro toto nastavení je možné použít setup, který je buď spuštěn automaticky po instalaci ArcSDE nebo je možné jej spustit nezávisle z menu
. Je však také možné celé nastavení provést ručně, což jsem zvolil já z důvodu lepšího pochopení operací, ke kterým dochází při tomto nastavení.V tomto kroku dochází k:
udělení práva execute
roli
PUBLIC
nad balíky
dbms_pipe
a
dbms_lock
,
vytvoření standardního
tablespace
„Databáze sestává z jednoho nebo více tablespaces. Tablespace je logické seskupení jednoho nebo více fyzických datových souborů nebo dočasných souborů a je primární strukturou, podle které databáze spravuje ukládání.“[22] [ORACLE: 2 Day DBA]:Tablespaces
uživateli SDE,
vytvoření SDE uživatele,
udělení odpovídajících práv uživateli SDE[23].
SQL notace těchto úkonů je ve skriptu
createsdeoracle.sql
uloženém v
...\ArcSDE\ora10gexe\tools\oracle\
kde jsou také
komentáře k jednotlivým operacím. Zde uvedu pouze relevantní příkazy
bez komentářů, které jsem spustil v SQL Developeru
grant execute on dbms_pipe to public; grant execute on dbms_lock to public; connect system/arcdata create tablespace sde_tablespace datafile 'G:/ArcSDE_data/sde_tablespace.dbf' size 400M extent management local uniform size 512K; create user sde identified by arcdata default tablespace sde_tablespace temporary tablespace temp; grant CREATE SESSION to sde; grant CREATE TABLE to sde; grant CREATE PROCEDURE to sde; grant CREATE SEQUENCE to sde; grant CREATE TRIGGER to sde; grant CREATE TYPE to sde; grant CREATE LIBRARY to sde; grant CREATE PUBLIC SYNONYM to sde; grant CREATE OPERATOR to sde; grant CREATE INDEXTYPE to sde; grant DROP PUBLIC SYNONYM to sde; grant UNLIMITED TABLESPACE to sde; grant CREATE ANY VIEW to sde; grant SELECT ANY TABLE to sde;
Pro vykonání tohoto skriptu je třeba být přihlášen jako uživatel SYS v roli SYSDBA[24]. Skript proběhne úspěšně pouze tehdy neexistuje-li již uživatel či tablespace tohoto jména.
Ve skriptu si vytváříme vlastní tablespace s názvem
sde_tablespace
. V manuálu k Oracle Express
Edition stojí poznámka:
„V Oracle Database XE můžete dodatečně vytvářet trvalé tablespaces, ačkoliv to obyčejně není třeba.“[25] To znamená, že tato verze databáze Oracle počítá víceméně pouze s využitím tablespace USERS pro potřeby uživatelů. Z toho je vidět, že zvolená kombinace verzí ArcSDE a Oracle database není zcela optimální. Naštěstí je však umožněno si vlastní tablespace vytvářet (nebo naopak je také pak rušit) příkazem CREATE TABLESPACE[26].
Nastavení úložiště je klíčovým bodem celé postinstalace.
Úložiště obsahuje všechna ArcSDE metadata pro administrování ArcSDE. V
tomto kroku jsou vytvořeny všechny systémové a geodatabázové tabulky.
V průběhu jsou načteny parametrické soubory
dbtune.sde
, dbinit.sde
a
giomgr.defs
[27] jejichž změnou lze ovlivnit použité tablespace pro
ukládání jednotlivých komponent geodatabáze, použité datové typy a
mnoho dalších parametrů (viz [AG92 Help]:The
dbtune file and the DBTUNE table nebo [AG92 Help]:The
giomgr.defs
file and the SERVER_CONFIG system
table). V mém případě jsem pouze poněkud upravil soubor
dbtune.sde
tak, že jsem výslovně specifikoval
všechny tablespaces do vytvořeného
sde_tablespace
[28]. Tento krok zřejmě při inicializaci uživatele SDE nebyl
nutný, nicméně pro názornost a spojitost při definování uživatelských
geodatabází jsem tak učinil.
Vlastní inicializace se pak provede příkazem v příkazové řádce:
C:\>sdesetup -o install -d Oracle10G -i 5151:sde -u sde -p arcdata ESRI ArcSDE Server Setup Utility Thu Oct 02 19:03:23 2008 ---------------------------------------------------------------- Install or update ArcSDE schema objects: Are you sure? (Y/N): Y Creating ArcSde schema..... Successfully created ArcSde schema. Installing locators..... Successfully installed locators. Creating geodatabase schema..... Successfully created GDB schema. Successfully installed ArcSde. Refer SDEHOME\etc\sde_setup.log for more details. //v pripade pridani parametru 'l', neni treba provadet nasledujici krok autorizace C:\>sdesetup -o install -d Oracle10G -i 5151:sde -u sde -p arcdata -l C:/keycodes.ecp
Po proběhnutí se lze přesvědčit připojením do databáze jako
uživatel SDE (např. v SQL Developeru), že výrazně narostl využitý
prostor v tablespace sde_tablespace
. Také je
možné vidět, že uživatel vlastní mnoho nových tabulek (předtím neměl
žádné).
Při nastavování parametrů úložiště bylo zmíněno, že změnou
souboru dbtune.sde
by také bylo možné ovlivnit
datové typy pro ukládání geometrie (a také rastrů). Já jsem při
instalaci použil datový Long Raw (což je ArcSDE Compressed
Binary formát) neboť jsem předpokládal, že nebudou nutná
žádná dodatečná nastavení[29]. Zřejmě to není výhodný formát co se jeho otevřenosti
týče. Co do výkonu nemohu nic říct, neboť zatím nemám žádné
zkušenosti. Něco však může napovídat to, že ve verzi
ArcSDE 9.3 již není tento formát defaultní
volbou pro Oracle, ale je jí typ ST_GEOMETRY (viz níže tabulky 3.2 – „Datové typy pro ukládání geometrie pro ArcSDE 9.2“ a 3.3 – „Datové typy pro ukládání geometrie pro ArcSDE 9.3“). V tomto kroku však nastává
okamžik, kdy by došlo k jeho volbě a proto se zde pozastavím.
Pokud bychom použili pro post-instalační nastavení GUI, tak je to krok nazvaný ArcSDE configuration files continued (viz obrázek 3.1 – „Specifikace použitého dbtune.sde při inicializaci“), při kterém lze specifikovat použitý datový typ. Je však třeba věnovat zvýšenou pozornost při jejich volbě, neboť použité názvy nejsou příliš intuitivní.
Následující tabulka (3.2 – „Datové typy pro ukládání geometrie pro ArcSDE 9.2“) podává přehled datových typů podporovaných DBMS Oracle v ArcSDE 9.2. Ve sloupcích Feature Geometry Storage a Column type jsem zvýraznil odpovídající názvy z instalačního okna na předchozím obrázku.
Tabulka 3.2. Datové typy pro ukládání geometrie pro ArcSDE 9.2[30]
DBMS | Feature Geometry Storage | Column type | Notes |
---|---|---|---|
Oracle | Spatial Type | ST_GEOMETRY | •Utilizes extended spatial type for managing vector data •Based on the ISO SQL MM specification for spatial; built in concert with ESRI[a] |
Oracle Spatial – Geometry Type | SDO_GEOMETRY | •Oracle Spatial and Oracle Locator users can optionally use the SDO_Geometry column type. You can make this decision on a table by table basis, so you can choose the best option for each individual dataset. | |
ArcSDE Compressed Binary | Long Raw | •Provides high performance, scalability, and reliability •Default for ArcSDE for Oracle | |
Well-Known Binary (OGCWKB) | BLOB | •OGC simple features type •Can only be used with 2-dimensional geometry | |
LOB | BLOB | •Can be deployed to use Oracle Replication Services | |
[a] ST_GEOMETRY implements the OGC and ISO SQL Multimedia Specification for Spatial. The OGC reference is OpenGIS Implementation Specification for Geographic information - Simple feature access - Part 2: SQL option. The ISO reference is ISO/IEC 13249-3 SQL multimedia and application packages - Part 3: Spatial.) |
Nyní je tedy zřejmé o jaké formáty se jedná. Zajímavé informace lze nalézt při pohledu na odpovídající stránku helpu pro ArcSDE 9.3. V tabulce jsem je zvýraznil tučně.
Tabulka 3.3. Datové typy pro ukládání geometrie pro ArcSDE 9.3[31]
DBMS | Feature Geometry Storage | Column type | Notes |
---|---|---|---|
Oracle | Spatial Type | ST_GEOMETRY | •Utilizes the ArcSDE extended spatial type for managing vector data, •Supports the ISO and OGC SQL API for spatial, •Based on the ISO SQL MM specification for spatial, •Included with ArcSDE technology for Oracle, •Support added beginning at ArcGIS 9.2 and beyond, •Beginning with ArcGIS 9.3, the default feature storage type for Oracle was changed from Long Raw to ST_Geometry. |
Oracle Spatial – Geometry Type | SDO_GEOMETRY | •Oracle Spatial and Oracle Locator users can optionally use the SDO_Geometry column type. You can make this decision on a table by table basis, so you can choose the best option for each individual dataset. | |
ArcSDE Compressed Binary | Long Raw | •Provides high performance, scalability, and reliability •Prior to ArcGIS 9.3, Long Raw was the default for ArcSDE for Oracle. Beginning with ArcGIS 9.3, the default feature storage type for Oracle was changed from Long Raw to ST_Geometry. | |
Well-Known Binary (OGCWKB) | BLOB | •OGC simple features type •Can only be used with 2-dimensional geometry | |
LOB | BLOB | •Can be deployed to use Oracle Replication Services | |
PostgreSQL ArcSDE support for PostgreSQL was added at release 9.3 | ArcSDE Spatial Type | ST_Geometry | •Utilizes the ArcSDE extended spatial type for managing vector data, •Supports the ISO and OGC SQL API for spatial, •Based on the ISO SQL MM specification for spatial; built by ESRI •Included with ArcSDE technology for PostgreSQL. |
PostGIS EWKB and EWKT was added at release 9.3 | Geometry | •PostGIS provides an open source spatial data type that supports the same ISO and OGC standards as ArcSDE's ST_Geometry. | |
SQL Server | ArcSDE Compressed Binary | Image | •The SQL Server binary type fully manages complex binary streams required for complex line and polygon features found in typical and advanced GIS applications, •Compressed binary is the default geometry storage for ArcSDE for SQL Server. |
Well-known Binary (OGCWKB) | Image | •OGC simple features type, •Can only be used with 2-dimensional geometry. | |
Microsoft SQL Server geometry type | Geometry | •Stores data that uses projected spatial reference systems to define spatial data. | |
Microsoft SQL Server geography type | Geography | •Stores geodetic spatial data. | |
Z tabulky pro verzi 9.3 lze vyčíst několik velkých a potěšujících změn:
standardní formát pro uložení geometrie v DBMS Oracle se
změnil z Long Raw
(tj. ArcSDE Compressed
Binary) na ST_Geometry
, který je založen
na standardech[32],
přidána podpora DBMS PostgreSQL jak již bylo zmíněno v závěru kapitoly 3 – „Instalace a konfigurace ArcSDE pro Oracle 10g“. V tabulce jsou vidět datové typy, které jsou podporovány,
DBMS SQL Server v nedávno uvolněné verzi 2008 přidal podporu prostorových dat přidáním dvou nových datových typů Geometry a Geography. ArcSDE 9.3 je již také podporuje[33].
Ruční provedení autorizace lze provést dvěma způsoby:
V rámci inicializace (instalace) provedené v předchozím kroku.
Příkazem sdesetup -o update_key.
Já jsem použil druhý způsob:
C:\>sdesetup -o update_key -d ORACLE10G -l C:/keycodes.ecp -u sde -p arcdata ESRI ArcSDE Server Setup Utility Thu Oct 02 20:03:56 2008 ---------------------------------------------------------------- Successfully updated authorization key.
Soubor s autorizačními údaji jsem pořizovat nemusel, neboť již
byl pořízen v minulosti a je uložen na serveru v umístění:
C:\Program
Files\ESRI\License\sysgen\keycodes.ecp
. Pouze pro účel této
operace jsem jej zkopíroval do umístění které je v příkazu, neboť při
uvedení plné cesty vadila mezera v názvu Program
files
.
Tento krok vytvoří službu ArcSDE. Je k tomu třeba znát:
jméno služby - uživatel si zvolí své vlastní (zvolil jsem
sde_oraclexe
) nebo nechá standardní
esri_sde
,
heslo uživatele SDE (viz kapitola 3.2.1 – „Nastavení prostředí SDE uživatele“),
ORACLE_SID (Service Name Identifier) - jedná se o unikátní
jméno instance Oracle. V případě Oracle Express Edition je tato
hodnota zvolena standardně XE
.
Pro ruční provedení tohoto kroku se použije příkaz sdeservice.
C:\>sdeservice -o create -d Oracle,XE -i sde_oraclexe Please enter SDE DBA password: Copying contents of C:\Program Files\ArcGIS\ArcSDE\ora10gexe\etc\dbinit.sde to :\Program Files\ArcGIS\ArcSDE\ora10gexe\etc\dbinit.sde.backup. Successfully created and registered sde_oraclexe service
Příkaz zároveň provedl i registraci služby v systémovém registru, o čemž se můžeme přesvědčit nahlédnutím do HKEY_LOCAL_MACHINE/SOFTWARE/ESRI/ArcInfo/ArcSDE/ArcSDE for Oracle/<zvolené_jméno_služby> např. v nástroji regedit ( .. regedit).
Ještě je však třeba provést dvě dodatečné operace:
„Ve všech ukázkách musíte ručně zeditovat
%windir%\system32\drivers\etc\services and
%SDEHOME%\etc\services.sde
přidáním jména služby a čísla
portu.“[34][ESRI: SDE Admin Commands]
Je třeba ručně přidat záznamy do dvou souborů[35]:
Do obou těchto souborů je třeba přidat následující záznam:
<jmeno_sluzby> <cislo_portu>/tcp #ArcSDE for Oracle takže: sde_oraclexe 5151/tcp #ArcSDE for Oracle
Posledním krokem je samotné spuštění služby. Podrobně viz kapitolu 3.4.1 – „Spuštění služby ArcSDE“.
Od verze ArcGIS 9.2 podporuje Oracle vytvoření více geodatabází v rámci jednoho DBMS (viz obrázek 3.2 – „Více geodatabází v jednom DBMS Oracle“). Tato možnost mi přišla užitečná, neboť umožní logicky rozdělit data do různých geodatabází dle požadavků uživatele. Tyto geodatabáze jsou vytvořeny ve schematu uživatele a běží paralelně s jedinou master SDE geodatabází, která je uložena v SDE schematu.
Geodatabáze v SDE schematu je vždy primární a obsahuje tabulku
SDE.INSTANCES, kde jsou záznamy všech paralelních databází (viz obrázek
3.3 – „Ukázka tabulky INSTANCES“). Uživatelské SDE geodatabáze už
tuto tabulku neobsahují (v našem případě geodatabáze
KAR
). Také obsahuje subtypy a funkce datového
typu ST_Geometry[38].
menší pracovní skupiny v organizaci mohou mít oddělené geodatabáze (například vývoj x výroba x výuka ...),
možnost lepšího nastavení geodatabází pro daný účel,
lepší ochrana citlivých dat.
jeden uživatel může vlastnit pouze jednu geodatabázi,
dataset se může vyskytovat pouze v jedné geodatabázi (nelze mít stejný dataset ve dvou různých geodatabázích),
geodatabázi vlastní uživatel který ji vytvořil - je její ArcSDE administrátor.
Vytvoření uživatelské geodatabáze je zčásti totožné post-instalačnímu nastavení (viz kapitola 3.2 – „Post-instalační nastavení“), neboli vytvoření SDE geodatabáze[39]. V podstatě jde o obdobu prvních dvou kroků post-instalace: vytvoření prostředí uživatele a nastavení úložiště.
V tomto kroku provedu:
Vytvoření uživatelských
tablespaces;
uživatelská geodatabáze
totiž mohou být buď všechna v jednom tablespace, ale také mohou
využívat různé tablespace pro různá data. Co se do kterého pak
bude ukládat určíme v parametrickém souboru
dbtune.sde
při nastavení úložiště. Já jsem
se rozhodl rozdělit vektorová a rastrová data do dvou různých
datasetů kar_vector_data
a
kar_raster_data
. Diskuzi o zvolených
velikostech definovaných tablespace viz kapitolu 2.2 – „Zhodnocení, navržená řešení“.
Vytvoření uživatele který bude vlastníkem a
administrátorem uživatelské geodatabáze (je obdobou SDE
uživatele v SDE master geodatabázi). Uživatele jsem nazval
KAR
opět s heslem
arcdata
.
Udělení odpovídajících práv uživateli, který (jak bylo zmíněno v úvodu) potřebuje při inicializaci stejná práva jako SDE uživatel [23].
Pouze poněkud upravím skript
createsdeoracle.sql
použitý při post-instalaci
SQL:
connect system/arcdata create tablespace kar_vector_data datafile 'G:/ArcSDE_data/kar_vector_data.dbf' size 2000M extent management local uniform size 512K; create tablespace kar_raster_data datafile 'G:/ArcSDE_data/kar_raster_data.dbf' size 1600M extent management local uniform size 512K; create user kar identified by arcdata default tablespace kar_vector_data temporary tablespace temp; grant CREATE SESSION to kar; grant CREATE TABLE to kar; grant CREATE PROCEDURE to kar; grant CREATE SEQUENCE to kar; grant CREATE TRIGGER to kar; grant CREATE TYPE to kar; grant CREATE LIBRARY to kar; grant CREATE PUBLIC SYNONYM to kar; grant CREATE OPERATOR to kar; grant CREATE INDEXTYPE to kar; grant DROP PUBLIC SYNONYM to kar; grant UNLIMITED TABLESPACE to kar; grant CREATE ANY VIEW to kar; grant SELECT ANY TABLE to kar;
Pro vykonání tohoto skriptu je třeba být přihlášen jako uživatel SYS v roli SYSDBA.
Tento krok opět vytvoří všechny systémové tabulky a tabulky geodatabáze.
V [AG92 Help]:Using
multiple geodatabases within a DBMS stojí:
„Je doporučeno uložit systémové tabulky, které vytvoří příkaz
sdesetup –o install do jiného tablespace než do
toho, který je použit pro SDE geodatabázi. To pomůže vyhonut se I/O
kolizím a umožní v případě potřeby tento tablespace odděleně
zálohovat.“[40] Abych vyhověl tomuto doporučení, tak již v předchozím
kroku jsem si definoval dva nové tablespaces. Data rozdělím na
vektorová (kar_vector_data
) a rastrová
(kar_raster_data
). Nyní je třeba zeditovat
parametrický soubor, kde specifikuji v parametrech
TABLESPACE, kam se mají příslušná data ukládat
(viz následující ukázka souboru
dbtune_kar.sde
)[41]:
##DEFAULTS GEOMETRY_STORAGE "SDEBINARY" ATTRIBUTE_BINARY "BLOB" RASTER_STORAGE "BLOB" B_STORAGE "PCTFREE 0 INITRANS 4 TABLESPACE kar_vector_data" B_INDEX_ROWID "PCTFREE 0 INITRANS 4 TABLESPACE kar_vector_data NOLOGGING" B_INDEX_SHAPE "PCTFREE 0 INITRANS 4 TABLESPACE kar_vector_data NOLOGGING" B_INDEX_USER "PCTFREE 0 INITRANS 4 TABLESPACE kar_vector_data NOLOGGING" . . . RAS_STORAGE "PCTFREE 0 INITRANS 4 TABLESPACE kar_raster_data" RAS_INDEX_ID "PCTFREE 0 INITRANS 4 TABLESPACE kar_raster_data NOLOGGING" BND_STORAGE "PCTFREE 0 INITRANS 4 TABLESPACE kar_raster_data"
V průběhu jsou dále opět načteny také parametrické soubory
dbinit.sde
a giomgr.defs
,
v nichž jsem žádné uživatelské změny neprováděl.
Vlastní inicializace se pak provede příkazem v příkazové řádce:
C:\>sdesetup -o install -d ORACLE10G -i 5151:kar -u kar -p arcdata -l C:/keycodes.ecp ESRI ArcSDE Server Setup Utility Sat Oct 04 15:50:20 2008 ---------------------------------------------------------------- Install or update ArcSDE schema objects: Are you sure? (Y/N): Y Creating ArcSde schema..... WARNING: Parameter "TEMP" not found in defaults file! WARNING: Setting TEMP to "C" Successfully created ArcSde schema. Installing locators..... Successfully installed locators. Creating geodatabase schema..... Successfully created GDB schema. Registering authorization key..... Successfully registered authorization key. Successfully installed ArcSde. Refer SDEHOME\etc\sde_setup.log for more details.
Po proběhnutí se lze přesvědčit připojením do databáze jako
uživatel kar (např. v SQL Developeru), že výrazně narostl využitý
prostor v tablespaces kar_vector_data
a
kar_raster_data
. Také je možné vidět, že
uživatel vlastní mnoho nových tabulek (předtím neměl žádné).
V kapitole 2.1.2.3 – „Vytvoření uživatele“ jsem zmínil, že uživatele vytvořím pomocí SQL příkazu. Je to z toho důvodu, že Application Express neumožňuje změnu uživatelského tablespace[42]. Samozřejmě je možné využít služeb jiného klienta - například aplikace SQL Developer, která nabízí mnohem komfortnější uživatelské (administrátorské) prostředí.
Stejně jako při vytváření uživatelů SDE
a
KAR
se využije příkaz CREATE
USER, kde je specifikováno heslo uživatele a standardní a
dočasný tablespace. Jako standardní tablespace jsem použil
kar_vector_data:
create user data_creator identified by data_creator default tablespace kar_vector_data temporary tablespace temp;
Práva která je třeba uživatelům přidělit závisí na typu uživatele (viz [AG92 Help]:User permissions ). Lze rozlišit dvě skupiny těchto práv: databázová práva a práva přidělená vlastníkem dat:
Například pro vytváření a editaci dat jsou potřeba tato oprávnění:
grant CREATE SEQUENCE to data_creator; grant CREATE SESSION to data_creator; grant CREATE TRIGGER to data_creator; grant CREATE TABLE to data_creator; grant CREATE VIEW to data_creator;
Po připojení uživatele s výše zmíněnými právy jsem se pokusil importovat nějaká data. Došlo však k chybě - viz obrázek 3.4 – „Chybové hlášení o překročené velikosti tablespace“.
Problém vyřešilo přidělení ještě jednoho práva:
grant UNLIMITED TABLESPACE to data_creator;
Uživateli, který má právo pouze data prohlížet (viz
vytvořený uživatel data_viewer
), stačí
přidělit oprávnění CREATE SESSION.
Například aby uživatel s právem prohlížení viděl data, je ještě nutné, aby mu vlastník dat (ten kdo je vytvořil, naimportoval atp.) přidělil právo SELECT. To lze provést v ArcCatalogu při kliknutí pravým tlačítkem myši na dataset/Privileges... (viz obrázek 3.5 – „Přidělení práva prohlížení dat uživateli data_viewer“):
Obdobně je třeba postupovat, abychom z uživatele s databázovým právem CREATE SESSION vytvořili editora dat.
(Vzdálené) připojení do uživatelské geodatabáze v ArcCatalogu se vytvoří v položce Service uvedeme číslo portu a název schematu uživatelské geodatabáze, do které se chceme připojit (viz obrázek 3.6 – „Připojení do uživatelské SDE geodatabáze“):
/ tak, že v poli Server zadáme IP adresu serveru a v poliNa předchozím obrázku je zobrazeno nastavení pro přihlášení
uživatele data_creator
do
KAR
schematu (neboli uživatelské
geodatabáze).
Po připojení do geodatabáze KAR
jako
uživatel data_viewer
z ArcCatalogu bylo vidět
mnoho tabulek uživatele FLOWS_020100
(viz
obrázek 3.7 – „Objekty "Flows" které byly vidět v ArcCatalogu“).
Počet těchto objektů[43] se liší podle práv, která jsou uživateli přidělena.
Uživatel s právem prohlížet data vidí pouze těchto 22 objektů. Avšak
sám SDE administrátor již vidí cca 180 objektů, přičemž přibyly
objekty uživatele FLOWS_FILES
. Přitom při
přihlášení například v SQL Developeru není vidět žádné tabulky ani
pohledy. Položil jsem proto dotaz na podporu:
„..Po vytvoření vlastního uživatele včetně jeho vlastního tablespace a připojení se přes ArcCatalog však vidím i mnoho tabulek zmiňovaných interních uživatelů, což nechci .. Jejich množství závisí na právech přidělených danému uživateli (čím více má uživatel práv, tím více flows tabulek vidím). Prosím o radu či odkaz do nějakého helpu (ESRI, Oracle..) ohledně této záležitosti.“
„..obecně se v databázích jde cestou minimálních práv. Uživatelé pak vidí pouze to, co vytvořili. Pokud, naopak, někomu grantujete silná práva - např. SELECT ANY TABLE, nebo práva číst tabulky dáváte roli PUBLIC - uvidí všechna, resp. takto nagrantovaná, data..“ [Marek Ošlejšek, ARCDATA PRAHA]
Zkontroloval jsem tedy práva přidělená uživateli
data_viewer
, která však byla v pořádku přesně
dle nápovědy odkazované v úvodu kapitoly 3.3.3 – „Přidělení práv uživatelům“. Zajímal jsem se tedy, co je to za
uživatele FLOWS_020100
a
FLOWS_FILES
. V [ORACLE: 2 Day DBA]:Managing
Users and Security stojí: „Tabulka ... uvádí
předdefinované uživatelské účty Oracle Database XE. Mnoho z nich jsou
interní účty. Interní účty nesmíte mazat a s výjimkou účtů SYS a
SYSTEM se do nich nesmíte ani pokoušet přihlašovat.“[44]
Jedná se tedy o interní účty které není možné mazat, a údajně se
do nich ani přihlašovat. To jsem však udělal (po té co jsem tyto účty
nastavil jako aktivní a přidělil jim hesla stejná jako jejich
jména[45]). Zjistil jsem, že tabulky a pohledy které v ArcCatalogu
vidím jsou ty, které mají v těchto účtech přidělena některá práva
(nejčastěji SELECT) roli
PUBLIC
. Tato práva jsem v těchto účtech odejmul
z role PUBLIC
:
REVOKE SELECT ON WWV_FLOW_CLICKTHRU_LOG FROM PUBLIC; REVOKE SELECT ON WWV_FLOW_COLLECTIONS FROM PUBLIC; REVOKE DELETE ON WWV_FLOW_FILES FROM PUBLIC; REVOKE INSERT ON WWV_FLOW_FILES FROM PUBLIC; REVOKE SELECT ON WWV_FLOW_FILES FROM PUBLIC; REVOKE UPDATE ON WWV_FLOW_FILES FROM PUBLIC; REVOKE REFERENCES ON WWV_FLOW_FILES FROM PUBLIC; REVOKE ON COMMIT REFRESH ON WWV_FLOW_FILES FROM PUBLIC; REVOKE QUERY REWRITE ON WWV_FLOW_FILES FROM PUBLIC; REVOKE DEBUG ON WWV_FLOW_FILES FROM PUBLIC; REVOKE FLASHBACK ON WWV_FLOW_FILES FROM PUBLIC; REVOKE MERGE VIEW ON WWV_FLOW_FILES FROM PUBLIC; REVOKE SELECT ON WWV_FLOW_GROUP_USERS FROM PUBLIC; REVOKE SELECT ON WWV_FLOW_HOURS_12 FROM PUBLIC; REVOKE SELECT ON WWV_FLOW_HOURS_24 FROM PUBLIC; REVOKE SELECT ON WWV_FLOW_MINUTES FROM PUBLIC; REVOKE SELECT ON WWV_FLOW_MINUTES_5 FROM PUBLIC; REVOKE SELECT ON WWV_FLOW_MONTHS_MON FROM PUBLIC; REVOKE SELECT ON WWV_FLOW_MONTHS_MONTH FROM PUBLIC; REVOKE SELECT ON WWV_FLOW_PLSQL_JOBS FROM PUBLIC; REVOKE SELECT ON WWV_FLOW_USER_ACTIVITY_LOG FROM PUBLIC; REVOKE SELECT ON WWV_FLOW_USER_MAIL_LOG FROM PUBLIC; REVOKE SELECT ON WWV_FLOW_USER_MAIL_QUEUE FROM PUBLIC; REVOKE SELECT ON WWV_FLOW_USERS FROM PUBLIC; REVOKE SELECT ON WWV_FLOW_YEARS FROM PUBLIC; REVOKE SELECT ON WWV_FLOW_COMPANIES FROM flows_files; REVOKE REFERENCES ON WWV_FLOW_COMPANIES FROM flows_files CASCADE CONSTRAINTS; REVOKE SELECT ON WWV_FLOW_DUAL100 FROM PUBLIC; REVOKE SELECT ON WWV_FLOW_FIELD_TEMPLATES FROM PUBLIC; REVOKE SELECT ON WWV_FLOW_LIST_OF_VALUES_DATA FROM PUBLIC; REVOKE SELECT ON wwv_flow_lists_of_values$ FROM PUBLIC; REVOKE SELECT ON wwv_flow_lov_temp FROM PUBLIC; REVOKE SELECT ON wwv_flow_patches FROM PUBLIC; REVOKE SELECT ON wwv_flow_temp_table FROM PUBLIC;
Po té, co jsem všem těmto tabulkám a pohledům tyto role odejmul, tak v ArcCatalogu již vidět nejsou. Je však otázka, zda to negativně neovlivní běh DBMS. Zkoušel jsem však provádět některé základní operace (import vektoru a rastru, editace, mazání, buffer, verzování) a databáze fungovala bez zjevných chyb.
V případě, že by následně docházelo při běhu DBMS při práci s SDE k nějakým problémům, tak je možné, že odejmutí zmiňovaných práv není možné. Potom by bylo třeba tato práva opět přidělit:
GRANT SELECT ON WWV_FLOW_CLICKTHRU_LOG TO PUBLIC; GRANT SELECT ON WWV_FLOW_COLLECTIONS TO PUBLIC; GRANT DELETE ON WWV_FLOW_FILES TO PUBLIC; GRANT INSERT ON WWV_FLOW_FILES TO PUBLIC; GRANT SELECT ON WWV_FLOW_FILES TO PUBLIC; GRANT UPDATE ON WWV_FLOW_FILES TO PUBLIC; GRANT REFERENCES ON WWV_FLOW_FILES TO PUBLIC; GRANT ON COMMIT REFRESH ON WWV_FLOW_FILES TO PUBLIC; GRANT QUERY REWRITE ON WWV_FLOW_FILES TO PUBLIC; GRANT DEBUG ON WWV_FLOW_FILES TO PUBLIC; GRANT FLASHBACK ON WWV_FLOW_FILES TO PUBLIC; GRANT MERGE VIEW ON WWV_FLOW_FILES TO PUBLIC; GRANT SELECT ON WWV_FLOW_GROUP_USERS TO PUBLIC; GRANT SELECT ON WWV_FLOW_HOURS_12 TO PUBLIC; GRANT SELECT ON WWV_FLOW_HOURS_24 TO PUBLIC; GRANT SELECT ON WWV_FLOW_MINUTES TO PUBLIC; GRANT SELECT ON WWV_FLOW_MINUTES_5 TO PUBLIC; GRANT SELECT ON WWV_FLOW_MONTHS_MON TO PUBLIC; GRANT SELECT ON WWV_FLOW_MONTHS_MONTH TO PUBLIC; GRANT SELECT ON WWV_FLOW_PLSQL_JOBS TO PUBLIC; GRANT SELECT ON WWV_FLOW_USER_ACTIVITY_LOG TO PUBLIC; GRANT SELECT ON WWV_FLOW_USER_MAIL_LOG TO PUBLIC; GRANT SELECT ON WWV_FLOW_USER_MAIL_QUEUE TO PUBLIC; GRANT SELECT ON WWV_FLOW_USERS TO PUBLIC; GRANT SELECT ON WWV_FLOW_YEARS TO PUBLIC; GRANT SELECT ON WWV_FLOW_COMPANIES TO flows_files; GRANT REFERENCES ON WWV_FLOW_COMPANIES TO flows_files; GRANT SELECT ON WWV_FLOW_DUAL100 TO PUBLIC; GRANT SELECT ON WWV_FLOW_FIELD_TEMPLATES TO PUBLIC; GRANT SELECT ON WWV_FLOW_LIST_OF_VALUES_DATA TO PUBLIC; GRANT SELECT ON wwv_flow_lists_of_values$ TO PUBLIC; GRANT SELECT ON wwv_flow_lov_temp TO PUBLIC; GRANT SELECT ON wwv_flow_patches TO PUBLIC; GRANT SELECT ON wwv_flow_temp_table TO PUBLIC;
V této kapitole zmíním několik užitečných příkazů pro zajišťování chodu a správy SDE služby. Protože ArcSDE nemá žádné grafické uživatelské rozhraní, tak je tato správa zajišťována přes příkazový řádek. Tuto správu je třeba provádět buď přímo na serveru (buď fyzicky nebo pomocí některých služeb pro vzdálený přístup[46]) nebo vzdáleně taktéž z příkazové řády - k tomu jsou však nutné tyto požadavky:
Mít na vzdáleném počítači nainstalováno ArcSDE - podle verze nainstalovaného ArcSDE se liší i spektrum příkazů, které je možné vzdáleně ovládat. Jak plyne z kapitoly 1.1.3 – „ArcSDE Geodatabase“, tak by ArcSDE Personal mělo být dostupné již v licencích ArcEditor (pokud bylo ovšem nainstalováno). V kapitole uvádím příkazy, jejíž funkčnost jsem odzkoušel na licenci ArcInfo systému ArcGIS 9.2. Není-li SDE nainstalováno, skončí příkazy chybou:
<příkaz> není názvem vnitřního ani vnějšího příkazu, spustitelného programu nebo dávkového souboru.
Mít na serveru v bráně firewall systému Windows (Ovládací panely / Centrum zabezpečení / Výjimky) povolený port, na kterém služba SDE běží (standardně 5151). V opačném případě skončí příkazy chybou:
CONNECT: errno = 0 Operation Failed, Unable to get instance sde_oraclexe status on 147.228.18.11
Mít povolený tentýž port ve firewallu případného antivirového systému.
Kompletní dokumentaci včetně syntaxe a příkladů příkazů je možné čerpat z [ESRI: SDE Admin Commands].
Spuštění lze provést buď přes nástroje Windows nebo přes administrační příkaz ArcSDE:
Kliknutím pravým tlačítkem myši na Tento
počítač / Spravovat se dostanete
do okna Správa počítače. V položce
vyhledejte službu
ArcSde Service
, kterou je možné spustit či
zastavit (viz obrázek 3.8 – „Vlastnosti ArcSde služby“).[47].
V příkazovém řádku pomocí příkazu sdemon lze služba spustit buď lokálně na serveru:
C:\>sdemon -o start //spustí službu SDE Please enter ArcSDE DBA password: ArcSDE Instance sde_oraclexe started Fri Oct 03 23:26:31 2008 C:\>sdemon -o shutdown //zastaví službu SDE Please enter ArcSDE DBA password: ArcSDE Instance sde_oraclexe on eugen is Shutdown!
nebo ze vzdáleného počítače[48]:
//vzdálený start se mi nepodařilo zprovoznit: C:\>sdemon -o start -p arcdata -s eugen.ff.zcu.cz -i sde_oraclexe Instance sde_oraclexe on server eugen.ff.zcu.cz not setup for remotestart. //vzdálené zasatavení funguje: C:\>sdemon -o shutdown -p arcdata -s eugen.ff.zcu.cz -i sde_oraclexe ArcSDE Instance sde_oraclexe on eugen.ff.zcu.cz is Shutdown!
Po spuštění služby se spustí nový proces
giomgr.exe
(viz například po startu správce úloh
systému Windows). Tento proces naslouchá na určeném TCP/IP portu
(standardně 5151) požadavkům na připojení klientských aplikací,
spouští proces gsrvr.exe
, odklízí procesy
odpojených uživatelů a mnoho dalších operací (viz například [AG92 Help]:Starting
an ArcSDE service).
Operace spuštění/zastavení ArcSDE služby zřejmě nebude (v daných
podmínkách) příliš častá. Nicméně čas od času, když pracuje přes
ArcSDE více uživatelů se stává, že zůstanou "viset" některé
gsrvr
procesy. Pak je nutné restartovat službu
ArcSDE.
Vypíše stav služby a počet připojení.
Verze příkazu bez specifikované služby, nebo při specifikaci
pouze obecně jménem služby (například -i
sde_oraclexe) vypíše připojení do master databáze (schematu
SDE
). V případě že chceme zjistit počet
připojení do uživatelské SDE geodatabáze, tak je třeba uvést parametr
-i s číslem portu a jménem příslušného schematu
(geodatabáze).
V případě, že byli připojeni administrátoři dvou SDE geodatabází, tak příkaz vypisoval nesmyslné počty připojených. Jistější je vždy specifikovat požadované schema.
C:\>sdemon -o status //je totéž co: //C:\>sdemon -o status -i 5151 //nebo //C:\>sdemon -o status -i 5151:sde ArcSDE Instance sde_oraclexe Status on eugen at Tue Oct 21 17:56:14 2008 ------------------------------------------------------------------------- Server Connection Mode: Accepting Connections Active Server Processes: 1 //Pro jinou instanci (geodatabázi je třeba specifikovat příslušné sdema): C:\>sdemon -o status -i 5151:kar ArcSDE Instance 5151:kar Status on 147.228.18.11 at Mon Oct 27 16:52:02 2008 ------------------------------------------------------------------------- Server Connection Mode: Accepting Connections Active Server Processes: 3
C:\>sdemon -o status -s 147.228.18.11[49]//je totéž co: //C:\>sdemon -o status -i 5151 -s 147.228.18.11 //nebo //C:\>sdemon -o status -i 5151:sde -s 147.228.18.11 ArcSDE Instance sde_oraclexe Status on eugen.ff.zcu.cz at Tue Oct 21 18:00:13 2008 ------------------------------------------------------------------------- Server Connection Mode: Accepting Connections Active Server Processes: 1 //Pro jinou instanci (geodatabázi je třeba specifikovat příslušné sdema): C:\>sdemon -o status -i 5151:kar -s 147.228.18.11 ArcSDE Instance 5151:kar Status on 147.228.18.11 at Mon Oct 27 16:52:02 2008 ------------------------------------------------------------------------- Server Connection Mode: Accepting Connections Active Server Processes: 3
Zobrazí informace o všech (specifikovaných) ArcSDE službách.
C:\>sdeservice -o list //nebo: sdeservice -o list -i sde_oraclexe SDE service Information -------------------------------------------------------------------- RDBMS: Oracle Name: ArcSde Service(sde_oraclexe) SDEHOME: C:\Program Files\ArcGIS\ArcSDE\ora10gexe Version: 9.2.0 Status: SERVICE_RUNNING
Zobrazí všechny parametry obsažené v tabulce
SERVER_CONFIG
.
C:\>sdeconfig -o list -u data_viewer -p data_viewer -i sde_oraclexe ArcSDE 9.2 for Oracle10g Build 1081 Sun Sep 17 16:01:22 2006 SDE Server Configuration Tool Administration Utility ----------------------------------------------------- CONNECTIONS 48 MINBUFSIZE 16384 MAXBUFSIZE 65536 MINBUFOBJECTS 512 TEMP C:\DOCUME~1\eckhardt\LOCALS~1\Temp MAXBLOBSIZE 1000000 BLOBMEM 1000000 AUTOCOMMIT 1000 MAXINITIALFEATS 10000 MAXDISTINCT 512 STREAMPOOLSIZE 6 SHAPEPTSBUFSIZE 400000 ATTRBUFSIZE 50000 RASTERBUFSIZE 102400 MAXARRAYSIZE 100 MAXARRAYBYTES 550000 MAXTIMEDIFF -1 STATEAUTOLOCKING FALSE LAYERAUTOLOCKING FALSE INT64TYPES FALSE TCPKEEPALIVE FALSE READONLY FALSE DEFAULTPRECISION HIGH TLMINTERVAL 1 MAXSTANDALONELOGS 0 ALLOWSESSIONLOGFILE FALSE LOGFILEPOOLSIZE 0 HOLDLOGPOOLTABLES TRUE LARGEIDBLOCK 0 SMALLIDBLOCK 16 ERRLOGMODE TIC PROCSTATS -1 PRECISION10 FALSE DETECT8XNULLSHAPE FALSE DISABLEAUTOREG TRUE TRIMLOCKINGTYPE Only during compress MAXGRIDSPERFEAT 8000
Z neznámých důvodů nesprávně určí verzi ArcSDE a skončí chybou.
C:\>sdeconfig -o list -i sde_oraclexe -s 147.228.18.11 -u data_viewer -p data_viewer ArcSDE 9.1 for Oracle10g Build 1081 Sun Sep 17 16:01:22 2006 Attribute Administration Utility ----------------------------------------------------- Error Reading Release Info -1 Error: Network I/O error (-10). Error: Could not create a connection on server 147.228.18.11, for user data_viewer.
Vypíše konfiguraci ArcSDE služby.
C:\>sdemon -o info -I config ArcSDE I/O Manager Configuration Parameters at Tue Oct 21 18:53:17 2008 ------------------------------------------------------------------------- ArcSDE Version 9.2 ArcSDE Server Build for Oracle10g Build 1081 Sun Sep 17 16:01:22 2006 Underlying DBMS Oracle Max. Server Connections 48 Root Path C:\Program Files\ArcGIS\ArcSDE\ora10gexe Temp Path C:\DOCUME~1\eckhardt\LOCALS~1\Temp Min. Transmission Buffer Size 16384 Bytes Max. Transmission Buffer Size 65536 Bytes Min. Transmission Buffer Count 512 Objects Max. Initial Features 10000 Objects Max. stream pool size 6 streams Max. BLOB Size 1000000 Bytes Max. in Memory BLOB Size 1000000 Bytes Max. Distincts 512 Autocommit Frequency 1000 Shape Point Buffer Size 400000 Bytes Attribute Buffer Size 50000 Bytes Max. Array Size 100 Max. Array Bytes 550000 Bytes Max. Client/Server Time Diff. Unlimited State Caching On Stream State Autolocking Off Instance name sde_oraclexe Port Number 5151/tcp TCP/IP Keepalive on Connections Off Instance Type Read/Write Max. Raster Buffer Size 102400 Bytes Default Layer Precision 64-bit Time last mod(TLM) interval (sec) 1 Num. of logfiles in logfile pool 0 Max. num. of standalone logfiles 0 Allow session logfiles Off Hold log pool tables On Connection counts 0 Layer Autolocking Off Allow Int64 columns Off
C:\>sdemon -o info -I config -i sde_oraclexe -s eugen.ff.zcu.cz ArcSDE I/O Manager Configuration Parameters at Tue Oct 21 18:53:17 2008 ------------------------------------------------------------------------- ArcSDE Version 9.2 . . .
Vypíše, které geodatabáze na serveru existují (viz kapitolu 3.3 – „Vytvoření více uživatelských SDE geodatabází v DBMS Oracle XE“).
C:\>sdemon -o info -I instances ArcSDE Instance sde_oraclexe's instances on eugen at Tue Oct 21 18:36:47 2008 ------------------------------------------------------------------------- Instance Created Id -------------------- -------------------------------- ------------------------ SDE Sat Oct 04 15:46:55 2008 0 KAR Sat Oct 04 15:50:32 2008 1
Vypíše uživatele, kteří jsou připojeni do SDE geodatabáze. Standardní krátká notace příkazu sdemon -o info -I instances však vypíše pouze uživatele připojené do schematu SDE (neboli do master geodatabáze). V případě, že chceme zobrazit uživatele připojené do uživatelské SDE geodatabáze, tak musíme v příkazu specifikovat schema (geodatabázi) o kterou nám jde.
C:\>sdemon -o info -I users //je totéž co: //C:\>sdemon -o info -I users -i 5151 //nebo //C:\>sdemon -o info -I users -i 5151:sde ArcSDE Instance sde_oraclexe Registered Server Tasks on eugen.ff.zcu.cz at Mon Oct 27 16:30:50 2008 ------------------------------------------------------------------------- S-ID User Host:OS Started ----- -------- -------------------------------- ------------------------ 146 SDE eugen:Win32 Mon Oct 27 16:01:52 2008 //Pro jinou instanci (geodatabázi je třeba specifikovat příslušné sdema): C:\>sdemon -o info -I users -i 5151:kar ArcSDE Instance sde_oraclexe Registered Server Tasks on eugen.ff.zcu.cz at Mon Oct 27 16:35:20 2008 ------------------------------------------------------------------------- S-ID User Host:OS Started ----- -------- -------------------------------- ------------------------ 139 DATA_VIEWER pasik:Win32 Mon Oct 27 15:54:26 2008 147 KAR pasik:Win32 Mon Oct 27 16:20:03 2008 148 DATA_CREATOR pasik:Win32 Mon Oct 27 16:20:10 2008
C:\>sdemon -o info -I users -s eugen.ff.zcu.cz -i sde_oraclexe //je totéž co: //C:\>sdemon -o info -I users -i 5151 -s eugen.ff.zcu.cz -i sde_oraclexe //nebo //C:\>sdemon -o info -I users -i 5151:sde -s eugen.ff.zcu.cz -i sde_oraclexe ArcSDE Instance sde_oraclexe Registered Server Tasks on eugen.ff.zcu.cz at Mon Oct 27 16:30:50 2008 ------------------------------------------------------------------------- S-ID User Host:OS Started ----- -------- -------------------------------- ------------------------ 146 SDE eugen:Win32 Mon Oct 27 16:01:52 2008 //Pro jinou instanci (geodatabázi je třeba specifikovat příslušné sdema): E:\>sdemon -o info -I users -i 5151:kar -s eugen.ff.zcu.cz -i sde_oraclexe ArcSDE Instance sde_oraclexe Registered Server Tasks on eugen.ff.zcu.cz at Mon Oct 27 16:37:23 2008 ------------------------------------------------------------------------- S-ID User Host:OS Started ----- -------- -------------------------------- ------------------------ 139 DATA_VIEWER pasik:Win32 Mon Oct 27 15:54:26 2008 147 KAR pasik:Win32 Mon Oct 27 16:20:03 2008 148 DATA_CREATOR pasik:Win32 Mon Oct 27 16:20:10 2008
V této kapitole jsem popsal instalaci ArcSDE a jeho konfiguraci s DBMS Oracle.
Po vlastní instalaci ArcSDE jsem ručně provedl post-instalační
nastavení v němž jsem se též zběžně zabýval konfiguračními parametry,
které je možné specifikovat souborem
dbtune.sde
.
Jako velmi užitečná mi přišla možnost vytvoření více uživatelských SDE geodatabází v rámci jednoho DBMS Oracle a proto jsem popsal nutná nastavení.
Výsledkem jsou dvě vytvořené SDE geodatabáze: primární (master)
SDE geodatabáze (schema SDE
) a uživatelská SDE
geodatabáze (schema KAR
). Geodatabáze SDE je
vytvořena jako nutný prostředek k vytvoření uživatelské geodatabáze KAR
a není tedy zamýšlena pro ukládání geodat. To je zamýšleno do
geodatabáze KAR ve které jsem na zkoušku vytvořil dva uživatele
(data_viewer
a
data_creator
), kterým je možné nastavit různá
databázová práva a práva vzájemného sdílení dat. Jak se připojit do
vytvořené SDE geodatabáze KAR
z ArcCatalogu jako
uživatel data_creator
je stručně popsáno v
kapitole 3.3.4 – „Připojení do uživatelské geodatabáze“.
Dle načrtnutého postupu je možné vytvořit další SDE geodatabáze a její uživatele, které je možné vytvořit a spravovat i vzdáleně.
Nakonec jsou popsány některé časté příkazy pro správce SDE geodatabáze, z nichž některé je též možné provádět vzdáleně.
[22] „A database consists of one or more tablespaces. A tablespace is a logical grouping of one or more physical datafiles or tempfiles, and is the primary structure by which the database manages storage.“
[24] Připojení jsem uložil v SQL Developeru
na serveru pod názvem OracleXE_sys
.
[25] „You can create additional permanent tablespaces in Oracle Database XE, although typically there is no need to do so.“
[27] nachází se v adresáři
...\ArcSDE\ora10gexe\etc\
[28] Viz soubor dbtune_sde.sde
ve zmiňovaném
adresáři na serveru. Pozor - před inicializací je třeba
přejmenovat soubor na
!dbtune.sde
[29] Jedná se totiž o nativní formát ESRI.
[32] Tento formát by byl zajímavým tipem, který by stál za prozkoumání: [AG93 Help]:The ST_Geometry storage type.
[33] Je dost možné, že tyto nové typy budou mít některé "dětské" nemoci. Nicméně po vychytání much tak SQL Server zase o něco více bude šlapat na paty Oracle. Když se vezme v úvahu hojná spolupráce ESRI s Microsoftem, tak by toto řešení mohlo mít brzo nemalý okruh uživatelů.
[34] „In all create examples, you must manually edit
%windir%\system32\drivers\etc\services and
%SDEHOME%\etc\services.sde
to add the service name and
port number.“
[35] Při využití post-instalačního GUI jsou tyto záznamy přidány automaticky. Post-instalační menu je možné spustit z menu start ArcSDE a nechat proběhnout pouze tento čtvrtý krok - Create ArcSDE Service.
[36] Windows XP Pro.
[38] Není mi jasné, zda to tedy znamená, že uživatelské databáze nemohou tento typ používat - že by ho mohla používat pouze SDE databáze. Ověřovat to však nebudu.
[39] Také proto jsem post-instalační procedury vykonával ručně. Post instalační GUI je totiž nastaveno pouze na vytvoření SDE uživatele/geodatabáze. Takto nyní mohu snadněji vysvětlit vytvoření uživatelského schematu/geodatabáze.
[40] „It is recommended you store the system tables that get created with the sdesetup –o install command in a different tablespace than the one used for your SDE geodatabase. This will help avoid I/O contention and will allow you to backup the tablespace seperately if needed.“
[41]
Soubor jsem pojmenoval
dbtune_kar.sde
pouze pro účely jeho
zálohování. Při průběhu inicializace je třeba jej
přejmenovat na dbtune.sde
- opět viz
adresář
...\ArcSDE\ora10gexe\etc\
.
[42] a automaticky uživatelská data ukládá do standardního
uživatelského tablespace USERS
.
[43] jak se později ukáže jde o tabulky a pohledy
[44] „Table ... lists the Oracle Database XE predefined user accounts. Many of these accounts are internal accounts. You must not drop internal accounts, and with the exception of the accounts SYS and SYSTEM, you must not attempt to log in with an internal account.“
[45] Viz uložené připojení flows_020100
v
programu SQL Developer na straně serveru.
[46] Například služby "Vzdálená plocha Windows", nebo LogMeIn.com.
[47] Totéž je samozřejmě možné provést i pomocí jiných programů. Já například s oblibou využívám jistou nadstavbu programu Total Commander.
[49] Nebo eugen.ff.zcu.cz
. Podobně i ve všech následujících příkazech je možné IP adresu serveru 147.228.18.11 nahrazovat jeho jménem.
Cílem této práce bylo zprovoznit technologii ArcSDE zejména pro účely uložení dat katedry archeologie (KAR), která jsou následně publikována technologií ArcIMS.
Současná data KAR mají velikost cca 5,8 GB, avšak při jejich
prozkoumání jsem zjistil, že největší prostor zabírají rastry
(rastrové datasety s vybudovanými pyramidami) v adresářích
...\kristuf\Krivoklatsko_pruzkum lesa
(0,4 GB)
a ...\kristuf\Pisecko
(4,4 GB). Jedná se
zejména o zobrazení výškových poměrů daného území (výšková
hypsometrie, stínované kopce).
Provedlo by se nové uspořádání dat. Pro vektorová data by (v současnosti) byla kapacita 4GB dostačující i kdyby se toto omezení velikosti představovalo součet všech tablespace v DBMS. Rastrová data by pak bylo nutno uchovávat externě, například v rastrových datasetech ve File Geodatabase (to znamená, že by bylo třeba upravit velikosti uživatelsky definovaných tablespace, neboť v současnosti jsou vektorová (2GB) i rastrová (1,6GB) data ukládána v DBMS).
Vyšší verze DBMS Oracle jsou pro nekomerční využití volně k dispozici[50]. Pokud by se dali aktivity KAR označit jako nekomerční, tak je zde řešení nainstalovat vyšší verzi tohoto DBMS. Obdobné řešení by mohlo existovat i u ostatních podporovaných DBMS - například MS SQL Serveru.
Na škole je zakoupeno několik licencí Oracle 10g Enterprise Edition. Řešením by byla domluva se správcem jednoho z těchto DBMS (jedna z nich je na CIVu, kde běží STAG) a na serveru EUGEN by běželo "pouze" ArcSDE připojující se do této databáze. Dle předběžné ústní domluvy s pracovníkem CIVu by bylo možné poskytnutí nějakého prostoru (předběžně padlo 40 GB) za podmínky ne příliš velkých zásahů do DBMS. Toto řešení tak má svá úskalí:
Při náročnějších administračních otázkách je třeba uživateli SDE přidělit poměrně vysoká práva (například při instalaci nových databází, vytváření vlastních tablespace, upgradování stávajících SDE geodatabází)[23].
datový typ pro ukládání geometrie ST_Geometry též vyžaduje vyšší práva uživatele. Dále datové typy SDO_Geometry (pro ukládání geometrie) a SDO_Georaster (pro ukládání rastrů) vyžadují speciální nadstavbu (Oracle Spatial), která i kdyby byla[51], tak by zřejmě bylo poměrně obtížné prosadit její instalaci (nebo konfiguraci) na DBMS, kde běží "ostrý" STAG.
pro některé administrační otázky je třeba mít roli DBA (nebo alespoň poměrně vysoká práva); obávám se, že toto by také mohl být problém.
Během práce byla vydána nová verze ArcSDE 9.3[52] . S překvapením jsem zjistil, že byla přidána podpora open-source DBMS PostgreSQL!!! Vzhledem k nulovým pořizovacím nákladům tohoto DBMS, podpoře prostorových dat (nadstavba PostGIS) a široké komunitě vývojářů[53] lze očekávat, že by se mohlo jednat výborné řešení. Je však otázka, jak si PostgreSQL poradí s velkými objemy dat, kterými geodata oplývají.
ArcInfo Desktop 9.2, (Build 1420 na straně serveru; Build 1500 na klientské straně),
ArcSDE Enterprise Server 9.2.0, Build 1081 (na straně serveru),
ArcSDE Personal Server 9.00.3068.00,
Oracle Database 10g Express Edition Release 10.2.0.1.0,
Oracle Application Express 2.1.0.00.39,
DbVisualizer Free 6.0.13 Build: 1314 (2008/08/19 15:13) (Java Version: 1.5.0_12),
SQL Developer (1.5.0.53 Buid MAIN 53.38 na straně serveru; 1.5.0.51 Buid MAIN 51.70),
Foxit Reader, IrfanView, XMLmind XML Editor Personal Edition 3.8.1, ...
[ESRI: New in ArcGIS 9.2] ESRI. What's New in the Geodatabase at ArcGIS 9.2 [online]. [2007] [cit. 2008-10-28]. Dostupný z WWW: <http://training.esri.com/acb2000/showdetl.cfm?DID=6&Product_ID=864>.
[ARCDATA: ArcGIS Server] ARCDATA PRAHA. ArcGIS Server [online]. c2007 [cit. 2008-10-28]. Dostupný z WWW: <http://www.arcdata.cz/produkty-a-sluzby/software/esri/arcgis-servery/arcgis-server/>.
[ESRI: ArcSDE] ESRI. ArcSDE : Advanced Spatial Data Server [online]. [2007] [cit. 2008-10-28]. Dostupný z WWW: <http://www.esri.com/software/arcgis/arcsde/index.html>.
[ESRI: Support matrix for ArcSDE] ESRI. Supported Databases for ArcSDE 9.2 on PC-Intel Windows XP Professional Edition [online]. [???] [cit. 2008-10-28]. Dostupný z WWW: <http://support.esri.com/index.cfm?fa=knowledgebase.systemRequirements.formList&PN=ArcSDE&pvName=9.2&productID=19&PID=19&DN=&count=2&PVID=372&hn=PC-Intel+Windows+XP+Professional+Edition&VID=>.
[Wikipedia EN: Geodatabase] Wikipedia : Geodatabase [online]. 2008 , 9 July 2008 [cit. 2008-10-28]. Dostupný z WWW: <http://en.wikipedia.org/wiki/Geodatabase>.
[JEDLICKA, ORALEK: IS male obce] JEDLIČKA, Karel, ORÁLEK, Jakub. Prostorové rozhraní informačního systému malé obce řešené v Open Source Software [online]. 2006 , 19 June 2007 [cit. 2009-04-28]. Dostupný z WWW: <http://geoinformatics.fsv.cvut.cz/wiki/index.php?title=Prostorov%C3%A9_rozhran%C3%AD_informa%C4%8Dn%C3%ADho_syst%C3%A9mu_mal%C3%A9_obce_%C5%99e%C5%A1en%C3%A9_v_Open_Source_Software&oldid=3141>.
[KRALOVEC: Geodatabáze] KRÁLOVEC, Vojtěch. Geografické databáze společnosti ESRI. [s.l.], 2008. ??? s. Západočeská univerzita v Plzni. Vedoucí seminární práce Ing. Karel Jedlička. Dostupný z WWW: <http://www.gis.zcu.cz/index.php?page=pdb_referaty>.
[ORACLE: EE Installation Guide] Oracle. Oracle® Database Express Edition Installation Guide [online]. c2005 [cit. 2008-10-28]. Dostupný z WWW: <http://download.oracle.com/docs/cd/B25329_01/doc/install.102/b25143/toc.htm>.
[ORACLE: SQL Developer] Oracle. Oracle SQL Developer [online]. [2008] [cit. 2008-10-28]. Dostupný z WWW: <http://www.oracle.com/technology/products/database/sql_developer/index.html>.
[ORACLE: Application Express] Oracle. Oracle Application Express [online]. [2008] [cit. 2008-10-28]. Dostupný z WWW: <http://www.oracle.com/technology/products/database/application_express/index.html>.
[ORACLE: SQL Reference] Oracle. Oracle® Database SQL Reference [online]. c1996-2005 [cit. 2008-10-28]. Dostupný z WWW: <http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/toc.htm>.
[ORACLE: SYS and SYSTEM] Oracle. Managing Users and Security : The SYS and SYSTEM Users [online]. c2005 [cit. 2008-10-28]. Dostupný z WWW: <http://download.oracle.com/docs/cd/B25329_01/doc/admin.102/b25107/users_secure.htm#sthref268>.
[ORACLE: 2 Day DBA] Oracle. Oracle® Database Express Edition 2 Day DBA [online]. c2005 [cit. 2008-10-28]. Dostupný z WWW: <http://download.oracle.com/docs/cd/B25329_01/doc/admin.102/b25107/toc.htm>.
[ESRI: ArcSDE Installation Guide] ESRI. ArcSDE Installation Guide [online]. [2007] [cit. 2008-10-28]. Dostupný z instalačního DVD ArcSDE: <...\Install_PersonalSQLExpress.htm>.
[ESRI: SDE Admin Commands] ESRI. ArcSDE Administration Commands [online]. c2005 [cit. 2008-10-28]. Dostupný na serveru EUGEN: <file:///C:/Program%20Files/ArcGIS/ArcSDE/Documentation/Admin_Cmd_Ref/Support_files/admincmdref92/admincmdref.htm>, nebo Start/Programy/ArcGIS/ArcSDE/Command References.
[AG92 Help] ESRI. ArcGIS Desktop Help 9.2 [online]. 1999-2006 , March 28, 2008 [cit. 2008-10-28]. Dostupný z WWW: <http://webhelp.esri.com/arcgisdesktop/9.2/index.cfm?TopicName=welcome>.
[AG93 Help] ESRI. ArcGIS Desktop Help 9.3 [online]. 1999-2008 , March 15, 2007 [cit. 2008-10-28]. Dostupný z WWW: <http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=welcome>.