Oracle
如何在 Oracle 12c 中為 RCU 創建和啟動 PDB
因此,我在基於 OEL 6.5 x64 的虛擬機上進行了全新安裝。我所有的安裝都在
/opt/apps
我安裝了 Oracle Database 12c,選擇了桌面版本(不是伺服器),UNICODE 編碼,企業版。如果我做對了,從這一點開始,我只有一個名為的 CDB
orcl
正在執行。現在我想執行儲存庫創建實用程序來為 OIM 和 OAM 初始化數據庫,但是當我這樣做時它告訴我它不會在 CDB 上執行。所以我檢查了 Oracle 文件並從預設種子創建了一個 PDB:
CREATE PLUGGABLE DATABASE PDBFMW ADMIN USER fmw IDENTIFIED BY Passw0rd FILE_NAME_CONVERT=( '/opt/apps/oradata/orcl/pdbseed/system01.dbf', '/opt/apps/oradata/orcl/pdbfmw/system01.dbf', '/opt/apps/oradata/orcl/pdbseed/sysaux01.dbf', '/opt/apps/oradata/orcl/pdbfmw/sysaux01.dbf', '/opt/apps/oradata/orcl/pdbseed/pdbseed_temp01.dbf', '/opt/apps/oradata/orcl/pdbfmw/pdbfmw_temp01.dbf') STORAGE UNLIMITED; ALTER PLUGGABLE DATABASE PDBFMW OPEN READ WRITE; GRANT ALL PRIVILEGES TO fmw WITH ADMIN OPTION; GRANT SYS TO fmw;
到目前為止,我的 PDB 還沒有啟動,也不會從
orcl
實例開始,所以我做了這個觸發器:CREATE OR REPLACE TRIGGER open_pdbs AFTER STARTUP ON DATABASE BEGIN EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN READ WRITE'; END open_pdbs; \
有人告訴我,它應該自動啟動我
PDBFMW
的ORCL
. 所以我檢查了它:SELECT name, open_mode from v$pdbs;
這告訴我它已正確打開並處於讀寫模式。
但是當我嘗試連接時:
export ORACLE_SID=pdbfmw sqlplus / as sysdba
它說連接到一個空閒實例。
看看: http ://docs.oracle.com/database/121/DBSEG/authentication.htm#DBSEG99827
Operating system authentication is not supported in a multitenant environment.
您無法使用“sqlplus / as sysdba”連接到 PDB。它僅適用於 CDB。
如果您將環境變數 ORACLE_SID 更改為 PDB 的環境變數,您將連接到他認為不存在的 CDB 的二進製文件,並且您將收到“已連接到空閒實例”的消息
**有趣的事實:**如果您以 oracle 二進製文件所有者(或 dba 組中的某個人)身份登錄並嘗試連接:
sqlplus pdbuser/pdbpass@pdb as sysdba
即使在 CDB 中不存在 pdbuser,由於 OS 身份驗證,您將在 CDB 上以具有 SYSDBA 權限的 pdbuser 身份登錄它。
或者至少這就是在我的測試/實驗環境中發生的事情……