配置步骤:
一、开启强制日志
二、配置pri端传输参数
三、备份pri端数据库
四、拷贝文件到sty端
五、配置sty端传输参数
六、将sty端启动到mount状态并恢复数据
七、在pri端应用发送归档日志文件
八、在sty端开启强制redo应用
九、配置standby日志
十、在pri端启动强制日志应用
11gR2DG传输架构
图:
DBName |
Role |
DB_UNIQUE_NAME |
Oracle Net Service Name |
Woo |
Primary |
Pri |
PRI |
Physical standby |
Sty |
STY |
一、两节点分别输入如下命令开启强制日志模式:
- SQL> startup mount;
- SQL> alter database archivelog;
- SQL> alter database open;
- SQL> alter database force logging;
二、修改Pri端参数文件:
- SQL> alter system set db_unique_name =pri scope=spfile;
- SQL> alter system set log_archive_config= 'DG_CONFIG=(pri,sty)' scope=spfile;
- SQL>alter system set log_archive_dest_1= 'LOCATION=/DBBackup/Archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=pri' scope=spfile;
- SQL> alter system set log_archive_dest_2= 'SERVICE=sty LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=sty' scope=spfile;
- SQL> alter system setlog_archive_dest_state_2 = DEFER;
- alter system set fal_server=styscope=spfile;
- SQL> alter system set fal_client=priscope=spfile;
- SQL> alter system setstandby_file_management=AUTO scope=spfile;
三、在Pri端输入如下命令,创建standby控制文件
- SQL> alter database create standbycontrolfile as '/DBBackup/Phycal/stycontrol.ctl';
四、通过rman备份pri端数据库
- Rman>backup database format'/DBBackup/Phycal/full_db_%U';
- #copy file to standby
- 监听文件:listener.oratnsnames.ora
- 参数文件:initWoo.ora
- 密码文件:orapwWoo
- sty控制文件:stycontrol.ctl
- 全库备份文件:full_db_*
- 日志输出目录:$ORACLE_BASE/admin$ORACLE_BASE/diag
五、拷贝监听文件,参数文件,密码文件,sty端控制文件,rman备份文件,admin/目录,diag诊断目录,flash_recovery_area目录,归档目录 到sty端用于恢复及起库
- [oracle@pri ~]$ cd$ORACLE_HOME/network/admin --拷贝监听文件
- [oracle@pri admin]$ ls
- listener.ora samples shrept.lst tnsnames.ora
- [oracle@pri admin]$ scp *.orasty:$ORACLE_HOME/network/admin
- oracle@sty's password:
- listener.ora 100% 294 0.3KB/s 00:00
- tnsnames.ora 100% 669 0.7KB/s 00:00
- [oracle@pri admin]$ cd $ORACLE_HOME/dbs --拷贝密码文件及pfile参数文件
- [oracle@pri dbs]$ ls
- hc_DBUA0.dat hc_Woo.dat init.ora initWoo.ora lkPRI lkWOO orapwWoo snapcf_Woo.f spfileWoo.ora
- [oracle@pri dbs]$ scp initWoo.ora orapwWoosty:$ORACLE_HOME/dbs
- oracle@sty's password:
- initWoo.ora 100% 999 1.0KB/s 00:00
- orapwWoo 100% 1536 1.5KB/s 00:00
- [oracle@pri dbs]$ cd /DBBackup/Phycal/ --拷贝备份文件
- [oracle@pri Phycal]$ ls
- full_db_01o9j16h_1_1 full_db_02o9j17b_1_1 stycontrol.ctl
- [oracle@pri Phycal]$ scp full_db_0*stycontrol.ctl sty:/DBBackup/Phycal/
- oracle@sty's password:
- full_db_01o9j16h_1_1 100% 943MB 20.1MB/s 00:47
- full_db_02o9j17b_1_1 100% 9600KB 9.4MB/s 00:01
- stycontrol.ctl 100% 9520KB 9.3MB/s 00:00
- [oracle@pri ~]$ cd $ORACLE_BASE --拷贝admin/,diag/,flash_recovery_area三目录
- [oracle@pri DBSoft]$ ls
- admin cfgtoollogs checkpoints diag flash_recovery_area oraInventory Product
- [oracle@pri DBSoft]$ scp -r admin/ diag/admin/ flash_recovery_area/ sty:$ORACLE_BASE
六、修改sty端pfile参数文件,添加和修改如下内容
- vi /DBSoft/Product/11.2.0/db_1/dbs/initWoo.ora
- *.db_unique_name=sty
- *.log_archive_config='DG_CONFIG=(pri,dg)'
- *.log_archive_dest_1='LOCATION=/DBBackup/ArchiveVALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=sty'
- *.log_archive_dest_2='SERVICE=pri LGWR SYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=pri'
- *.fal_server=pri
- *.fal_client=sty
- *.standby_file_management=AUTO
- #*.db_file_name_convert='pri','pri'
- #*.log_file_name_convert='pri','pri'
- *.control_files='/DBBackup/Phycal/control01.ctl'
七、启动sty端数据库到mount状态,并恢复pri端数据库到sty端
- SQL> startup mountpfile='/DBSoft/Product/11.2.0/db_1/dbs/initWoo.ora';
- ORACLE instance started.
- Total System Global Area 839282688 bytes
- Fixed Size 2217992 bytes
- Variable Size 507512824 bytes
- Database Buffers 327155712 bytes
- Redo Buffers 2396160 bytes
- Database mounted.
- SQL> exit
- [oracle@sty Phycal]$ export ORACLE_SID=Woo
- [oracle@sty Phycal]$ rman target / --进入rman开始恢复数据库
- Recovery Manager: Release 11.2.0.1.0 -Production on Tue May 14 03:22:47 2013
- Copyright (c) 1982, 2009, Oracle and/or itsaffiliates. All rights reserved.
- connected to target database: WOO(DBID=4154863782, not open)
- RMAN> catalog start with'/DBBackup/Phycal/';
- Starting implicit crosscheck backup at14-MAY-13
- using target database control file insteadof recovery catalog
- allocated channel: ORA_DISK_1
- channel ORA_DISK_1: SID=25 device type=DISK
- Finished implicit crosscheck backup at14-MAY-13
- Starting implicit crosscheck copy at14-MAY-13
- using channel ORA_DISK_1
- Finished implicit crosscheck copy at14-MAY-13
- searching for all files in the recoveryarea
- cataloging files...
- no files cataloged
- searching for all files that match thepattern /DBBackup/Phycal/
- List of Files Unknown to the Database
- =====================================
- File Name:/DBBackup/Phycal/full_db_01o9j16h_1_1
- File Name:/DBBackup/Phycal/full_db_02o9j17b_1_1
- Do you really want to catalog the abovefiles (enter YES or NO)? yes
- cataloging files...
- cataloging done
- List of Cataloged Files
- =======================
- File Name:/DBBackup/Phycal/full_db_01o9j16h_1_1
- File Name:/DBBackup/Phycal/full_db_02o9j17b_1_1
- RMAN> restore database;
- Starting restore at 14-MAY-13
- using target database control file insteadof recovery catalog
- allocated channel: ORA_DISK_1
- channel ORA_DISK_1: SID=25 device type=DISK
- channel ORA_DISK_1: starting datafilebackup set restore
- channel ORA_DISK_1: specifying datafile(s)to restore from backup set
- channel ORA_DISK_1: restoring datafile00001 to /DBData/Woo/Woo/system01.dbf
- channel ORA_DISK_1: restoring datafile00002 to /DBData/Woo/Woo/sysaux01.dbf
- channel ORA_DISK_1: restoring datafile00003 to /DBData/Woo/Woo/undotbs01.dbf
- channel ORA_DISK_1: restoring datafile00004 to /DBData/Woo/Woo/users01.dbf
- channel ORA_DISK_1: reading from backuppiece /DBBackup/Phycal/full_db_01o9j16h_1_1
- channel ORA_DISK_1: piecehandle=/DBBackup/Phycal/full_db_01o9j16h_1_1 tag=TAG20130514T025617
- channel ORA_DISK_1: restored backup piece 1
- channel ORA_DISK_1: restore complete,elapsed time: 00:00:13
- Finished restore at 14-MAY-13
- RMAN> ---至此恢复工作已经完成
八、在pri端应用接受归档日志文件
- SQL> ALTER SYSTEM SETLOG_ARCHIVE_DEST_STATE_2=ENABLE;
- System altered.
九、再sty上启动日志应用
- SQL> alter database recover managedstandby database disconnect from session;
- Database altered.
十、在sty端配置standby 日志,并使其进入active状态生效,通常需要重启一遍备库:
- SQL> alter database add standby logfile
- group 4 ('/DBData/Woo/Woo/styredo04.log')size 50m,
- group 5 ('/DBData/Woo/Woo/styredo05.log')size 50m,
- group 6 ('/DBData/Woo/Woo/styredo06.log')size 50m,
- group 7 ('/DBData/Woo/Woo/styredo07.log')size 50m;
- SQL> SELECTGROUP#,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
- 7 0 0 YES UNASSIGNED
- SQL> shutdown immediate
- Database closed.
- Database dismounted.
- ORACLE instance shut down.
- SQL> startup
- ORACLE instance started.
- Total System Global Area 839282688 bytes
- Fixed Size 2217992 bytes
- Variable Size 507512824 bytes
- Database Buffers 327155712 bytes
- Redo Buffers 2396160 bytes
- Database mounted.
- Database opened.
- SQL> SELECTGROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG;
- GROUP# THREAD# SEQUENCE# ARC STATUS
- ---------- ---------- ---------- -------------
- 4 1 11 YES ACTIVE
- 5 1 0 NO UNASSIGNED
- 6 0 0 YES UNASSIGNED
- 7 0 0 YES UNASSIGNED
- SQL>
十一、在pri端启动redo应用
- SQL> recover managed standby database usingcurrent logfile disconnect from session;
查看DG数据保护模式:
- SQL> select protection_mode,protection_level from v$database;
- PROTECTION_MODE PROTECTION_LEVEL
- -------------------- --------------------
- MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE
附录:
十二、需修改添加的参数介绍:
角色 |
参数名称 |
介绍 |
Pri |
DB_NAME |
数据库名称,primary端和standby端相同 |
指定唯一名称,区别pri 端和 sty端 |
||
LOG_ARCHIVE_CONFIG |
指定DG的全局日志配置,包含所有数据库的名称,及归档路径 |
|
CONTROL_FILES |
控制文件路径及名称 |
|
LOG_ARCHIVE_DEST_n |
指定主备库的归档路径 |
|
LOG_ARCHIVE_DEST_STATE_n |
配置是否允许通过redo进行日志传输及路径 |
|
REMOTE_LOGIN_PASSWORDFILE |
配置远程登陆模式,是否独享还是共享 |
|
LOG_ARCHIVE_FORMAT |
配置归档日志文件存储格式规范 |
|
LOG_ARCHIVE_MAX_PROCESS=integer |
配置归档进程数量,默认为4 |
|
FAL_SERVER |
||
DB_FILE_NAME_CONVERT |
||
LOG_FILE_NAME,_CONVERT |
配置数据库redo日志文件转换,用在主备库redo日志文件路径不一致 |
|
STANDBY_FILE_MANAGEMENT |
配置备库是否同步主库的表空间添加或数据文件添加。 |
|
sty |
DB_UNIQUE_NAME |
指定唯一名称,区别pri 端和 sty端 |
CONTROL_FILES |
控制文件路径及名称 |
|
DB_FILE_NAME,_CONVERT |
配置数据库数据文件转换,用在主备库数据文件路径不一致 |
|
LOG_FILE_NAME_CONVERT |
配置数据库数据文件转换,用在主备库数据文件路径不一致 |
|
LOG_ARCHIVE_DEST_n |
指定主备库的归档路径 |
|
FAL_SERVERS |
配置服务器角色 |
十三、监听信息:
- listener.ora
- [oracle@sty admin]$ cat listener.ora
- # listener.ora Network Configuration File:/DBSoft/Product/11.2.0/db_1/network/admin/listener.ora
- # Generated by Oracle configuration tools.
- SID_LIST_LISTENER =
- (SID_LIST =
- (SID_DESC =
- (SID_NAME = PLSExtProc)
- (ORACLE_HOME = /DBSoft/Product/11.2.0/db_1)
- (PROGRAM = extproc)
- )
- (SID_DESC =
- (SID_NAME = Woo )
- (ORACLE_HOME = /DBSoft/Product/11.2.0/db_1)
- )
- )
- -----------------------------------------------------------------------------------------------------------------------------------------------------
- [oracle@sty admin]$cat tnsname.ora
- # tnsnames.ora Network Configuration File:/DBSoft/Product/11.2.0/db_1/network/admin/tnsnames.ora
- # Generated by Oracle configuration tools.
- STY =
- (DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.102)(PORT = 1521))
- )
- (CONNECT_DATA =
- (SERVICE_NAME = woo)
- )
- )
- PRI =
- (DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.101)(PORT = 1521))
- )
- (CONNECT_DATA =
- (SERVICE_NAME = woo)
- )
- )