データベースをどのように構成しましたか? Pluggable database
のオプションを確認しましたか ?はいの場合は、必ずPDB
にログインしてください。 CDB
ではありません 。
Oracle 12c PostInstallationMandatoryをお読みください手順 。
デフォルトでは、pre-installed
SCOTT
のようなユーザー 、HR
などはcontainer database
にあります pluggable database
にはありません 。
tnsnames.ora
tnsnames.oraファイルを編集して、PDBの詳細を追加します。たとえば、
PDBORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdborcl)
)
)
すべてのPDBを開く
ログオン直後にすべて/特定のPDBを開くには、起動後を作成します CDBのシステムレベルのトリガー。
以来、PDBはCDBスタートを通じて開かれていません。見てみましょう:
SHUTDOWN IMMEDIATE;
STARTUP;
SQL> SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READ ONLY
PDBP6 MOUNTED
したがって、すべてのPDBを自動的に開くには、次のようにします:
「SQLPLUS / AS SYSDBA
」、次に実行します:
CREATE OR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
END open_pdbs;
/
CDBで起動後のシステムレベルのトリガーを作成します。
SQLPLUS / AS SYSDBA
最も一般的な誤解は、「SQLPLUS/ASSYSDBA」の使用法に関するものです。
単一のCDBを作成するオプションをチェックしたので 、「SQLPLUS/ASSYSDBA」コマンドは常にCDBにログインします。通常、開発者はSYSDBAとしてログインした直後に「SCOTT」アカウントのロックを解除していました。しかし、ここにトリックがあります:
「SCOTT」およびその他のサンプルスキーマはPDBにあり、CDBにはありません 。そのため、sysdbaとしてPDBにログインする必要があります。
sqlplus SYS/[email protected] AS SYSDBA
SQL> ALTER USER scott ACCOUNT UNLOCK IDENTIFIED BY tiger;
sqlplus scott/[email protected]
SQL> show user;
USER is "SCOTT"