Oracle

如何在 Oracle 12c 中為 RCU 創建和啟動 PDB

  • March 10, 2022

因此,我在基於 OEL 6.5 x64 的虛擬機上進行了全新安裝。我所有的安裝都在/opt/apps

我安裝了 Oracle Database 12c,選擇了桌面版本(不是伺服器),UNICODE 編碼,企業版。如果我做對了,從這一點開始,我只有一個名為的 CDBorcl正在執行。

現在我想執行儲存庫創建實用程序來為 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;
\

有人告訴我,它應該自動啟動我PDBFMWORCL. 所以我檢查了它:

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 身份登錄它。

或者至少這就是在我的測試/實驗環境中發生的事情……

引用自:https://dba.stackexchange.com/questions/63847