Windows平台下解決Oracle12c使用PDB數據庫創建SDE的問題
Oracle 12C中引入了CDB與PDB的新特性,在ORACLE 12C數據庫引入的多租用戶環境(Multitenant Environment)中,允許一個數據庫容器(CDB)承載多個可插拔數據庫(PDB)。CDB全稱為Container Database,中文翻譯為數據庫容器,PDB全稱為Pluggable Database,即可插拔數據庫。在ORACLE 12C之前,實例與數據庫是一對一或多對一關系(RAC):即一個實例只能與一個數據庫相關聯,數據庫可以被多個實例所加載。而實例與數據庫不可能是一對多的關系。當進入ORACLE 12C后,實例與數據庫可以是一對多的關系。具體的在這個博客里有做詳細介紹,不再贅述。
在安裝Oracle12C過程中,PDB數據庫在默認情況下會被勾選創建,如下圖所示:
這個時候一個PDB就創建了。但是在我們像以往一樣直連ArcSDE就會存在如下錯誤:ORA-65096:公用用戶名或角色名無效。
本人也是初學,查了這個錯誤,然而這個錯誤這是由於PDB數據庫不同於CDB數據庫的創建用戶方式造成的,怎么解決這個問題呢?還是慢慢從頭開始嘍。
測試環境:Windows server 2012r2、oracle 12.1.0、Oracle12Cclient(32)、desktop10.3
1. 首先創建一個PDB可插拔數據庫,創建數據庫之前首先要指定PDB數據庫文件所存放的路徑,數據庫名稱在這里給定為pdbsde,具體如下:
CREATE PLUGGABLE DATABASE pdbsde ADMIN USERsdeadmin IDENTIFIED BY sdeadmin
STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M)DEFAULT TABLESPACE pdbsde DATAFILE'C:\app\Administrator\oradata\orcl\pdbsde\pdbsde.dbf' SIZE 500M AUTOEXTEND ON
PATH_PREFIX ='C:\app\Administrator\oradata\orcl\pdbsde\'
FILE_NAME_CONVERT =('C:\app\Administrator\oradata\orcl\pdbseed\',
'C:\app\Administrator\oradata\orcl\pdbsde\');
2. 創建好PDB之后,我們來查看一下PDB的狀態信息,如下所示,新創建的PDBSDE是Mounted狀態,我們需要手動打開。
3. 然后查看一下數據文件的變化,很顯然PDBSDE已經被創建。
4. 用SYS用戶測試PDBSDE數據庫的連通情況,正常連接!
5. 接下來就可以快樂的創建SDE了嗎?NO,我們還需要創建表空間,這一步是必要的,否則在創建SDE的時候仍然會報錯要求我們創建表空間的。
CREATE SMALLFILE TABLESPACE SDE DATAFILE
'C:\app\Administrator\oradata\orcl\pdbsde\sde.dbf'SIZE 1000M LOGGING EXTENT MANAGEMENT;
6. 表空間創建好了,我們可以創建SDE了。如下圖所示:
創建成功,這樣就實現了PDB數據庫創建SDE嘍。
當然呢,在后續的學習過程中還是要系統的掌握PDB和CDB數據庫之間的關系和區別,否則遇到問題還是很容易陷入困境,同時也感謝大牛們給我的指導。
LINIX下PDB創建SDE,請參照李老師的博客
http://blog.csdn.net/linghe301/article/details/19337351