Разблокировать пользователя в базе PDB
Каждый раз, когда я включаю свой компьютер и пытаюсь подключиться к HR
база данных, выскакивает ошибка с сообщением о блокировке, затем я перехожу в SQLPLUS и вхожу в систему как SYSDBA
, и выполните следующий сценарий:
Мой вопрос: всегда ли я должен это делать? Есть ли способ сохранить это всегда?UNLOCKED
?
1.- sqlplus / as sysdba
2.- show con_name;
3.- ALTER SESSION SET CONTAINER = orclpdb;
4.- COLUMN name FORMAT a20;
5.- SELECT name, open_mode from v$pdbs;
6.- ALTER PLUGGABLE DATABASE open;
7.- ALTER USER hr IDENTIFIED BY hr ACCOUNT UNLOCK;
8- conn hr/hr@orclpdb
9.- SHOW USER;
1 ответ
Прочтите обязательные шаги после установки Oracle 12c
Чтобы открыть все / определенные 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 открывались автоматически, сделайте следующее:
Делать, 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;