Oracle技术网是一个专业的ORACLE技术平台,结合丰富的资源,构建一个完善的富裕的ORACLE技术资源库,供广大ORACLE技术爱好者学习查阅。
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netOS:windows 2000 advanced server SP2
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netOracle:8.1.7.4假定主库与备用库不在同一个主机上,目录结构相同,并且配置一个自管理备用库(managed standby database):
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net主库备库
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net主机IP 192.168.1.20 192.168.1.30
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net主机名PrimDB StbyDB
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netSID Orcl Orcl
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net数据库服务名Orcl Orcl
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net一创建一个主库的数据文件备份:
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net用冷备份方式,备份到e:\shared\back
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net二创建备用库的控制文件:
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net冷备份之后,打开主库
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netSQL> connect internal/oracle as sysdba;
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netSQL>startup pfile=d:\oracle\admin\orcl\init.ora;
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netSQL>alter database create standby controlfile as ‘e:\shared\back\stby_ctl.ctl’;
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net三通过网络复制备份的数据文件和备用控制文件到备库主机
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net四 配置主库的tnsnames.ora文件,添加备库别名为stby1,即下面内容:
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netstby1=(description=
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net(address=
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net(protocol=tcp)
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net(port=1523)
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net(host=192.168.1.30))
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net(connect_data=
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net(SID=orcl)))
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net五 配置备用库的listener.ora文件,添加监听服务standby_listener,在相应的节里添加有关的内容如果原文件内已有,则修改之。
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netstandby_listener节:
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net(address_list=
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net(address=
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net(protocol=tcp)
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net(port=1523)
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net(host=192.168.1.30)
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net) )
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netSID_list_standby_listener节:
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net(sid_list=
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net(sid_desc=
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net(sid_name=orcl)
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net(oracle_home=d:\oracle\ora81)
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net) )
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net这个文件中只能有这两节,不能有多个组,虽然可以定义监听的名字不同,但在启动监听服务的时候,都只启动一个监听服务。
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net六 重新启动备库监听服务,以使更改生效:
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netDOS>lsnrctl #启动监听服务管理程序
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netLSNRCTL>status #查看监听服务状态
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netLSNRCTL>stop #停止监听服务
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netLSNRCTL>start #启动监听服务
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net也可以在管理工具的服务管理里停止和启动服务。
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net七 配置主库的初始化参数文件init.ora,修改归档目的地。
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net本地归档只归档到一个目录e:\log。添加以下内容:# 定义本地归档路径,强制归档,重试时间2秒log_archive_dest_1 = “location=e:\log\ mandatory reopen=2”
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netlog_archive_dest_state_1 = enable
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net# 定义归档到备用库,强制归档,重试时间15秒。
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net# 如果定义为可选状态(optional),那么在归档失败后不会再次尝试归档的。定义# 为madatory状态后,如果本次归档失败,则在归档下一个日志时会再次尝试# 重传上一个未成功归档的日志。
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netlog_archive_dest_2 = “service=stby1 mandatory reopen=15”
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netlog_archive_dest_2 = enable
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net# 定义必须成功归档的日志数,只需要本地成功归档即可
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netlog_archive_min_succeed_dest = 1
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net八 使主库修改后的参数生效。
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net以下操作是在未重启主库时使用。如果修改主库初始化参数文件后重新启动了主库,则可以不使用下列命令。下列命令只对当前实例有效。
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netSQL>alter system set log_archive_dest_1 = “location=e:\log mandatory reopen=2”;
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netSQL>alter system set log_archive_dest_state_1 = enabl;
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netSQL>alter system set log_archive_dest_2 = “service=stby1 mandatory reopen=30”;
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netSQL>alter system set log_archive_dest_2 = enable;
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netSQL>alter system set log_archive_min_succeed_dest = 1;
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net九配置备用库的初始化参数文件:
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net将主库的初始化参数文件复制到备库,删除原有的日志归档目录项,并添加以下内容:
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netlog_archive_dest = e:\log
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netlog_archive_trace = 6 #定义日志跟踪层次
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netstandby_archive_dest = e:\log
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net#更改控制文件名
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netcontrol_files = (“d:\oracle\oradata\orcl\stby_ctl.ctl”)
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net十启动备用库
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net将从主库复制过来的数据文件、控制文件复制到相应的位置,然后在备库上操作(此时备库处于关闭状态):
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netSQL>connect internal/oracle as sysdba
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netSQL>startup nomount
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netSQL>alter database mount standby database
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net十一 如果有日志序列的缺失,则先将主库的日志复制到备库日志目录,进行手工恢复
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netSQL>recover automatic standby database;
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net或者:
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netSQL>recover standby database until cancel;
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net查看日志序列是否有缺失的SQL语句:
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netSQL>SELECT high.thread#, “LowGap#”, “HighGap#”
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netFROM
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net(
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netSELECT thread#, MIN(sequence#)-1 “HighGap#”
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netFROM
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net( SELECT a.thread#, a.sequence#
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netFROM
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netv$archived_log a, ( SELECT thread#, MAX(next_change#) gap1
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netFROM v$log_history
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netGROUP BY thread#
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net) b
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netWHERE a.thread# = b.thread# AND a.next_change# > b.gap1
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net)
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netGROUP BY thread#
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net) high,
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net(
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netSELECT thread#, MIN(sequence#) “LowGap#”
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netFROM
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net( SELECT thread#, sequence# FROM v$log_history, v$datafile
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netWHERE checkpoint_change# <= next_change#
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netAND checkpoint_change# >= first_change#
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net)
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netGROUP BY thread#
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net) low
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netWHERE low.thread# = high.thread# ;
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net如果备库有日志序列缺失,则同一个thread#的LowGap# 与 HighGap# 不等。如果没有日志序列缺失,那么选出空值或者是LowGap# 与 HighGap# 相同。
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net十二将备库置于自管理模式
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netSQL>recover managed standby database;
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.net此时,SQLPLUS窗口停止响应,直到取消备库自管理模式。要取消备库的自管理模式的命令:
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netSQL>recover managed standby database cancel;
:8J'(C}$@E+3IFG=Q}+Hhttp://www.itwz.netTags(标签):创建O
天天网摘 Copyright(版权所有) © 天天网摘 2001~2009 本站文章来源于网络,如果有侵犯你的权宜的地方,请指出我们会即时更正。 |