oracle11g-adg搭建

oracle 11g active dataguard 搭建


1.修改參數
1>新添加dg備庫
檢查主庫配置
SQL> select DBID,NAME,DATABASE_ROLE,PROTECTION_MODE,SWITCHOVER_STATUS,DATAGUARD_BROKER,GUARD_STATUS,DB_UNIQUE_NAME  from v$database;

      DBID NAME      DATABASE_ROLE    PROTECTION_MODE      SWITCHOVER_STATUS    DATAGUAR GUARD_S DB_UNIQUE_NAME
---------- --------- ---------------- -------------------- -------------------- -------- ------- ------------------------------
 387098034 FSRENCAP  PRIMARY          MAXIMUM PERFORMANCE  NOT ALLOWED          DISABLED NONE    fsrenCAP
 
檢查源端參數 
show parameter archive
show parameter dg
show parameter db_name
show parameter db_unique_name

2>修改參數
archive log list;

ALTER DATABASE FORCE LOGGING;
--主備修改以下參數
alter system set DB_UNIQUE_NAME=FSRENCAP   scope=spfile; --唯一名要統一
alter system set LOG_ARCHIVE_DEST_1='LOCATION=/arch/  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=FSRENCAP';--設置主庫歸檔目錄
alter system set LOG_ARCHIVE_DEST_2='service="CAPDG"','LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=FSRENCAP';  --service爲備庫(相對)的tnsname,指向備庫
alter system set FAL_SERVER=CAPDG;  ---備庫tnsname
alter system set FAL_CLIENT=CAP ; --主庫tnsname(當前所在的庫)
alter system set STANDBY_FILE_MANAGEMENT=AUTO  scope=spfile; 
alter system set service_names=fsrenCAP;
alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(fsren,fsrendg)' ; --------主備庫實例名相同不需要更改
alter system set log_archive_dest_state_1='enable';
alter system set log_archive_dest_state_2='enable';
 alter system set dg_broker_start=true;

dg備庫
alter system set DB_UNIQUE_NAME=FSRENCAP   scope=spfile; --唯一名要統一
alter system set LOG_ARCHIVE_DEST_1='LOCATION=/arch/  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=FSRENCAP';--設置主庫歸檔目錄
alter system set LOG_ARCHIVE_DEST_2='service="CAP"','LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=FSRENCAP';  --service爲備庫(相對)的tnsname,指向備庫
alter system set FAL_SERVER=CAP;  ---備庫tnsname
alter system set FAL_CLIENT=CAPDG ; --主庫tnsname(當前所在的庫)
alter system set STANDBY_FILE_MANAGEMENT=AUTO  scope=spfile; 
alter system set service_names=FSRENCAPDG;
alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(fsren,fsrendg)' ; --------主備庫實例名相同不需要更改
alter system set log_archive_dest_state_1='enable';
alter system set log_archive_dest_state_2='enable';
 alter system set dg_broker_start=true;

***
*.db_file_name_convert='/u01/oracle/oradata/KCARDPRD/datafile','/oradata01/kcardprd/kcardprd_data','/raid5/KCARDPRD/datafile','/oradata01/kcardprd/kcardprd_data','/raid10/KCARDPRD/datafile','/oradata01/kcardprd/kcardprd_data','/u01/oracle/oradata/SKCARDPRD/datafile','/oradata01/kcardprd/kcardprd_data'
#db_file_name_convert中臨時文件的路徑也需要轉換
*.log_file_name_convert='/u01/oracle/oradata/KCARDPRD/onlinelog','/oradata01/kcardprd/kcardprd_data'
***
--修改備庫
[oracle@renCAP ~]$ scp fsrenpfile.ora  [email protected]:/home/oracle/

[oracle@renCAP dbs]$ scp orapwfsren  [email protected]:$ORACLE_HOME/dbs
cp $ORACLE_HOME/dbs/orapwfsren   $ORACLE_HOME/dbs/orapwfsrendg

修改實例名(服務名)
alter system set FAL_SERVER=CAP;  ---備庫tnsname
alter system set FAL_CLIENT=CAPDG ; --主庫tnsname(當前所在的庫)
[oracle@renCAPdg ~]$ mkdir -p /opt/app/oracle/admin/fsrenCAP/adump
[oracle@renCAPdg ~]$ mkdir -p /opt/app/oracle/admin/fsrenCAP/bdump
[oracle@renCAPdg ~]$ mkdir -p /opt/app/oracle/admin/fsrenCAP/cdump
[oracle@renCAPdg ~]$ mkdir -p /opt/app/oracle/admin/fsrenCAP/ddump


2.創建tns鏈路

cap =
  (DESCRIPTION =
   (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST =10.140.100.13)(PORT = 1521))
   )
  (CONNECT_DATA =
   (SERVER = DEDICATED)
   (SERVICE_NAME = fsrenCAP)
   )
)

