Oracle 19.3 dataguard環境下同步新增pdb

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章