DataGuard-创建物理备库全程解析
本文主要记录了创建物理备库的完整过程,以便实践中参考.耐于机器配置,此实验实现的是在本机上建立两个数据库TEST和STD_ASSG,TEST是主库,STD_ASSG 是备库,最后实现主库发生日志切换后,全部应用于物理备库
--------------------------------------分割线 --------------------------------------
相关参考:
--------------------------------------分割线 --------------------------------------
一 创建物理备库需要的目录
[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