capdg =
  (DESCRIPTION =
   (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST =10.140.100.50)(PORT = 1521))
   )
  (CONNECT_DATA =
   (SERVER = DEDICATED)
   (SERVICE_NAME = fsrenCAP)
   )
)

--備庫listener.ora

SID_LIST_LISTENER=
  (SID_LIST=
     (SID_DESC=
       (SID_NAME=PLSExtProc)
       (ORACLE_HOME=/opt/app/oracle/product/11.2/db_2)
       (PROGRAM=extproc)
                )
     (SID_DESC=
       (GLOBAL_DBNAME=fsrenCAP)
       (ORACLE_HOME=/opt/app/oracle/product/11.2/db_2)
       (SID_NAME=fsrendg)
   )
)

LISTENER=
    (DESCRIPTION_LIST=
       (DESCRIPTION=
          (ADDRESS=(PROTOCOL=TCP)(HOST=10.140.100.50)(PORT=1521))
          (ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))
   )
)

tnsping  cap

tnsping capdg

3.啓動實例

[oracle@renCAPdg dbs]$ export ORACLE_SID=fsrendg
[oracle@renCAPdg dbs]$ sqlplus / as sysdba
SQL> startup pfile='/home/oracle/fsrenpfile.ora' nomount;

主庫執行復制數據


rman target sys/oracle@cap auxiliary sys/oracle@capdg
duplicate target database for standby from active database  nofilenamecheck dorecover;

 ----若之前有不完全恢復,則此次回覆是從上次恢復點進行恢復,需要指定從0級開始恢復

list incarnation;
incarnation 1;

然後再執行duplicate


----基於scn同步數據
參考文檔:Steps to perform for Rolling Forward a Physical Standby Database using RMAN Incremental Backup. (Doc ID 836986.1)
數據量大開啓塊跟蹤
alter database enable block change tracking using file '/raid5/KCARDPRD/rman_change_track.f';
查看是否生效
col status   format a8
col filename format a60
select status, filename from v$block_change_tracking;

--查看scn號

可以通過v$datafile_header查數據文件頭部最小scn確認需要怎麼恢復
目標端找文件頭最小scn號
set pagesize 2000
set linesize 200
col min_changescn for 999999999999999
select min(checkpoint_change#) min_changescn from v$datafile_header
where file# not in (select file# from v$datafile where enabled = 'READ ONLY');


   MIN_CHANGESCN
----------------
        12702406
        
rman target / log=/home/oracle/backup_20190501.log<<EOF
run
{configure controlfile autobackup on;
sql 'alter system switch logfile'; 
BACKUP INCREMENTAL FROM SCN  12702406  DATABASE FORMAT '/data/fsren_%d_%u.bak' tag 'FORSTANDBY';
}

備份完後複製到目標端應用
註冊備份信息,並且恢復
rman target /
CATALOG START WITH '/data/';
RECOVER DATABASE NOREDO;

從源端獲取最新的控制文件
BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT '/data/ForStandbyCTRL_20190501.bck';

目標端恢復控制文件
SHUTDOWN IMMEDIATE ;
STARTUP NOMOUNT;
RESTORE STANDBY CONTROLFILE FROM '/data/ForStandbyCTRL_20190501.bck';

alter database mount;

此時源端還留有目標端所需歸檔文件,可以開啓dg同步追歸檔


4.創建 standby redo(主備庫)

 

ALTER DATABASE ADD STANDBY LOGFILE ('/data/fsrenCAP/standredo01.log') SIZE 500M;
ALTER DATABASE ADD STANDBY LOGFILE ('/data/fsrenCAP/standredo03.log') SIZE 500M;
ALTER DATABASE ADD STANDBY LOGFILE ('/data/fsrenCAP/standredo02.log') SIZE 500M;

5.激活備庫--生成redolog
ALTER DATABASE ACTIVATE STANDBY DATABASE;

 alter database recover managed standby database disconnect from session;
 
 
6.主備切換
(主)
select open_mode,database_role,switchover_status from v$database;
OPEN_MODE            DATABASE_ROLE    SWITCHOVER_STATUS
-------------------- ---------------- --------------------
READ WRITE           PRIMARY          RESOLVABLE GAP

alter database commit to switchover to physical standby with session shutdown; 
 
shutdown  immediate
startup mount
--應用日誌
alter database recover managed standby database disconnect from session;

select open_mode,database_role,switchover_status from v$database;
 
(備)
recover managed standby database disconnect from session;
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;  
 
alter database open;


-------回切------
(主)
ALTER DATABASE COMMIT TO SWITCHOVER TOPHYSICAL STANDBY WITH SESSION SHUTDOWN;
shutdown immediate;
startup mount;
--應用日誌
alter database recover managed standby database disconnect from session;

(備)
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN

startup open;


select open_mode,database_role,switchover_status from v$database;

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