备用数据库的应用

---------------------------------------------------------------切换--------------------------------------------------------------------------------
切换前的准备

1.验证备用数据库已接收全部重做日志(运行在“最高可用性或最大保护模式”在主数据库上检查v$archive_dest_status视图,可以确定切换目标是否已经同步)
select db_unique_name,synchronization_Status,synchronized from v$archive_dest_status where db_unique_name='stby';
2.如果synchronized不等已yes。或运行在最高性能模式下,就需要多做一些验证重做状态,在备用数据库运行
 select process,client_process,thread#,sequence#,status from v$managed_Standby;
PROCESS   CLIENT_P    THREAD#  SEQUENCE# STATUS
--------- -------- ---------- ---------- ------------
ARCH      ARCH            1          48 CLOSING
ARCH      ARCH            0           0 CONNECTED
ARCH      ARCH            0           0 CONNECTED
RFS      N/A            0           0 IDLE
RFS      UNKNOWN        0           0 IDLE
RFS      LGWR            1          49 IDLE
MRP0      N/A            1          49 APPLYING_LOG
主数据库正在发送当前序列是49序列。
查询主数据库
select thread#,sequence#,status from v$log;
如果备用数据库没有接收当前重做数据,就不能执行切换。
3.检查应用能否跟上在物理备用情况下,将在v$managed_Standby查询中看到MRP0.
如果没有看到MRP0行,那么应用就没有运行,要执行切换,就必须启动应用服务,并在启动前等待它赶上当前重做流。
如果看到MRP0行的状态未wait_for_gap,那么在间隔清楚前仍然不能切换。
wait_for_gap状态意味着您不能运行实时应用,或指定了delay,在delay情况下,必须停止应用进程,并使用nodelay限定符重新启动,否则,切换将无法完成。
4取消正在主数据库运行的任何作业和备份
select process,operation,r.status,mbytes_processed pct,s.status from v$rman_status r,v$session s where r.sid=s.sid;

1>>>>>>>>>>>>>>>>>切换到物理备用数据库
select a.SWITCHOVER_STATUS from v$database a;
alter database commit to switchover to physical standby with session shutdown;(主)
alter database commit to switchover to primary with session shutdown;(备)
alter database open (新主)
新备
shutdown immediate
 startup mount
 alter database recover managed standby database using current logfile disconnect;
broker执行切换:
dgmgrl>switchover to stby;

########################从不成功切换回退#####################
如果切换中途失败,会出现两个物理备用数据库
在原始主数据库
 alter database commit to switchover to primary;
如果该语句成功,就关闭并重启原始主数据库。该数据库将按主数据库角色运行。
如果该语句不成功,继续后续步骤:
当启动切换时,将一个跟踪文件写入日志目录,该跟踪文件中包含重建原始主数据库控制文件的sql语句。从该文件铺获语句,并在新的备用数据库从sql*plus执行他们。新的备用数据库还原主数据库角色。
关闭原始备用数据库,并在主数据库上创建一个新的备用控制文件,将备用控制文件复制到原始物理备用站点。
下面是重新创建备用控制文件的列子:
alter database recover managed standby database cancel;
shutdown immediate;
在主数据库上执行
alter database create standby controlfile as '<file name>';
重启原始物理备用实例,如果此过程成功且已启用归档间隔管理,则fetch archive log(fal)进程将启动,并将任何缺失的归档重做日志文件重新归档到物理备用数据库。


