DataGuard-创建物理备库全程解析


本文主要记录了创建物理备库的完整过程,以便实践中参考.耐于机器配置,此实验实现的是在本机上建立两个数据库TEST和STD_ASSG,TEST是主库,STD_ASSG 是备库,最后实现主库发生日志切换后,全部应用于物理备库

--------------------------------------分割线 --------------------------------------

 

相关参考:

Oracle Data Guard 重要配置参数

基于同一主机配置 Oracle 11g Data Guard

探索Oracle之11g DataGuard

Oracle Data Guard (RAC+DG) 归档删除策略及脚本

Oracle Data Guard 的角色转换

Oracle Data Guard的日志FAL gap问题

Oracle 11g Data Guard Error 16143 Heartbeat failed to connect to standby 处理方法

--------------------------------------分割线 --------------------------------------

一 创建物理备库需要的目录
 [oracle@dbsv admin]$ cd std_assg/
 [oracle@dbsv std_assg]$ ls
 [oracle@dbsv std_assg]$ mkdir arch
 [oracle@dbsv std_assg]$ mkdir adump
 [oracle@dbsv std_assg]$ mkdir bdump
 [oracle@dbsv std_assg]$ mkdir cdump
 [oracle@dbsv std_assg]$ mkdir udump
 [oracle@dbsv std_assg]$ mkdir flash
 [oracle@dbsv std_assg]$ cd $ORACLE_BASE/oradata
 [oracle@dbsv oradata]$ mkdir STD_ASSG
 二创建sys用户需要的密码文件
 [oracle@dbsv dbs]$ ls orapw*
 orapwdBAKDB.pwd  orapwdorcl  orapworcl  orapwstdby  orapwTEST
 [oracle@dbsv dbs]$ cp orapwTEST orapwSTD_ASSG
 三创建备库的日志文件
 1 启动已有主库
 [oracle@dbsv ~]$ export ORACLE_SID=TEST
 [oracle@dbsv ~]$ sqlplus / as sysdba
 2查看备库日志情况
 SQL> SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG;
 GROUP#    THREAD#  SEQUENCE# ARC STATUS
 ---------- ---------- ---------- --- ----------
          4          0          0 YES UNASSIGNED
          5          0          0 YES UNASSIGNED
          6          0          0 YES UNASSIGNED
 3 建立备库日志
 SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 7 '/u01/app/oracle/oradata/STD_ASSG/std.redo' SIZE 50M;
 
Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 8 '/u01/app/oracle/oradata/STD_ASSG/std2.redo' SIZE 50M;
 
Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 9 '/u01/app/oracle/oradata/STD_ASSG/std3.redo' SIZE 50M;
 
Database altered.

四修改初始化参数,配置物理备库需要的信息
 vi initTEST.ora
 # for primary role
 DB_NAME=TEST
 DB_UNIQUE_NAME=TEST
 LOG_ARCHIVE_CONFIG='DG_CONFIG=(TEST,STD_ASSG)'
 #CONTROL_FILES='/u01/app/oracle/oradata/TEST/control1.ctl', '/u01/app/oracle/oradata/TEST/control2.ctl', '/u01/app/oracle/oradata/TEST/control3.ctl'
 LOG_ARCHIVE_DEST_1=
  'LOCATION=/u01/app/oracle/admin/TEST/arch/
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
  DB_UNIQUE_NAME=TEST'
 LOG_ARCHIVE_DEST_2=
  'SERVICE=STD_ASSG LGWR ASYNC
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
  DB_UNIQUE_NAME=STD_ASSG'
 LOG_ARCHIVE_DEST_STATE_1=ENABLE
 LOG_ARCHIVE_DEST_STATE_2=ENABLE
 REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
 LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
 LOG_ARCHIVE_MAX_PROCESSES=30

# for standby role
 FAL_SERVER=STD_ASSG
 FAL_CLIENT=TEST
 DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/STD_ASSG/','/u01/app/oracle/oradata/TEST/'
 LOG_FILE_NAME_CONVERT=
  '/u01/app/oracle/oradata/STD_ASSG/','/u01/app/oracle/oradata/TEST/'
 STANDBY_FILE_MANAGEMENT=AUTO

复制并修改主库参数文件,改为备库可用参数文件
 1,$ s/TEST/STD_ASSG/g
 # for primary role
 DB_NAME=TEST
 DB_UNIQUE_NAME=STD_ASSG
 LOG_ARCHIVE_CONFIG='DG_CONFIG=(STD_ASSG,TEST)'
 #CONTROL_FILES='/u01/app/oracle/oradata/STD_ASSG/control1.ctl', '/u01/app/oracle/oradata/STD_ASSG/control2.ctl', '/u01/app/oracle/oradata/STD_ASSG/control3.ctl'
 LOG_ARCHIVE_DEST_1=
  'LOCATION=/u01/app/oracle/admin/STD_ASSG/arch/
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
  DB_UNIQUE_NAME=STD_ASSG'
 LOG_ARCHIVE_DEST_2=
  'SERVICE=TEST LGWR ASYNC
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
  DB_UNIQUE_NAME=TEST'
 LOG_ARCHIVE_DEST_STATE_1=ENABLE
 LOG_ARCHIVE_DEST_STATE_2=ENABLE
 REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
 LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
 LOG_ARCHIVE_MAX_PROCESSES=30

# for standby role
 FAL_SERVER=TEST
 FAL_CLIENT=STD_ASSG
 DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/TEST/','/u01/app/oracle/oradata/STD_ASSG/'
 LOG_FILE_NAME_CONVERT=
  '/u01/app/oracle/oradata/TEST/','/u01/app/oracle/oradata/STD_ASSG/'
 STANDBY_FILE_MANAGEMENT=AUTO

更多详情见请继续阅读下一页的精彩内容:

  • 1
  • 2
  • 下一页

相关内容