發(fā)布于:2021-02-02 13:50:20
0
183
0
我們可以通過CREATE PLUGGABLE DATABASE語句的SNAPSHOT COPY子句使用底層存儲的快照克隆PDB。
使用快照副本執(zhí)行PDB克隆可以減少創(chuàng)建克隆所需的時間,因為它不包括源數(shù)據(jù)文件的完整副本。
PDB快照拷貝占用了源可插拔數(shù)據(jù)庫所消耗空間的一小部分。
底層存儲需要支持存儲級快照,例如ACFS和直接NFS客戶機(jī)存儲。使用稀疏ASM磁盤組的Exadata也支持此功能。
CLONEDB參數(shù)設(shè)置為FALSE時,使我們能夠創(chuàng)建源PDB的存儲級快照副本,甚至可以以讀寫模式打開。
讓我們看一個PDB快照拷貝的示例。
PDB1是Snapshot Copy的源,并且數(shù)據(jù)庫在READ WRITE模式下打開。CLONEDB參數(shù)為FALSE?;A(chǔ)存儲是使用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源創(chuàng)建PDB快照副本PDB2。
SQL> create pluggable database pdb2 from pdb1 snapshot copy;
Pluggable database created.
注意PDB1和PDB2的數(shù)據(jù)文件,并注意每個文件的大小。
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
現(xiàn)在請注意,與源數(shù)據(jù)庫PDB1(1.4 GB)相比,PDB2快照副本(133 MB)在磁盤上的實際大小。
即使是133MB也被TEMPFILE占用,而數(shù)據(jù)文件每個只消耗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