#########################处理间隔###########################
方法一:
确定物理备用数据库是否存在重做间隔
select * form v$archive_gap
在主数据库运行
select name from v$archived_log where thread#=2 and dest_id=2 and sequence#=6233;
在物理数据库上注册他们
alter database register logfile '<log file name>'
要确定是否缺少其他归档重做日志文件,在备用数据库上查询v$archived_log视图,以获得最后接收的序列号,查询v$log视图以基于控制文件中的信息为指定线程获取最后的发送序列号。
select max(r.sequence#) last_seq_recd,max(l.sequence#) last_seq_sent from v$archived_log r,v$log l where r.dest_id=2 and l.archived='yes';
如有可能,只要主数据库中有比备用数据库提供的最高序列号还高的序列号,就从主数据库将任何归档重做日志文件复制到备用站点并注册。必须为每个线程这样做。
方法二:
使用增量备份作为更有效的方法处理较大间隔的情况。(备用数据库明显落后于主数据库或者在主数据库上没有nologging操作执行的时候,才应该使用该方法)
1.在备用数据停止redo apply
alter database recover managed standby database cancel;
2.确定备用数据库的当前scn
select current_Scn from v$database;
3.使用scn至在主数据库执行增量备份
4.在主数据库获得新备用集控制文件并将其复制到物理备用备用数据库
alter database create standby controlfile as '/tmp/std.ctl'
5将备份集和备用控制 文件负责到物理备用服务器上
6将备份复制到备用系统后,使用目标数据库控制文件编写目录
rman>ca;talog start with '/tmp/dba/bkups'
7使用redo从增量备份恢复数据库
rman>recover database noredo
8重启mrp
alter database recover managed standby database using current logfile disconnect

#######################备用数据库不接收重做日志####################

查询视图并检查错误消息
select dest_id,status,error from v$archive_Dest
如果查询不起作用,检测以下问题列表
监听器问题
1.没有正确配置listener.ora
2.尚未在备用数据库启动监听器
3.没有在主数据库的tnsnames.ora文件配置备用实例的服务名(如果使用tnsname标识符不能远程登录备用数据库,那么data guard也不能登录)
归档目标问题
1.由log_archive_dest_n参数为主数据库指定的服务名不正确
2.没有为备用数据库将log_archive_dest_State_n参数设置为enable
3.断开链接而且尚未达到reopen指定的秒数
4.未启动备用数据库实例
5.备用数据库控制文件创建不正确
6.正确备份没有用于建立备用数据库

#######################未应用归档重做日志############################

需验证环境和初始化参数的设置是否正确
1.验证是否在主数据库上正确设置了log_archive_DEst_n参数
select dest_id,status,destination from v$archive_dest;
如果没有,需设置log_archive_Dest_n;log_Archive_Dest_Start_n=‘enable’ 参数
2.验证备用数据库的本地归档log_archive_Dest_n;standby_archive_Dest;log_archive_format
3.在备用数据库设置参数db_file_name_convert和log_file_name_convert.如果要在备用数据库上自动添加主数据库创建的数据文件,就将standby_file_management=auto;
4.验证备用数据库站点上的LISTENER.ORA,另外检查主站点上的tnsname.ora
5.验证备用站点上的监听器是否启用。

--------------------------------------------------------------故障转移-------------------------------------------------------------------------------
1>转移到物理备用数据库
1.alter database recover managed standby database cancel;
2.alter database recover managed standby database finish
额外限定符Finish,指示备用数据库应用所有可用的重做数据,可以完成这些操作。为此,首先取消MRP,然后使用额外限定符重新启动
一旦完成finish操作,无论原来的保护模式是什么,主数据库的保护模式降为“最高性能”. 如果仅有一个备用数据库,这样做使得新的主数据量在没有备用数据库时也可以打开。在最大保护模式,这种情况下
保护模式降为最高性能模式极为重要。因为可用备用数据库的缺少将阻止打开主数据库,此外,这时该过程中的保护级别设置为UNPROTECTED,因为打开运行时,dataguard甚至不知道是否配置了备用数据库保护它。
提示:如果重做数据中有一个间隔,而且MRP无法应用已接收的所有重做数据,finish命令将失败,必须回到旧的ALTER DATABASE ACTIVATE PHYSICAL STANDBY DATABASE;以故障转移
备用数据库,这将导致上次重做数据成功应用之后的数据丢失。该命令还可用用于显示避免故障转移时应用重做数据。

3.打开新的主数据库
alter database commit to switchover to primary with session shutdown;
alter database open;
#####故障转移问题
如果重做数据中有一个间隔,那么正常的故障转移就不会成功,在这种情况下,有两种选择
1 解决缺少重做数据的问题
2使用activte standby命令并故障转移,丢弃缺少的重做。

##########################################恢复旧的主数据库作为备用数据库
如果在主数据库失败前启用了闪回数据库,并且主站点恢复时原始主数据库仍然完好无损。就可以重置原始主数据库作为备用数据库。
1.找出备用数据库成为主数据库的时刻。因为重做数据通过scn应用,就需要来自新的主数据库的故障转移scn。物理备用成为主数据库时,此故障转移scn被写入控制文件。运行以下查询
select to_char(standby_became_primary_scn) failover_scn from v$database;
2.有了scn,就可以返回原始主数据库并装载它,闪回原始主数据库到那个scn,并就地将其装换为物理备用数据库。
startup mount
flashback database to scn 7658942;
alter database convert to physical standby;
shutdown immediate;
startup mount;
启用mrp
alter database recover managed  standby database using current logfile disconnect;
--------------------------------------------------------------快速故启动障转移-----------------------------------------------------------------------
faststartfailoverpmyshutdown:主数据库挂起,故障转移已发生,是否应该关闭主数据库。默认true关闭
faststartfailoverautorsinstate:true失败的主数据库再次可以访问时,FSFO将尝试自动恢复失败的主数据库。
dgmgrl>show fast_start_start_failover
1.启用快速启动故障转移
设置FSFO前,必须满足几个先决条件
(1)结合使用broker和所有先决条件
(2)在主,备数据库上启用闪回数据库
(3)为保护模式设置正确配置(备用重做日志文件在两端,重做传输在两个方向)
(4)安装观察器系统并配置tnsnames
*********************broker需要知道哪个备用数据库将成为FSFO目标。此外,配置中的该数据库需要知道故障转移后,主数据库将成为目标数据库。
dgmgrl>edit database orcl11g set property faststartfailovertarget='stby';
*********************开始故障转移前观察器应等待多长时间,以注意主数据库不是真的关闭的情形。这称为快速启动故障转移阀值。
dgmgrl>edit configuration set property faststartfailoverthreshold=45;
*********************在最高性能模式下,FSFO需要知道可以接受多少数据丢失。备用数据库查看滞后限制,如果丢失小于60s的重做数据,故障转移就继续。否则不执行故障转移。
dgmgrl>edit configuration set property faststartfailoverlaglimit=60;
dgmgrl>enable fast_Start failover;
********************在相应的系统启动观察器,观察器启动时,将在当前目录下默认打开名为FSFO.dat的文件。为了控制多个观察器竞争FSFO.ora文件,在start命令上放置限定符file实现。
dgmgr>start observer file=<your path>/orcl11g.dat


---------------------------------------------------------------启动ACTIVE DATA GUARD-----------------------------------------------------------------------
1备用数据库已经装载,redo apply正在运行。
(1)停止redo apply    :recover managed standby database cancel;
(2)以只读模式打开数据库 : alter database open read  only;
(3)重启redo apply :recover managed standby database disconnect using current logfile;
2备用数据库已经关闭,redo apply停止。
(1)start up
(2)recover managed standby database disconnect using current logfile;

------------------------------------------------------------------11g的快照备用------------------------------------------------------------------
如果在物理备用数据库上尚未启动闪回数据库,必须启动它。
1.禁用管理恢复进程(MRP)来停止应用重做数据
2.在数据库处于mount状态下,在物理备用数据库上启用闪回数据库
3.启用物理备用数据库的重做应用为将其装换为完全可更新做准备
4.执行到快照备用的实际转换
convert database 'stby' to snapshot standby;

5.完成工作意图,将快照备用数据库返回到物理备用数据库的原始模式
convert database 'stby' to physical standby;
6.将物理备用返回到管理恢复模式
完成转换!broker将重启redo apply进程,物理备用数据库将致力于赶上主数据库。如果装换后主数据库尚未重新链接上备用数据库,就可以以sysdba身份链接上主数据库并切换日志文件,但如果运行在“最高可用性”模式这不是必须的:
alter system switch logfile;
7.关闭物理备用数据库,并以mount模式启动,将其重置于管理恢复模式。










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值