1、建設需求:
同步主庫新遷入pdb_test01到備庫端,儘量減少對備庫訪問的影響,在備庫read only狀態下對新遷入的pdb進行數據恢復。
2、環境配置
操作系統版本 | redhat 7.6 |
---|---|
數據庫版本 | 19.3.0 |
primary database | cdbtest01 |
standby database | cdbtest01_std |
新遷PDB(待同步) | pdb_test01 |
Note:由於主庫創建pdb_test01時,create pluggable database子句中未指定standby同步參數,在主庫進行create pluggable database操作之後,備庫相關的pdb_test01文件爲offline狀態,該pdb爲mounted狀態。
3、操作步驟
1)、備份新增pdb(主庫端執行)
source /home/oracle/.bash_profile
$ORACLE_HOME/bin/rman target / log=/home/oracle/rman_pdb_test01.log <<EOF
run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
BACKUP as compressed backupset incremental level 0 PLUGGABLE DATABASE pdb_test01
tag hot_bk_level0
format '/backup/ora-rman/cdbtest01/pdb_test01_%d_%T_%s_%p_%t';
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
EOF
2)、查看當前備庫狀態(備庫端執行)
--pdb狀態
show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDBTEST01 MOUNTED
4 PDBTEST02 READ ONLY NO
6 PDB_TEST03 READ ONLY NO
--備庫同步狀態
set line 500
col source_db_unique_name for a20
col name for a30
col value for a20
col unit for a30
select * from v$dataguard_stats;
SOURCE_DBID SOURCE_DB_UNIQUE_NAM NAME VALUE UNIT TIME_COMPUTED DATUM_TIME CON_ID
----------- -------------------- ------------------------------ -------------------- ------------------------------ ------------------------------ ------------------------------ ----------
1625247602 cdbtest01 transport lag +00 00:00:00 day(2) to second(0) interval 06/01/2020 16:27:07 06/01/2020 16:27:06 0
1625247602 cdbtest01 apply lag +00 00:01:35 day(2) to second(0) interval 06/01/2020 16:27:07 06/01/2020 16:27:06 0
1625247602 cdbtest01 apply finish time +00 00:00:01.487 day(2) to second(3) interval 06/01/2020 16:27:07 0
0 estimated startup time 24 second 06/01/2020 16:27:07 0
3)、使備庫待恢復pdb_test01處於disable recovery狀態,不影響現有備庫其他pdb進行mgr日誌應用(備庫端執行)
alter PLUGGABLE DATABASE pdb_test01 disable recovery;
SELECT name, open_mode, recovery_status FROM v$pdbs;
NAME OPEN_MODE RECOVERY
-------------------- -------------------- --------
PDB$SEED READ ONLY ENABLED
PDB_TEST03 READ ONLY ENABLED
PDB_TEST02 READ ONLY ENABLED
PDB_TEST01 MOUNTED DISABLED
4)、cdb處於open read only模式下,備庫執行單個pdb恢復(備庫端執行)
SQL> select OPEN_MODE from v$database;
OPEN_MODE
-------------------- -------------------- --------
READ ONLY WITH APPLY
rman target /
catalog start with '/backup/ora-rman/cdbtest01/';
CONFIGURE DEVICE TYPE DISK PARALLELISM 16;
restore PLUGGABLE DATABASE pdb_test01;
5)、設置redo路徑轉換(備庫端執行)
--設置路徑轉換參數
alter system set log_file_name_convert='+REDO_DG/cdbtest01/', '/u01/oradata/cdbtest01_std/' scope=spfile;
shutdown immediate
startup mount
show parameter conver
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string
log_file_name_convert string +REDO_DG/cdbtest01/, /u01/oradata/cdbtest01_std/
--檢查redo日誌是否轉換
select member from v$logfile
--alert日誌存在如下報錯,更新standby crontrol file日誌文件狀態
2020-06-01T22:02:52.504641+08:00
Errors in file /u01/app/oracle/diag/rdbms/cdbtest01/cdbtest01_std/trace/cdbtest01_lgwr_40010.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: /u01/oradata/cdbtest01_std/onlinelog/group_1.258.1018718267'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 7
alter database clear logfile group n;
6)、恢復完執行新增同步pdb enable recover
col name for a20
col open_mode for a20
set line 200
SELECT name, open_mode, recovery_status FROM v$pdbs;
alter session set container=pdb_test01
alter pluggable database pdb_test01 enable recovery;
alter database recover managed standby database using current logfile disconnect from session;
7)、檢查備庫同步狀態
set line 500
col source_db_unique_name for a20
col name for a30
col value for a20
col unit for a30
select * from v$dataguard_stats;
SOURCE_DBID SOURCE_DB_UNIQUE_NAM NAME VALUE UNIT TIME_COMPUTED DATUM_TIME CON_ID
----------- -------------------- ------------------------------ -------------------- ------------------------------ ------------------------------ ------------------------------ ----------
1625247601 cdbtest01 transport lag +00 00:00:00 day(2) to second(0) interval 06/01/2020 16:27:07 06/01/2020 16:27:06 0
1625247601 cdbtest01 apply lag +00 00:01:35 day(2) to second(0) interval 06/01/2020 16:27:07 06/01/2020 16:27:06 0
1625247601 cdbtest01 apply finish time +00 00:00:01.487 day(2) to second(3) interval 06/01/2020 16:27:07 0
0 estimated startup time 24 second 06/01/2020 16:27:07 0