ArcGIs創建企業級資料庫
目標:創建企業級地理資料庫,使用ArcMap通過SDE引擎 與Oracle交互數據,創建完成後將本地的mdb資料庫中數據遷移到Oracle的地理資料庫當中。
一,安裝Oracle客戶端
需要注意的是,安裝後的oracle程式文件根目錄是沒有network文件夾的,需要手動建立。
然後在network下建立admin文件夾。
然後創建tnsnames.ora。
然後編輯tnsnames.ora,把我們要可以連接的Oracle數據都寫在裡面。
ORCL@11 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.11)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) ORACLR_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) ) ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.7.81)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) [email protected] = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.111)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )
安裝完Oracle客戶端後可以安裝一個PLSQL來測試安裝的Oracle客戶端是否正常運行。
二,創建企業級地理資料庫
首先打開ArcMap測試本機與Oracle是否可以正常連接,如下圖,在右側找到資料庫連接,然後點擊添加資料庫連接。
選擇Oracle數據,輸入實例名和資料庫用戶的賬戶密碼。
實例名是我們編輯tnsnames.ora時,等號前的名稱,如下圖:
2,創建企業級地理資料庫
因為企業級資料庫是創建在Oracle實例上的,而不是創建在表空間上的,即一旦企業級地理資料庫創建成功,資料庫內所有表空間都可以存儲空間數據,所以一個資料庫只能創建一個企業級資料庫,簡單來說就是把某個Oracle資料庫設置成企業級資料庫。
下面我們點擊ArcToolBox—資料庫管理工具—創建企業級資料庫。
然後輸入資料庫實例,資料庫管理員密碼(sys默認密碼是sys),然後創建一個地理資料庫管理員(即資料庫用戶),然後設置用戶的表空間,然後選擇安裝Desktop時使用的許可文件。
創建時會彈出提示框顯示創建進度(資料庫管理員和表空間不為sde的情況下,創建會提示失敗)。
創建成功後提示框資訊如下:
查看企業級資料庫
創建完成後,我們添加資料庫連接查看,會出現一個.sde後綴的資料庫,然後點擊,會發現可以看到資料庫全部的表。
這是由於在創建SDE用戶時賦予了SELECT ANY TABLE許可權,因此可以訪問其他用戶的表,這對於數據管理來說是不安全的,而且也增加了尋找要素表的難度。
為了安全,我們刪除用戶許可權。
打開PLSQL,隨便一個用戶登錄後,輸入查詢。
select privilege from dba_sys_privs where grantee='SDE'
如下圖:
刪除SELECT ANY TABLE許可權
revoke SELECT ANY TABLE from SDE
再去連接空間庫後會發現其他用戶的表不見了。
然後我們再找到資料庫連接,然後右鍵,會發現新建下面多了一個要素類和要素數據集,這代表我們可以直接在資料庫中創建空間數據了。
三,刪除企業級用戶
刪除企業級用戶執行如下程式碼:
drop user SDE cascade DROP TABLESPACE SDE INCLUDING CONTENTS CASCADE CONSTRAINTS;
window用戶,物理刪除sde文件夾
D:\app\Administrator\product\11.2.0\dbhome_1\database\sde
Linux用戶執行命令刪除
# cd/u01/app/oracle/product/11.2.0/dbhome_1/dbs/ # rm -rf sde
如果用戶處於連接狀態,可以先查詢當前連接,如下。
select username,sid,serial# from v$session
如下結果:
username | sid | serial# |
---|---|---|
NETBNEW | 513 | 22974 |
NETBNEW | 514 | 18183 |
NETBNEW | 531 | 9 |
然後執行下面程式碼,刪除當前用戶連接。
alter system kill session '531,9'
三,轉移空間數據
首先在右側文件夾連接中,連接一個文件夾,然後把地圖的mdb放進去,然後選擇一個圖層右鍵導出,選擇轉出至地理資料庫(單個),如下圖:
在[要素類至要素類]頁面的輸出位置中選擇剛剛我們創建的資料庫連接,然後在輸出要素類中輸入導入至Oracle後的要素類名稱。
點擊確定後,需多等待一會,數據導入成功後,可以右鍵刷新資料庫連接,然後就可以看到剛剛導入的要素類了。
完成後右下角會提示,如下圖:
然後就可以基於oracle的數據進行共享服務了。
點擊文件—共享為—服務,如下圖:
—————————————————————————————————-
註:此文章為原創,任何形式的轉載都請聯繫作者獲得授權並註明出處!
若您覺得這篇文章還不錯,請點擊下方的【推薦】,非常感謝!
//www.cnblogs.com/kiba/p/16035784.html