怎么搭建dataguard
本篇内容主要讲解“怎么搭建dataguard”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么搭建dataguard”吧!
此方案适合于生产运营中的数据库,DB服务器停机时间非常苛刻,或无法停机维护的情况下,如支付,电商等业务,可通过该方案在线部署Dataguard,对客户系统无任何影响。
一、基础信息
操作系统:windows2008
数据库:11.2.0.3
配置信息:
二、准备工作
按照要求创建相应的主数据库和备用数据库,并删除备用数据库的数据文件、控制文件,两个数据库的所有路径需要一致;
三、搭建数据库
主库的操作:
1.确认主库参数
SQL>selectname,open_mode,database_role,log_mode,force_loggingfromv$database;NAMEOPEN_MODEDATABASE_ROLELOG_MODEFOR------------------------------------------------------------ORCLREADWRITEPRIMARYARCHIVELOGYESSQL>showparameternameNAMETYPEVALUE-----------------------------------------------------------------------------db_file_name_convertstringdb_namestringorcldb_unique_namestringorclglobal_namesbooleanFALSEinstance_namestringorcllock_name_spacestringlog_file_name_convertstringprocessor_group_namestringservice_namesstringorcl
2.设置数据库的归档模式
SQL>archiveloglist;数据库日志模式存档模式自动存档启用存档终点E:\u01\fast_recovery_area\orcl最早的联机日志序列833下一个存档日志序列835当前日志序列835
归档模式的设置:
1、shutdownabort;2、alterdatabasemount;3、alterdatabasearchivelog;4、alterdatabaseopen;3.开启forceloggingSQL>alterdatabaseforcelogging;SQL>selectname,DB_UNIQUE_NAME,database_role,log_mode,force_loggingfromv$database;NAMEDB_UNIQUE_NAMEDATABASE_ROLELOG_MODEFOR----------------------------------------------------------------------ORCLorclPRIMARYARCHIVELOGYES
4.主库配置监听
SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(SID_NAME=CLRExtProc)(ORACLE_HOME=E:\u01\product\11.2.0\dbhome_1)(PROGRAM=extproc)(ENVS="EXTPROC_DLLS=ONLY:E:\u01\product\11.2.0\dbhome_1\bin\oraclr11.dll")))LISTENER=(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=WIN-QS00S09CJ12)(PORT=1521))(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))))ADR_BASE_LISTENER=E:\u01
5.配置主库的TNSNAMES.ORA并和密码文件一起传到备库
#tnsnames.oraNetworkConfigurationFile:E:\u01\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora#GeneratedbyOracleconfigurationtools.ORCL=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SID=ORCL)(UR=A)))ORCLBAK=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.14.15)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orclbak)(UR=A)--这里记得加这个,否无法连接nomount状态下备库))
传输监听文件到备库:
6.修改主库pfile参数
--前提是采用spfile启动,并且业务不能停,可用下列命令动态设置:
ALTERSYSTEMSETLOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orclbak)'ALTERSYSTEMSETLOG_ARCHIVE_DEST_1='LOCATION=E:\u01\fast_recovery_area\orclVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=orcl'ALTERSYSTEMSETLOG_ARCHIVE_DEST_2='SERVICE=orclbakLGWRASYNCaffirmVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=orclbak'ALTERSYSTEMSETLOG_ARCHIVE_DEST_STATE_1='ENABLE';ALTERSYSTEMSETLOG_ARCHIVE_DEST_STATE_2='DEFER';--这里先设置关闭ALTERSYSTEMSETSTANDBY_FILE_MANAGEMENT='AUTO';ALTERSYSTEMSETFAL_SERVER=orclbak;ALTERSYSTEMSETFAL_CLIENT=orcl;下面是可选,如果路相同,忽略下面操作:ALTERSYSTEMSETDB_FILE_NAME_CONVERT='E:\u01\oradata\orcl','E:\u01\oradata\orcl'scope=spfile;ALTERSYSTEMSETLOG_FILE_NAME_CONVERT='E:\u01\oradata\orcl','E:\u01\oradata\orcl'scope=spfile;
7.全备主库,并传输备份集到备库的相同位置
run{allocatechannelc0devicetypedisk;allocatechannelc1devicetypedisk;CONFIGURECONTROLFILEAUTOBACKUPON;CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO'e:\orabak\rman/%F';backupdatabaseformat'e:\orabak\ora11g_full_db_%d_%T_%u.bak';BACKUPARCHIVELOGALLFORMAT'e:\orabak\ora11g_arc_%s_%p_%t.bak';}
8.修改备库参数并将备库启动至nomount状态(参考主库进行,主要是service_name要反过来)
DB_UNIQUE_NAME=orclbakLOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orclbak)'LOG_ARCHIVE_DEST_1='LOCATION=E:\u01\fast_recovery_area\orclVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=orclbak'LOG_ARCHIVE_DEST_2='SERVICE=orclLGWRASYNCaffirmVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=orcl'LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLELOG_ARCHIVE_FORMAT=%t_%s_%r.arcFAL_SERVER=orclFAL_CLIENT=orclbakSTANDBY_FILE_MANAGEMENT=AUTO
9.启动备库监听
#listener.oraNetworkConfigurationFile:E:\u01\product\11.2.0\dbhome_1\network\admin\listener.ora#GeneratedbyOracleconfigurationtools.SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(SID_NAME=CLRExtProc)(ORACLE_HOME=E:\u01\product\11.2.0\dbhome_1)(PROGRAM=extproc)(ENVS="EXTPROC_DLLS=ONLY:E:\u01\product\11.2.0\dbhome_1\bin\oraclr11.dll")))LISTENER=(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=WIN-4GH7UKQEEOC)(PORT=1521))(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))))SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=orcl)(ORACLE_HOME=E:\u01\product\11.2.0\dbhome_1)(SID_NAME=orcl)))ADR_BASE_LISTENER=E:\u01
10.进行备库的恢复
C:\Users\Administrator>rmantarget/恢复管理器:Release11.2.0.3.0-Productionon星期五2月2617:35:522016Copyright(c)1982,2011,Oracleand/oritsaffiliates.Allrightsreserved.已连接到目标数据库:ORCL(DBID=1389423916)RMAN>connectauxiliarysys/*******@orclbak已连接到辅助数据库:ORCL(未装载)
开始复制数据库:
RMAN>duplicatetargetdatabaseforstandbynofilenamecheck;启动DuplicateDb于26-2月-16使用目标数据库控制文件替代恢复目录分配的通道:ORA_AUX_DISK_1通道ORA_AUX_DISK_1:SID=2091设备类型=DISK内存脚本的内容:{restoreclonestandbycontrolfile;}正在执行内存脚本启动restore于26-2月-16使用通道ORA_AUX_DISK_1通道ORA_AUX_DISK_1:正在开始还原数据文件备份集通道ORA_AUX_DISK_1:正在还原控制文件通道ORA_AUX_DISK_1:正在读取备份片段D:\ORABAK\C-1389423916-20160226-00通道ORA_AUX_DISK_1:段句柄=D:\ORABAK\C-1389423916-20160226-00标记=TAG20160226T140701通道ORA_AUX_DISK_1:已还原备份片段1通道ORA_AUX_DISK_1:还原完成,用时:00:00:04输出文件名=E:\U01\ORADATA\ORCL\CONTROL01.CTL完成restore于26-2月-16内存脚本的内容:{sqlclone'alterdatabasemountstandbydatabase';}正在执行内存脚本sql语句:alterdatabasemountstandbydatabase内存脚本的内容:{setnewnamefortempfile1to"E:\U01\ORADATA\ORCL\TEMP01.DBF";switchclonetempfileall;setnewnamefordatafile1to"E:\U01\ORADATA\ORCL\SYSTEM01.DBF";setnewnamefordatafile2to"E:\U01\ORADATA\ORCL\SYSAUX01.DBF";setnewnamefordatafile3to"E:\U01\ORADATA\ORCL\UNDOTBS01.DBF";setnewnamefordatafile4to"E:\U01\ORADATA\ORCL\USERS01.DBF";setnewnamefordatafile5to"E:\U01\ORADATA\ORCL\GIS01.DBF";setnewnamefordatafile6to"E:\U01\ORADATA\ORCL\GIS02.DBF";setnewnamefordatafile7to"E:\U01\ORADATA\ORCL\GIS03.DBF";setnewnamefordatafile8to"E:\U01\ORADATA\ORCL\GIS04.DBF";setnewnamefordatafile9to"E:\U01\ORADATA\ORCL\GIS05.DBF";setnewnamefordatafile10to"E:\U01\ORADATA\ORCL\GIS06.DBF";setnewnamefordatafile11to"E:\U01\ORADATA\ORCL\GIS07.DBF";setnewnamefordatafile12to"E:\U01\ORADATA\ORCL\GIS08.DBF";setnewnamefordatafile13to"E:\U01\ORADATA\ORCL\GIS09.DBF";setnewnamefordatafile14to"E:\U01\ORADATA\ORCL\GIS10.DBF";restoreclonedatabase;}正在执行内存脚本正在执行命令:SETNEWNAME临时文件1在控制文件中已重命名为E:\U01\ORADATA\ORCL\TEMP01.DBF正在执行命令:SETNEWNAME正在执行命令:SETNEWNAME正在执行命令:SETNEWNAME正在执行命令:SETNEWNAME正在执行命令:SETNEWNAME正在执行命令:SETNEWNAME正在执行命令:SETNEWNAME正在执行命令:SETNEWNAME正在执行命令:SETNEWNAME正在执行命令:SETNEWNAME正在执行命令:SETNEWNAME正在执行命令:SETNEWNAME正在执行命令:SETNEWNAME正在执行命令:SETNEWNAME启动restore于26-2月-16使用通道ORA_AUX_DISK_1通道ORA_AUX_DISK_1:正在开始还原数据文件备份集通道ORA_AUX_DISK_1:正在指定从备份集还原的数据文件通道ORA_AUX_DISK_1:将数据文件00001还原到E:\U01\ORADATA\ORCL\SYSTEM01.DBF通道ORA_AUX_DISK_1:将数据文件00002还原到E:\U01\ORADATA\ORCL\SYSAUX01.DBF通道ORA_AUX_DISK_1:将数据文件00006还原到E:\U01\ORADATA\ORCL\GIS02.DBF通道ORA_AUX_DISK_1:将数据文件00008还原到E:\U01\ORADATA\ORCL\GIS04.DBF通道ORA_AUX_DISK_1:将数据文件00010还原到E:\U01\ORADATA\ORCL\GIS06.DBF通道ORA_AUX_DISK_1:将数据文件00012还原到E:\U01\ORADATA\ORCL\GIS08.DBF通道ORA_AUX_DISK_1:将数据文件00014还原到E:\U01\ORADATA\ORCL\GIS10.DBF通道ORA_AUX_DISK_1:正在读取备份片段D:\ORABAK\ORCL_FULL_DB_ORCL_20160226_39QUSTI8.BAK通道ORA_AUX_DISK_1:段句柄=D:\ORABAK\ORCL_FULL_DB_ORCL_20160226_39QUSTI8.BAK标记=TAG20160226T105816通道ORA_AUX_DISK_1:已还原备份片段1通道ORA_AUX_DISK_1:还原完成,用时:02:08:38通道ORA_AUX_DISK_1:正在开始还原数据文件备份集通道ORA_AUX_DISK_1:正在指定从备份集还原的数据文件通道ORA_AUX_DISK_1:将数据文件00003还原到E:\U01\ORADATA\ORCL\UNDOTBS01.DBF通道ORA_AUX_DISK_1:将数据文件00004还原到E:\U01\ORADATA\ORCL\USERS01.DBF通道ORA_AUX_DISK_1:将数据文件00005还原到E:\U01\ORADATA\ORCL\GIS01.DBF通道ORA_AUX_DISK_1:将数据文件00007还原到E:\U01\ORADATA\ORCL\GIS03.DBF通道ORA_AUX_DISK_1:将数据文件00009还原到E:\U01\ORADATA\ORCL\GIS05.DBF通道ORA_AUX_DISK_1:将数据文件00011还原到E:\U01\ORADATA\ORCL\GIS07.DBF通道ORA_AUX_DISK_1:将数据文件00013还原到E:\U01\ORADATA\ORCL\GIS09.DBF通道ORA_AUX_DISK_1:正在读取备份片段D:\ORABAK\ORCL_FULL_DB_ORCL_20160226_38QUSTI8.BAK通道ORA_AUX_DISK_1:段句柄=D:\ORABAK\ORCL_FULL_DB_ORCL_20160226_38QUSTI8.BAK标记=TAG20160226T105816通道ORA_AUX_DISK_1:已还原备份片段1通道ORA_AUX_DISK_1:还原完成,用时:02:36:38完成restore于26-2月-16内存脚本的内容:{switchclonedatafileall;}正在执行内存脚本数据文件1已转换成数据文件副本输入数据文件副本RECID=2STAMP=904861333文件名=E:\U01\ORADATA\ORCL\SYSTEM01.DBF数据文件2已转换成数据文件副本输入数据文件副本RECID=3STAMP=904861334文件名=E:\U01\ORADATA\ORCL\SYSAUX01.DBF数据文件3已转换成数据文件副本输入数据文件副本RECID=4STAMP=904861334文件名=E:\U01\ORADATA\ORCL\UNDOTBS01.DBF数据文件4已转换成数据文件副本输入数据文件副本RECID=5STAMP=904861334文件名=E:\U01\ORADATA\ORCL\USERS01.DBF数据文件5已转换成数据文件副本输入数据文件副本RECID=6STAMP=904861334文件名=E:\U01\ORADATA\ORCL\GIS01.DBF数据文件6已转换成数据文件副本输入数据文件副本RECID=7STAMP=904861334文件名=E:\U01\ORADATA\ORCL\GIS02.DBF数据文件7已转换成数据文件副本输入数据文件副本RECID=8STAMP=904861334文件名=E:\U01\ORADATA\ORCL\GIS03.DBF数据文件8已转换成数据文件副本输入数据文件副本RECID=9STAMP=904861334文件名=E:\U01\ORADATA\ORCL\GIS04.DBF数据文件9已转换成数据文件副本输入数据文件副本RECID=10STAMP=904861335文件名=E:\U01\ORADATA\ORCL\GIS05.DBF数据文件10已转换成数据文件副本输入数据文件副本RECID=11STAMP=904861335文件名=E:\U01\ORADATA\ORCL\GIS06.DBF数据文件11已转换成数据文件副本输入数据文件副本RECID=12STAMP=904861335文件名=E:\U01\ORADATA\ORCL\GIS07.DBF数据文件12已转换成数据文件副本输入数据文件副本RECID=13STAMP=904861335文件名=E:\U01\ORADATA\ORCL\GIS08.DBF数据文件13已转换成数据文件副本输入数据文件副本RECID=14STAMP=904861335文件名=E:\U01\ORADATA\ORCL\GIS09.DBF数据文件14已转换成数据文件副本输入数据文件副本RECID=15STAMP=904861335文件名=E:\U01\ORADATA\ORCL\GIS10.DBF完成DuplicateDb于26-2月-16
12.将主库的LOG_ARCHIVE_DEST_STATE_2设置为ENABLE
ALTERSYSTEMSETLOG_ARCHIVE_DEST_STATE_2='ENABLE';
13.添加standby redo log--如本身主库已建立standby redo log,此步骤可省去
SQL>selectmemberfromv$logfile;
#主库增加STANDBY LOGFILE
ALTERDATABASEADDSTANDBYLOGFILEgroup4('E:\u01\oradata\standby_log\slog1.rdo')SIZE200M;ALTERDATABASEADDSTANDBYLOGFILEgroup5('E:\u01\oradata\standby_log\slog2.rdo')SIZE200M;ALTERDATABASEADDSTANDBYLOGFILEgroup6('E:\u01\oradata\standby_log\slog3.rdo')SIZE200M;ALTERDATABASEADDSTANDBYLOGFILEgroup7('E:\u01\oradata\standby_log\slog4.rdo')SIZE200M;
#备库增加STANDBY LOGFILE
SQL> select member from v$logfile;
ALTERDATABASEADDSTANDBYLOGFILEgroup4('E:\u01\oradata\standby_log\slog1.rdo')SIZE200M;ALTERDATABASEADDSTANDBYLOGFILEgroup5('E:\u01\oradata\standby_log\slog2.rdo')SIZE200M;ALTERDATABASEADDSTANDBYLOGFILEgroup6('E:\u01\oradata\standby_log\slog3.rdo')SIZE200M;ALTERDATABASEADDSTANDBYLOGFILEgroup7('E:\u01\oradata\standby_log\slog4.rdo')SIZE200M;
14.最后在备库开启active dataguard
SQL>ALTERDATABASERECOVERMANAGEDSTANDBYDATABASEUSINGCURRENTLOGFILEDISCONNECTFROMSESSION;SQL>ALTERDATABASERECOVERMANAGEDSTANDBYDATABASECANCEL;SQL>ALTERDATABASEOPEN;SQL>ALTERDATABASERECOVERMANAGEDSTANDBYDATABASEUSINGCURRENTLOGFILEDISCONNECTFROMSESSION;
到此,相信大家对“怎么搭建dataguard”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。