克隆PDB数据库操作
Posted bisal
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了克隆PDB数据库操作相关的知识,希望对你有一定的参考价值。
Oracle 12c开始提供了多租户数据库的功能,对于不同PDB的复制,可以通过克隆,非常便捷地实现。
测试库是19c,当前有个BISALPDB1的PDB,
SQL> select banner from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY YES
3 BISALPDB1 READ WRITE YES
如果我现在需要根据BISALPDB1克隆一个完全相同的BISALPDB2,只需要如下操作,
SQL> create pluggable database bisalpdb2 from bisalpdb1 file_name_convert=('BISALPDB1', 'BISALPDB2');
Pluggable database created.
其中file_name_convert的第一个参数是源库的数据文件(夹)名称,第二个参数是目标库的数据文件(夹)名称,如果指定为NONE,则会采用OMF自动设置名称。
此时就可以看到已经创建了BISALPDB2,但状态未打开,
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY YES
3 BISALPDB1 READ WRITE YES
5 BISALPDB2 MOUNTED
打开这个PDB,就可以使用了,
SQL> alter pluggable database bisalpdb2 open;
Warning: PDB altered with errors.
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY YES
3 BISALPDB1 READ WRITE YES
5 BISALPDB2 READ WRITE YES
我们来对比下这两个PDB的数据文件,BISALPDB1的,
[oracle@bisal BISALCDB]$ cd BISALPDB1/
[oracle@bisal BISALPDB1]$ ls -rlht
-rw-r----- 1 oracle oinstall 130M Jan 1 08:24 temp01.dbf
-rw-r----- 1 oracle oinstall 68M Jan 1 14:54 users01.dbf
-rw-r----- 1 oracle oinstall 311M Jan 1 14:54 sysaux01.dbf
-rw-r----- 1 oracle oinstall 271M Jan 1 14:55 system01.dbf
-rw-r----- 1 oracle oinstall 101M Jan 1 14:55 undotbs01.dbf
BISALPDB2的,可以看到,基本都是相同的,登录BISALPDB2,可以发现,用户表、用户名、用户的密码,和BISALPDB1都是相同的,达到了克隆目的,
[oracle@bisal BISALCDB]$ cd BISALPDB2/
[oracle@bisal BISALPDB2]$ ls -rlht
-rw-r----- 1 oracle oinstall 130M Jan 1 14:54 temp01.dbf
-rw-r----- 1 oracle oinstall 68M Jan 1 14:55 users01.dbf
-rw-r----- 1 oracle oinstall 271M Jan 1 14:56 system01.dbf
-rw-r----- 1 oracle oinstall 101M Jan 1 15:00 undotbs01.dbf
-rw-r----- 1 oracle oinstall 311M Jan 1 15:00 sysaux01.dbf
如果删除PDB,记得加上including datafiles,他会连同数据文件夹一起删除,
SQL> drop pluggable database bisalpdb2 including datafiles;
Pluggable database dropped.
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY YES
3 BISALPDB1 READ WRITE YES
通过alert日志,可以看到删除物理文件的操作,
drop pluggable database bisalpdb2 including datafiles
2022-01-01T15:13:37.179421+08:00
Deleted file /opt/oracle/oradata/BISALCDB/BISALPDB2/users01.dbf
Deleted file /opt/oracle/oradata/BISALCDB/BISALPDB2/temp01.dbf
Deleted file /opt/oracle/oradata/BISALCDB/BISALPDB2/undotbs01.dbf
Deleted file /opt/oracle/oradata/BISALCDB/BISALPDB2/sysaux01.dbf
Deleted file /opt/oracle/oradata/BISALCDB/BISALPDB2/system01.dbf
Completed: drop pluggable database bisalpdb2 including datafiles
如果是Oracle 12c以上,采用了CDB-PDB的模式,需要复制一个PDB数据库的时候,这种克隆操作,确实非常便捷。
近期更新的文章:
《关于数据治理的读书笔记 - 数据治理、数据管理和数据管控的理解》
文章分类和索引:
以上是关于克隆PDB数据库操作的主要内容,如果未能解决你的问题,请参考以下文章
番外:可刷新PDB的管理操作(如何切换PDB Switching Over)