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;

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