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