1、-1 . 最 简 单 的 11gActive DataGuardADG 搭 建 配 置 过 程 项 目 步 骤1 . 一 环 境 介 绍2 . 二 11gADG 部 署1 . pri 端 和 sty端 配 置 静 态 监 听2 . 修 改 primary端 初 始 化 参 数 文 件3 . 在 primary端 pfile 参 数 文 件 和 密 码 文 件 并 且 拷 贝 到 standby段 相 应 位 置4 . 修 改 standby 端 的 监 听 文 件 及 初 始 化 参 数 文 件5 . 在 primary端 通 过 Rman Duplicate 创 建 备 库 在 db01 上
2、 执 行 如 下 命 令6 . 在 primary 和 standby端 添 加 standby日 志7 .在 standby 端 开 启 实 时 日 志 应 用3 . 三 开 始 测 试 ADG1 . 执 行 日 志 切 换 测 试 在 pri 端 切 换 归 档 在 节 点 二 上 检 查 是 否 也 发 生 了 切 换2 . 查 看 standby 启 动 的 DG 进 程3 . 查 看 数 据 库 的 保 护 模 式4 . 查 看 DG 的 日 志 信 息5 . Open Read Only standby 数 据 库 并 且 开 启 实 时 日 志 应 用6 . 解 锁 scott
3、用 户 添 加 数 据 验 证 数 据 是 否 能 同 步4 . 四 ADG 三 种 模 式 切 换 及 介 绍1 .ADG 有 三 种 PROTECTIONAVAILABILITYPERFORMANCE 模 式 具 体 参 考 探 索 Oracle11gR2 之 DataGuard_03 三 种 保 护 模 式5 . 五 切 换 测 试1 . ADG 做 switchover 切 换 测 试2 . ADG 做 fail over 切 换 测 试最 简 单 的 11g Active DataGuard(ADG)搭 建 配 置 过 程 ( 项 目 步 骤 )一 、 环 境 介 绍 :我 在 db
4、01 和 db02 两 台 Linux 虚 拟 机 上 首 先 分 别 安 装 了 一 套 数 据 库 软 件 , 在 db01 主 机 上 创 建 了 名 为 woo 的 数 据 库 ; 我 们 这 次 的 实 验 是 要 搭 建 了 一 套 Oracle 11gActive DataGuard; 目 的 是 为 了 实 现 数 据 库 同 步 的 功 能 , 并 且 了 解 Oracle 11g DG 的 基 本 功 能 。db01:192.168.1.50db02:192.168.1.51二 、 11g ADG部 署 :1、 pri端 和 sty端 配 置 静 态 监 听python v
5、iew plain copy print?1 .oraclestyadmin$catlistener.ora2 .#listener.oraNetworkConfigurationFile:/DBSoft/oracle/product/11.2.4/dbhome_1/network/admin/listener.ora3 .#GeneratedbyOracleconfigurationtools.4 .5 .SID_LIST_LISTENER=6 .(SID_LIST=7 .(SID_DESC=8 .(SID_NAME=PLSExtProc)9 .(ORACLE_HOME=/DBSoft/or
6、acle/product/11.2.4/dbhome_1)1 0 .(PROGRAM=extproc)1 1 .)1 2 .(SID_DESC=1 3 .(SID_NAME=Woo)1 4 .(ORACLE_HOME=/DBSoft/oracle/product/11.2.4/dbhome_1)1 5 .)1 6 .)1 7 .1 8 .oraclestyadmin$cattnsname.ora1 9 .#tnsnames.oraNetworkConfigurationFile:/DBSoft/oracle/product/11.2.4/dbhome_1/network/admin/tnsna
7、mes.ora2 0 .#GeneratedbyOracleconfigurationtools.2 1 .2 2 .STY=2 3 .(DESCRIPTION=2 4 .(ADDRESS_LIST=2 5 .(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.51)(PORT=1521)2 6 .)2 7 .(CONNECT_DATA=2 8 .(SERVICE_NAME=woo)2 9 .)3 0 .)3 1 .3 2 .PRI=3 3 .(DESCRIPTION=3 4 .(ADDRESS_LIST=3 5 .(ADDRESS=(PROTOCOL=TCP)(HO
8、ST=192.168.1.50)(PORT=1521)3 6 .)3 7 .(CONNECT_DATA=3 8 .(SERVICE_NAME=woo)3 9 .)4 0 .)2、 修 改 primary端 初 始 化 参 数 文 件sql view plain copy print?1 .startupmount;2 .alterdatabasearchivelog;3 .alterdatabaseforcelogging;4 .alterdatabaseopen;5 .altersystemsetlog_archive_config=DG_CONFIG=(pri,sty)scope=spfi
9、le;6 .altersystemsetlog_archive_dest_1=LOCATION=/DBBackup/ArchiveVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=priscope=spfile;7 .altersystemsetlog_archive_dest_2=SERVICE=styLGWRSYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=styscope=spfile;8 .altersystemsetlog_archive_dest_state_1=EN
10、ABLE;9 .altersystemsetlog_archive_dest_state_2=ENABLE;1 0 .altersystemsetfal_server=styscope=spfile;1 1 .altersystemsetfal_client=priscope=spfile;1 2 .altersystemsetstandby_file_management=AUTOscope=spfile;3、 在 primary端 pfile参 数 文 件 和 密 码 文 件 , 并 且 拷 贝 到 standby段 相 应 位 置python view plain copy print?
11、1 .SQLcreatepfilefromspfile;2 .3 .Filecreated.4 .5 .oracledb01dbs$scpinitwoo.oraorapwwoodb02:/DBSoft/oracle/product/11.2.4/dbhome_1/dbs6 .oracle192.168.1.51spassword:7 .initwoo.ora100%12601.2KB/s00:008 .orapwwoo100%15361.5KB/s00:009 .1 0 .oracledb01oracle$scp-radmin/diag/fast_recovery_area/oradata/1
12、92.168.1.51:$ORACLE_BASE1 1 .oracle192.168.1.51spassword:1 2 .init.ora.512201522543100%17781.7KB/s00:011 3 .dp.log100%1160.1KB/s00:001 4 .4、 修 改 standby端 的 监 听 文 件 及 初 始 化 参 数 文 件sql view plain copy print?1 .-修 改 监 听 文 件2 .oracledb02$cd$ORACLE_HOME/network/admin3 .oracledb02admin$vilistener.ora4 .#l
13、istener.oraNetworkConfigurationFile:/DBSoft/oracle/product/11.2.4/dbhome_1/network/admin/listener.ora5 .#GeneratedbyOracleconfigurationtools.6 .7 .LISTENER=8 .(DESCRIPTION_LIST=9 .(DESCRIPTION=1 0 .(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)1 1 .(ADDRESS=(PROTOCOL=TCP)(HOST=db02)(PORT=1521)1 2 .)1 3 .)
14、1 4 .1 5 .SID_LIST_LISTENER=1 6 .(SID_LIST=1 7 .(SID_DESC=1 8 .(SID_NAME=PLSExtProc)1 9 .(ORACLE_HOME=/DBSoft/oracle/product/11.2.4/dbhome_1)2 0 .(PROGRAM=extproc)2 1 .)2 2 .2 3 .(SID_DESC=2 4 .(GLOBAL_DBNAME=woo)2 5 .(ORACLE_HOME=/DBSoft/oracle/product/11.2.4/dbhome_1)2 6 .(SID_NAME=woo)2 7 .)2 8 .
15、2 9 .)3 0 .3 1 .ADR_BASE_LISTENER=/DBSoft/oracle3 2 .3 3 .-启 动 监 听3 4 .oracledb02dbs$lsnrctlstart3 5 .3 6 .LSNRCTLforLinux:Version11.2.0.4.0-Productionon17-JUN-201521:29:573 7 .3 8 .Copyright(c)1991,2013,Oracle.Allrightsreserved.3 9 .4 0 .Starting/DBSoft/oracle/product/11.2.4/dbhome_1/bin/tnslsnr:pl
16、easewait.4 1 .4 2 .TNSLSNRforLinux:Version11.2.0.4.0-Production4 3 .Systemparameterfileis/DBSoft/oracle/product/11.2.4/dbhome_1/network/admin/listener.ora4 4 .Logmessageswrittento/DBSoft/oracle/diag/tnslsnr/db02/listener/alert/log.xml4 5 .Listeningon:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1
17、521)4 6 .Listeningon:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db02)(PORT=1521)4 7 .4 8 .Connectingto(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)4 9 .STATUSoftheLISTENER5 0 .-5 1 .AliasLISTENER5 2 .VersionTNSLSNRforLinux:Version11.2.0.4.0-Production5 3 .StartDate17-JUN-201521:29:575 4 .Upti
18、me0days0hr.0min.1sec5 5 .TraceLeveloff5 6 .SecurityON:LocalOSAuthentication5 7 .SNMPOFF5 8 .ListenerParameterFile/DBSoft/oracle/product/11.2.4/dbhome_1/network/admin/listener.ora5 9 .ListenerLogFile/DBSoft/oracle/diag/tnslsnr/db02/listener/alert/log.xml6 0 .ListeningEndpointsSummary.6 1 .(DESCRIPTIO
19、N=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)6 2 .(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db02)(PORT=1521)6 3 .ServicesSummary.6 4 .Service“PLSExtProc“has1instance(s).6 5 .Instance“PLSExtProc“,statusUNKNOWN,has1handler(s)forthisservice.6 6 .Service“woo“has1instance(s).6 7 .Instance“woo“,statusUNKNOWN
20、,has1handler(s)forthisservice.6 8 .Thecommandcompletedsuccessfully6 9 .7 0 .-查 看 监 听 状 态7 1 .oracledb02dbs$lsnrctlstatus7 2 .7 3 .LSNRCTLforLinux:Version11.2.0.4.0-Productionon17-JUN-201521:30:027 4 .7 5 .Copyright(c)1991,2013,Oracle.Allrightsreserved.7 6 .7 7 .Connectingto(DESCRIPTION=(ADDRESS=(PRO
21、TOCOL=IPC)(KEY=EXTPROC1521)7 8 .STATUSoftheLISTENER7 9 .-8 0 .AliasLISTENER8 1 .VersionTNSLSNRforLinux:Version11.2.0.4.0-Production8 2 .StartDate17-JUN-201521:29:578 3 .Uptime0days0hr.0min.4sec8 4 .TraceLeveloff8 5 .SecurityON:LocalOSAuthentication8 6 .SNMPOFF8 7 .ListenerParameterFile/DBSoft/oracle
22、/product/11.2.4/dbhome_1/network/admin/listener.ora8 8 .ListenerLogFile/DBSoft/oracle/diag/tnslsnr/db02/listener/alert/log.xml8 9 .ListeningEndpointsSummary.9 0 .(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)9 1 .(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db02)(PORT=1521)9 2 .ServicesSummary.9
23、 3 .Service“PLSExtProc“has1instance(s).9 4 .Instance“PLSExtProc“,statusUNKNOWN,has1handler(s)forthisservice.9 5 .Service“woo“has1instance(s).9 6 .Instance“woo“,statusUNKNOWN,has1handler(s)forthisservice.9 7 .Thecommandcompletedsuccessfully9 8 .oracledb02dbs$9 9 .1 0 0 .1 0 1 .-修 改 参 数 文 件1 0 2 .orac
24、ledb02$sqlplus/assysdba1 0 3 .1 0 4 .SQL*Plus:Release11.2.0.4.0ProductiononWedJun1721:35:5420151 0 5 .1 0 6 .Copyright(c)1982,2013,Oracle.Allrightsreserved.1 0 7 .1 0 8 .Connectedtoanidleinstance.1 0 9 .1 1 0 .SQLstartupnomount;1 1 1 .ORACLEinstancestarted.1 1 2 .1 1 3 .TotalSystemGlobalArea11885117
25、44bytes1 1 4 .FixedSize1364228bytes1 1 5 .VariableSize754978556bytes1 1 6 .DatabaseBuffers419430400bytes1 1 7 .RedoBuffers12738560bytes1 1 8 .1 1 9 .SQLcreatespfilefrompfile=/DBSoft/oracle/product/11.2.4/dbhome_1/dbs/initwoo.ora;1 2 0 .1 2 1 .Filecreated.1 2 2 .1 2 3 .SQL1 2 4 .SQLshutdownabort;1 2
26、5 .ORACLEinstanceshutdown.1 2 6 .SQLstartupnomount;1 2 7 .ORACLEinstancestarted.1 2 8 .1 2 9 .TotalSystemGlobalArea1188511744bytes1 3 0 .FixedSize1364228bytes1 3 1 .VariableSize754978556bytes1 3 2 .DatabaseBuffers419430400bytes1 3 3 .RedoBuffers12738560bytes1 3 4 .SQL1 3 5 .1 3 6 .altersystemsetdb_u
27、nique_name=styscope=spfile;1 3 7 .altersystemsetlog_archive_config=DG_CONFIG=(pri,dg)scope=spfile;1 3 8 .altersystemsetlog_archive_dest_1=LOCATION=/DBBackup/ArchiveVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=styscope=spfile;1 3 9 .altersystemsetlog_archive_dest_2=SERVICE=priLGWRSYNCVALID_FOR=(O
28、NLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=priscope=spfile;1 4 0 .altersystemsetfal_server=priscope=spfile;1 4 1 .altersystemsetfal_client=styscope=spfile;1 4 2 .1 4 3 .SQLshutdownabort;1 4 4 .ORACLEinstanceshutdown.1 4 5 .SQLstartupnomount1 4 6 .ORACLEinstancestarted.1 4 7 .1 4 8 .TotalSystemGlobal
29、Area1188511744bytes1 4 9 .FixedSize1364228bytes1 5 0 .VariableSize754978556bytes1 5 1 .DatabaseBuffers419430400bytes1 5 2 .RedoBuffers12738560bytes1 5 3 .SQL1 5 4 .SQL5、 在 primary端 通 过 Rman Duplicate 创 建 备 库 ,在 db01上 执 行 如 下 命 令rman target sys/oraclepri auxiliary sys/oraclesty nocatalogduplicate tar
30、get database for standby from active database nofilenamecheck;python view plain copy print?1 .oracledb01$rmantargetsys/oraclepriauxiliarysys/oraclestynocatalog2 .3 .RecoveryManager:Release11.2.0.4.0-ProductiononWedJun1722:33:5420154 .5 .Copyright(c)1982,2011,Oracleand/oritsaffiliates.Allrightsreserv
31、ed.6 .7 .connectedtotargetdatabase:WOO(DBID=4221729487)8 .usingtargetdatabasecontrolfileinsteadofrecoverycatalog9 .connectedtoauxiliarydatabase:WOO(notmounted)1 0 .1 1 .RMAN1 2 .1 3 .RMANduplicatetargetdatabaseforstandbyfromactivedatabasenofilenamecheck;1 4 .1 5 .StartingDuplicateDbat17-JUN-151 6 .a
32、llocatedchannel:ORA_AUX_DISK_11 7 .channelORA_AUX_DISK_1:SID=19devicetype=DISK1 8 .1 9 .contentsofMemoryScript:2 0 .2 1 .backupascopyreuse2 2 .targetfile/DBSoft/oracle/product/11.2.4/dbhome_1/dbs/orapwwooauxiliaryformat2 3 ./DBSoft/oracle/product/11.2.4/dbhome_1/dbs/orapwwoo;2 4 .2 5 .executingMemor
33、yScript2 6 .2 7 .Startingbackupat17-JUN-152 8 .allocatedchannel:ORA_DISK_12 9 .channelORA_DISK_1:SID=44devicetype=DISK3 0 .Finishedbackupat17-JUN-153 1 .3 2 .contentsofMemoryScript:3 3 .3 4 .backupascopycurrentcontrolfileforstandbyauxiliaryformat/DBSoft/oracle/oradata/woo/control01.ctl;3 5 .restorec
34、lonecontrolfileto/DBSoft/oracle/fast_recovery_area/woo/control02.ctlfrom3 6 ./DBSoft/oracle/oradata/woo/control01.ctl;3 7 .3 8 .executingMemoryScript3 9 .4 0 .Startingbackupat17-JUN-154 1 .usingchannelORA_DISK_14 2 .channelORA_DISK_1:startingdatafilecopy4 3 .copyingstandbycontrolfile4 4 .outputfilen
35、ame=/DBSoft/oracle/product/11.2.4/dbhome_1/dbs/snapcf_woo.ftag=TAG20150617T223502RECID=1STAMP=8826573084 5 .channelORA_DISK_1:datafilecopycomplete,elapsedtime:00:00:154 6 .Finishedbackupat17-JUN-154 7 .4 8 .Startingrestoreat17-JUN-154 9 .usingchannelORA_AUX_DISK_15 0 .5 1 .channelORA_AUX_DISK_1:copi
36、edcontrolfilecopy5 2 .Finishedrestoreat17-JUN-155 3 .5 4 .contentsofMemoryScript:5 5 .5 6 .sqlclonealterdatabasemountstandbydatabase;5 7 .5 8 .executingMemoryScript5 9 .6 0 .sqlstatement:alterdatabasemountstandbydatabase6 1 .6 2 .contentsofMemoryScript:6 3 .6 4 .setnewnamefortempfile1to6 5 .“/DBSoft
37、/oracle/oradata/woo/temp01.dbf“;6 6 .switchclonetempfileall;6 7 .setnewnamefordatafile1to6 8 .“/DBSoft/oracle/oradata/woo/system01.dbf“;6 9 .setnewnamefordatafile2to7 0 .“/DBSoft/oracle/oradata/woo/sysaux01.dbf“;7 1 .setnewnamefordatafile3to7 2 .“/DBSoft/oracle/oradata/woo/undotbs01.dbf“;7 3 .setnew
38、namefordatafile4to7 4 .“/DBSoft/oracle/oradata/woo/users01.dbf“;7 5 .backupascopyreuse7 6 .datafile1auxiliaryformat7 7 .“/DBSoft/oracle/oradata/woo/system01.dbf“datafile7 8 .2auxiliaryformat7 9 .“/DBSoft/oracle/oradata/woo/sysaux01.dbf“datafile8 0 .3auxiliaryformat8 1 .“/DBSoft/oracle/oradata/woo/un
39、dotbs01.dbf“datafile8 2 .4auxiliaryformat8 3 .“/DBSoft/oracle/oradata/woo/users01.dbf“;8 4 .sqlaltersystemarchivelogcurrent;8 5 .8 6 .executingMemoryScript8 7 .8 8 .executingcommand:SETNEWNAME8 9 .9 0 .renamedtempfile1to/DBSoft/oracle/oradata/woo/temp01.dbfincontrolfile9 1 .9 2 .executingcommand:SET
40、NEWNAME9 3 .9 4 .executingcommand:SETNEWNAME9 5 .9 6 .executingcommand:SETNEWNAME9 7 .9 8 .executingcommand:SETNEWNAME9 9 .1 0 0 .Startingbackupat17-JUN-151 0 1 .usingchannelORA_DISK_11 0 2 .channelORA_DISK_1:startingdatafilecopy1 0 3 .inputdatafilefilenumber=00001name=/DBSoft/oracle/oradata/woo/sys
41、tem01.dbf1 0 4 .outputfilename=/DBSoft/oracle/oradata/woo/system01.dbftag=TAG20150617T2235321 0 5 .channelORA_DISK_1:datafilecopycomplete,elapsedtime:00:05:581 0 6 .channelORA_DISK_1:startingdatafilecopy1 0 7 .inputdatafilefilenumber=00002name=/DBSoft/oracle/oradata/woo/sysaux01.dbf1 0 8 .outputfile
42、name=/DBSoft/oracle/oradata/woo/sysaux01.dbftag=TAG20150617T2235321 0 9 .channelORA_DISK_1:datafilecopycomplete,elapsedtime:00:05:301 1 0 .channelORA_DISK_1:startingdatafilecopy1 1 1 .inputdatafilefilenumber=00003name=/DBSoft/oracle/oradata/woo/undotbs01.dbf1 1 2 .outputfilename=/DBSoft/oracle/orada
43、ta/woo/undotbs01.dbftag=TAG20150617T2235321 1 3 .channelORA_DISK_1:datafilecopycomplete,elapsedtime:00:00:251 1 4 .channelORA_DISK_1:startingdatafilecopy1 1 5 .inputdatafilefilenumber=00004name=/DBSoft/oracle/oradata/woo/users01.dbf1 1 6 .outputfilename=/DBSoft/oracle/oradata/woo/users01.dbftag=TAG2
44、0150617T2235321 1 7 .channelORA_DISK_1:datafilecopycomplete,elapsedtime:00:00:031 1 8 .Finishedbackupat17-JUN-151 1 9 .1 2 0 .sqlstatement:altersystemarchivelogcurrent1 2 1 .1 2 2 .contentsofMemoryScript:1 2 3 .1 2 4 .switchclonedatafileall;1 2 5 .1 2 6 .executingMemoryScript1 2 7 .1 2 8 .datafile1s
45、witchedtodatafilecopy1 2 9 .inputdatafilecopyRECID=1STAMP=882658052filename=/DBSoft/oracle/oradata/woo/system01.dbf1 3 0 .datafile2switchedtodatafilecopy1 3 1 .inputdatafilecopyRECID=2STAMP=882658052filename=/DBSoft/oracle/oradata/woo/sysaux01.dbf1 3 2 .datafile3switchedtodatafilecopy1 3 3 .inputdat
46、afilecopyRECID=3STAMP=882658052filename=/DBSoft/oracle/oradata/woo/undotbs01.dbf1 3 4 .datafile4switchedtodatafilecopy1 3 5 .inputdatafilecopyRECID=4STAMP=882658052filename=/DBSoft/oracle/oradata/woo/users01.dbf1 3 6 .FinishedDuplicateDbat17-JUN-15#至 此 已 经 恢 复 完 成6、 在 primary 和 standby端 添 加 standby
47、日 志sql view plain copy print?1 .SQLalterdatabaseaddstandbylogfile2 .group4(/DBSoft/oracle/oradata/woo/styredo04.log)size50m,3 .group5(/DBSoft/oracle/oradata/woo/styredo05.log)size50m,4 .group6(/DBSoft/oracle/oradata/woo/styredo06.log)size50m,5 .group7(/DBSoft/oracle/oradata/woo/styredo07.log)size50m
48、;6 .7 .SQLSELECTGROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUSFROMV$STANDBY_LOG;8 .9 .GROUP#THREAD#SEQUENCE#ARCSTATUS1 0 .-1 1 .400YESUNASSIGNED1 2 .500YESUNASSIGNED1 3 .600YESUNASSIGNED1 4 .700YESUNASSIGNED7、 在 standby端 开 启 实 时 日 志 应 用sql view plain copy print?1 .SQLrecovermanagedstandbydatabaseusingcurr
49、entlogfiledisconnectfromsession;2 .Mediarecoverycomplete.3 .SQL三 、 开 始 测 试 ADG8、 执 行 日 志 切 换 测 试 ( 在 pri端 切 换 归 档 , 在 节 点 二 上 检 查 是 否 也 发 生 了 切 换 )sql view plain copy print?1 .-primary执 行 日 志 切 换2 .3 .SQLarchiveloglist;4 .DatabaselogmodeArchiveMode5 .AutomaticarchivalEnabled6 .Archivedestination/DBBackup/Archive7 .Oldestonlinelogsequence218 .Nextlogsequencetoarchive239 .Curren