Как клонировать подключаемую базу данных в Oracle
Я новичок в подключаемых базах данных Oracle (мы все еще используем Oracle 11.2 на работе). Для проверки разделов и подразделов мне нужно создать пару десятков табличных пространств. Я подумал, что быстро клонирую свою текущую базу данных, проведу тесты, а потом отброшу базу данных.
Я смог клонировать базу данных:
CREATE PLUGGABLE DATABASE ora193p2 FROM ora193p1
FILE_NAME_CONVERT = (
'/opt/oracle/oradata/ORA193C/ORA193P1/',
'/opt/oracle/oradata/ORA193C/ORA193P2/');
Pluggable database ORA193P2 created.
но получил ошибку ORA-01109: database not open
при попытке подключиться к нему.
Я попытался открыть его, но тоже получил сообщение об ошибке (ora193c - это имя cdb):
ALTER DATABASE ora193p2 OPEN;
ORA-01509: specified name 'ORA193P2' does not match actual 'ORA193C'
Я использовал базу данных из vagrant-box.
2 ответа
Для подключаемых баз данных вам необходимо добавить подключаемую базу данных по ключевым словам, за которой следует имя pdb
SQL> create pluggable database pdbclone from orclpdb;
Pluggable database created.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLPDB READ WRITE NO
4 PDBCLONE MOUNTED
SQL> alter pluggable database pdbclone open;
Pluggable database altered.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLPDB READ WRITE NO
4 PDBCLONE READ WRITE NO
SQL> alter pluggable database pdbclone save state;
Pluggable database altered.
Из 12.1.0.2
и далее вы можете сохранить состояние запуска PDB посредством перезапуска CDB. Представлен набор исправлений 12.1.0.2SAVE STATE
а также DISCARD STATE
параметры:
ALTER PLUGGABLE DATABASE pdb_name OPEN;
ALTER PLUGGABLE DATABASE pdb_name SAVE STATE;
Чтобы отменить сохраненное состояние:
ALTER PLUGGABLE DATABASE pdb_name DISCARD STATE;
За 12.1.0.1
и раньше вы могли создать триггер после запуска:
CREATE OR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
END open_pdbs;
/
Он создает триггер на уровне системы после запуска в CDB.