发布于:2021-02-02 13:50:20
0
163
0
我们可以通过CREATE PLUGGABLE DATABASE语句的SNAPSHOT COPY子句使用底层存储的快照克隆PDB。
使用快照副本执行PDB克隆可以减少创建克隆所需的时间,因为它不包括源数据文件的完整副本。
PDB快照拷贝占用了源可插拔数据库所消耗空间的一小部分。
底层存储需要支持存储级快照,例如ACFS和直接NFS客户机存储。使用稀疏ASM磁盘组的Exadata也支持此功能。
CLONEDB参数设置为FALSE时,使我们能够创建源PDB的存储级快照副本,甚至可以以读写模式打开。
让我们看一个PDB快照拷贝的示例。
PDB1是Snapshot Copy的源,并且数据库在READ WRITE模式下打开。CLONEDB参数为FALSE。基础存储是使用19c Grid Infrastructure的ACFS。
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE NO
SQL> show parameter clone
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
clonedb boolean FALSE
clonedb_dir string
从PDB1源创建PDB快照副本PDB2。
SQL> create pluggable database pdb2 from pdb1 snapshot copy;
Pluggable database created.
注意PDB1和PDB2的数据文件,并注意每个文件的大小。
SQL> select pdb_name,GUID from dba_pdbs;
PDB_NAME GUID
---------- --------------------------------
PDB1 951745FCC921042AE0536438A8C02A7B
PDB$SEED 95170A7763F65A6FE0536438A8C014F5
PDB2 957B7E9809F96452E0536438A8C06E13
SQL> select name,bytes/1048576 from v$datafile;
NAME BYTES/1048576
---------------------------------------------------------------------------------------------------- -------------
/acfs/app/oradata/CDB1/datafile/o1_mf_system_gtj4ys7c_.dbf 910
/acfs/app/oradata/CDB1/datafile/o1_mf_sysaux_gtj506h0_.dbf 670
/acfs/app/oradata/CDB1/datafile/o1_mf_undotbs1_gtj50zq9_.dbf 280
/acfs/app/oradata/CDB1/datafile/o1_mf_system_gtj5h2mc_.dbf 270
/acfs/app/oradata/CDB1/datafile/o1_mf_sysaux_gtj5h2o0_.dbf 330
/acfs/app/oradata/CDB1/datafile/o1_mf_users_gtj510xb_.dbf 5
/acfs/app/oradata/CDB1/datafile/o1_mf_undotbs1_gtj5h2pk_.dbf 100
/acfs/app/oradata/CDB1/951745FCC921042AE0536438A8C02A7B/datafile/o1_mf_system_gtj6hoxr_.dbf 280
/acfs/app/oradata/CDB1/951745FCC921042AE0536438A8C02A7B/datafile/o1_mf_sysaux_gtj6hp12_.dbf 350
/acfs/app/oradata/CDB1/951745FCC921042AE0536438A8C02A7B/datafile/o1_mf_undotbs1_gtj6hp1c_.dbf 105
/acfs/app/oradata/CDB1/951745FCC921042AE0536438A8C02A7B/datafile/o1_mf_users_gtj6jy5h_.dbf 500
/acfs/app/oradata/CDB1/957B7E9809F96452E0536438A8C06E13/datafile/o1_mf_system_gtxbzsqm_.dbf 280
/acfs/app/oradata/CDB1/957B7E9809F96452E0536438A8C06E13/datafile/o1_mf_sysaux_gtxbzsr1_.dbf 350
/acfs/app/oradata/CDB1/957B7E9809F96452E0536438A8C06E13/datafile/o1_mf_undotbs1_gtxbzsr4_.dbf 105
/acfs/app/oradata/CDB1/957B7E9809F96452E0536438A8C06E13/datafile/o1_mf_users_gtxbzsrc_.dbf 500
现在请注意,与源数据库PDB1(1.4 GB)相比,PDB2快照副本(133 MB)在磁盘上的实际大小。
即使是133MB也被TEMPFILE占用,而数据文件每个只消耗4K!
SQL> !du -hs /acfs/app/oradata/CDB1/951745FCC921042AE0536438A8C02A7B/datafile/
1.4G /acfs/app/oradata/CDB1/951745FCC921042AE0536438A8C02A7B/datafile/
SQL> !du -hs /acfs/app/oradata/CDB1/957B7E9809F96452E0536438A8C06E13/datafile/
133M /acfs/app/oradata/CDB1/957B7E9809F96452E0536438A8C06E13/datafile/
SQL> !du -hs /acfs/app/oradata/CDB1/957B7E9809F96452E0536438A8C06E13/datafile/*
4.0K /acfs/app/oradata/CDB1/957B7E9809F96452E0536438A8C06E13/datafile/o1_mf_sysaux_gtxbzsr1_.dbf
4.0K /acfs/app/oradata/CDB1/957B7E9809F96452E0536438A8C06E13/datafile/o1_mf_system_gtxbzsqm_.dbf
133M /acfs/app/oradata/CDB1/957B7E9809F96452E0536438A8C06E13/datafile/o1_mf_temp_gtxbzsr8_.dbf
4.0K /acfs/app/oradata/CDB1/957B7E9809F96452E0536438A8C06E13/datafile/o1_mf_undotbs1_gtxbzsr4_.dbf
4.0K /acfs/app/oradata/CDB1/957B7E9809F96452E0536438A8C06E13/datafile/o1_mf_users_gtxbzsrc_.dbf
作者介绍