元数据PDB克隆
show CON_NAME
CREATE PLUGGABLE DATABASE pdb10 ADMIN USER pdb_adm IDENTIFIED BY aabb123
FILE_NAME_CONVERT=(‘D:\app\Administrator\oradata\CDB1\pdbseed’,
‘D:\app\Administrator\oradata\CDB1\pdb10’);
ALTER PLUGGABLE DATABASE pdb10 OPEN;
ALTER SESSION SET CONTAINER = pdb10;
CREATE TABLESPACE users
DATAFILE ‘D:\app\Administrator\oradata\CDB1\pdb10\users01.dbf’
SIZE 1M AUTOEXTEND ON NEXT 1M;
CREATE USER test IDENTIFIED BY test
DEFAULT TABLESPACE users
QUOTA UNLIMITED ON users;
CREATE TABLE test.t1 (
id NUMBER
);
INSERT INTO test.t1 VALUES (1);
COMMIT;
SELECT COUNT() FROM test.t1;
show pdbs
ALTER PLUGGABLE DATABASE pdb10 CLOSE;
ALTER PLUGGABLE DATABASE pdb10 OPEN READ ONLY;
show pdbs
CREATE PLUGGABLE DATABASE pdb11 FROM pdb10
FILE_NAME_CONVERT=(‘D:\app\Administrator\oradata\CDB1\PDB10’,
‘D:\app\Administrator\oradata\CDB1\PDB11’) NO DATA;
show pdbs
show pdbs
ALTER PLUGGABLE DATABASE pdb11 OPEN READ WRITE;
show pdbs
ALTER PLUGGABLE DATABASE pdb10 CLOSE;
ALTER PLUGGABLE DATABASE pdb10 OPEN READ WRITE;
有表无数据
ALTER SESSION SET CONTAINER = pdb11;
SELECT * FROM test.t1;
SELECT COUNT() FROM test.t1;
PDB子集克隆
创建PDB20
ALTER SESSION SET CONTAINER=cdb$root;
CREATE PLUGGABLE DATABASE pdb20 ADMIN USER pdb_adm IDENTIFIED BY aabb123
FILE_NAME_CONVERT=(‘D:\app\Administrator\oradata\CDB1\pdbseed’,
‘D:\app\Administrator\oradata\CDB1\pdb20’);
ALTER PLUGGABLE DATABASE pdb20 OPEN;
ALTER SESSION SET CONTAINER = pdb20;
CREATE TABLESPACE ts1
DATAFILE ‘D:\app\Administrator\oradata\CDB1\PDB20\ts101.dbf’
SIZE 1M AUTOEXTEND ON NEXT 1M;
CREATE USER test1 IDENTIFIED BY test1
DEFAULT TABLESPACE ts1
QUOTA UNLIMITED ON ts1;
CREATE TABLE test1.t1 (
id NUMBER
);
INSERT INTO test1.t1 VALUES (1);
COMMIT;
CREATE TABLESPACE ts2
DATAFILE ‘D:\app\Administrator\oradata\CDB1\PDB20\ts201.dbf’
SIZE 1M AUTOEXTEND ON NEXT 1M;
CREATE USER test2 IDENTIFIED BY test2
DEFAULT TABLESPACE ts2
QUOTA UNLIMITED ON ts2;
CREATE TABLE test2.t2 (
id NUMBER
);
INSERT INTO test2.t2 VALUES (1);
COMMIT;
CREATE TABLESPACE ts3
DATAFILE ‘D:\app\Administrator\oradata\CDB1\PDB20\ts301.dbf’
SIZE 1M AUTOEXTEND ON NEXT 1M;
CREATE USER test3 IDENTIFIED BY test3
DEFAULT TABLESPACE ts3
QUOTA UNLIMITED ON ts3;
CREATE TABLE test3.t3 (
id NUMBER
);
INSERT INTO test3.t3 VALUES (1);
COMMIT;
SELECT owner, table_name, tablespace_name
FROM dba_tables
WHERE table_name IN (‘T1’,‘T2’,‘T3’)
ORDER BY owner
ALTER SESSION SET CONTAINER=cdb$root;
CREATE PLUGGABLE DATABASE pdb21 FROM pdb20
FILE_NAME_CONVERT=(‘D:\app\Administrator\oradata\CDB1\pdb20’,
‘D:\app\Administrator\oradata\CDB1\pdb21’)
USER_TABLESPACES=(‘ts1’, ‘ts2’);
ALTER PLUGGABLE DATABASE pdb21 OPEN;
ALTER SESSION SET CONTAINER = pdb21;
SELECT * FROM test1.t1;
SELECT * FROM test2.t2;
创建一个不存在任何用户定义表空间的克隆
ALTER SESSION SET CONTAINER=cdb$root;
CREATE PLUGGABLE DATABASE pdb22 FROM pdb20
FILE_NAME_CONVERT=(‘D:\app\Administrator\oradata\CDB1\pdb20’,
‘D:\app\Administrator\oradata\CDB1\pdb22’)
USER_TABLESPACES=NONE;
ALTER PLUGGABLE DATABASE pdb22 OPEN;
ALTER SESSION SET CONTAINER = pdb22;
SELECT * FROM test1.t1;
克隆所有用户定义的表空间
ALTER SESSION SET CONTAINER=cdb$root;
CREATE PLUGGABLE DATABASE pdb23 FROM pdb20
FILE_NAME_CONVERT=(‘D:\app\Administrator\oradata\CDB1\pdb20’,
‘D:\app\Administrator\oradata\CDB1\pdb23’)
USER_TABLESPACES=ALL;
ALTER PLUGGABLE DATABASE pdb23 OPEN;
ALTER SESSION SET CONTAINER = pdb23;
SELECT * FROM test3.t3;
列出要排除的那些表空间
ALTER SESSION SET CONTAINER=cdb$root;
CREATE PLUGGABLE DATABASE pdb24 FROM pdb20
FILE_NAME_CONVERT=(‘D:\app\Administrator\oradata\CDB1\pdb20’,
‘D:\app\Administrator\oradata\CDB1\pdb24’)
USER_TABLESPACES=ALL EXCEPT(‘ts3’);
ALTER PLUGGABLE DATABASE pdb24 OPEN;