1. 程式人生 > >ORACLE Physical Standby 級聯備庫搭建

ORACLE Physical Standby 級聯備庫搭建

lin database per strong xxxxxx man enable sync redo

搭建oracle 級聯DG

現在db與dg1是一套DG ,在此基礎上搭建級聯備庫:

數據庫版本 11.2.0.4 db_name=prod db為主庫,dg1為備庫,dg2為級聯備庫;
DB_UNIQUE_NAME DATABASE_ROLE
db primary 10.100.12.10
dg1 standby1 10.100.12.11
dg2 standby2 10.100.12.12

三個庫的LOG_FILE_NAME_CONVERT,DB_FILE_NAME_CONVERT路徑一致
############################ 主庫db參數文件設置 #########################################

主庫db的參數文件如下:
db_name=prod
instance_name=db
db_unique_name=db
*.FAL_CLIENT=‘db‘
*.FAL_SERVER=‘dg1‘
*.LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(db,dg1,dg2)‘;
*.LOG_ARCHIVE_DEST_1=‘LOCATION=/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=db‘
*.LOG_ARCHIVE_DEST_2=‘SERVICE=dg1 SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dg1‘
*.LOG_ARCHIVE_DEST_STATE_1=‘ENABLE‘
*.LOG_ARCHIVE_DEST_STATE_2=‘ENABLE‘
*.STANDBY_FILE_MANAGEMENT=‘AUTO‘
*.DB_FILE_NAME_CONVERT=‘db‘,‘dg1‘
*.LOG_FILE_NAME_CONVERT=‘db‘,‘dg1‘


############################### 備庫dg1 ####################################################
備庫dg1的參數文件如下
db_name=prod
instance_name=dg1
db_unique_name=dg1
*.FAL_CLIENT=‘dg1‘
*.FAL_SERVER=‘db‘
*.LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(db,dg1,dg2)‘;
*.LOG_ARCHIVE_DEST_1=‘LOCATION=/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dg1‘
*.LOG_ARCHIVE_DEST_2=‘SERVICE=dg2 SYNC VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE

) DB_UNIQUE_NAME=dg2‘
*.LOG_ARCHIVE_DEST_STATE_1=‘ENABLE‘
*.LOG_ARCHIVE_DEST_STATE_2=‘ENABLE‘
*.STANDBY_FILE_MANAGEMENT=‘AUTO‘
*.DB_FILE_NAME_CONVERT=‘db‘,‘dg1‘
*.LOG_FILE_NAME_CONVERT=‘db‘,‘dg1‘

################################ 備庫dg2 參數 ################################################
在主庫上做備份,傳至備庫dg2,源數據庫為主庫
復制主庫db的參數文件至dg2,並做修改,restore standby controlfile並啟動備庫dg2至mount狀態

主庫dg2上運行:
rman target sys/xxxxxx@db auxiliary sys/xxxxxx@dg2
duplicate target database for standby nofilenamecheck from active database;

備庫dg2的參數文件如下
db_name=prod
instance_name=dg2
db_unique_name=dg2
*.FAL_CLIENT=‘dg2‘
*.FAL_SERVER=‘dg1‘
*.LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(db,dg1,dg2)‘;
*.LOG_ARCHIVE_DEST_1=‘LOCATION=/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dg1‘
*.LOG_ARCHIVE_DEST_STATE_1=‘ENABLE‘

*.DB_FILE_NAME_CONVERT=‘dg1‘,‘dg2‘
*.LOG_FILE_NAME_CONVERT=‘dg1‘,‘dg2‘

Cascaded Redo Transport Destinations
A cascaded redo transport destination (also known as a terminal destination) receives primary database redo indirectly from a standby database rather than directly from a primary database.
A physical standby database that cascades primary database redo to one or more terminal destinations at the same time it is applying changes to its local database files is known as a cascading standby database.
With cascading, the overhead associated with performing redo transport is offloaded from a primary database to a cascading standby database.
A cascading standby database can cascade primary database redo to up to 30 terminal destinations.

db到dg1是歸檔日誌與在線日誌同步,dg1到dg2只能通過歸檔日誌同步,所以必須在dg切換日誌,dg2才會接受到日誌並同步數據

ORACLE Physical Standby 級聯備庫搭建