Пожалуйста, прочитайте Oracle 12 c После установки Обязательные шаги
Чтобы открыть все / указанные c 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 все еще находится в смонтированном состоянии и не открыта для чтения / записи.
Итак, чтобы автоматически иметь все PDB. открыть , сделать это:
Do, 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 SYS/password@PDBORCL AS SYSDBA
SQL> ALTER USER hr ACCOUNT UNLOCK IDENTIFIED BY hr;
sqlplus hr/hr@pdborcl
SQL> show user;
USER is "HR"
Теперь вам не нужно открывать PDB вручную, просто подключитесь к PDB и нужному пользователю.
От 12.1.0.2 вперед, вы можете сохранить состояние запуска PDB через перезапуск CDB:
ALTER PLUGGABLE DATABASE pdb_name OPEN;
ALTER PLUGGABLE DATABASE pdb_name SAVE STATE;
Чтобы отменить сохраненное состояние:
ALTER PLUGGABLE DATABASE pdb_name DISCARD STATE;