data guard 日常管理

 

启动到管理模式
shutdown immediate
startup nomount;
alter database mount standby database;
alter database recover managed standby database disconnect from session;

启动到只读的模式
shutdown immediate
startup nomount
alter database mount standby database;
alter database database open read only;

如果在管理恢复的模式下到只读模式
recover managed standby database cancel;
alter database open read only;
这个时候可以给数据库增加临时数据库文件(这时候热备份是没有备份过来的)

在只读模式下到管理恢复方式
recover managed standby database disconnect from session;

 

主库和备库的切换
 switchover时只能先从primary切换到standby,再从standby到primary

最简单的办法是把两个数据库的文件互换,
 primary到standby
  sqlplus /nolog < connect / as sysdba
  alter database commit switchover to physical standby with session shutdown;
  shutdown immediate;
  create spfile from '/../product/10.1.0/db_1/dbs/inittbdbsdby.ora';
  startup nomount;
  alter database mount standby disconnect;
  exit
  eof
  lsnrctl stop
  lsnrctl start listenerdb

 修改主机的tnsnames.ora 将主机的ip与备机的ip兑换

 standby到primary 
  more switchprimary.sh
  sqlplus /nolog < connect / as sysdba
  shutdown immediate
  create spfile from '/../product/10.1.0/db_1/dbs/inittdbdprim.ora';
  startup
  exit
  eof
  lsnrctl stop listenerdb
  lsnrctl start
 修改备库的tnsname.ora 主备库的ip互换
 
这样切换的要求是主备机各有两个listener,listener监听的是1521,listenerdb监听的是1522
任何一个节点,在primary期间启动listener,standby期间启动listenerdb

 

连接data guard的客户端的tnsname配置,这样可以实现失败对换,对客户端是透明的:
BOSS =
(DESCRIPTION =
(failover = on )
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 主)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 备)(PORT = 1521))
)
(CONNECT_DATA =
(SID = BOSS)
)

备库的失败切换
1,失败的切换
 一般是主服务器已经不能使用,必须切换到备用的服务器,所以只操作备用服务器这一端,提供一切换脚本
 more switchprimary.sh
 cd $HOME 
 .bash_profile
 sqlplus /nolog < connect / as sysdba
 recover managed standby database cancel;
 --if standby hava standby redo logfile;
 --alter database recover managed standby database finish;
 --else
 alter database recover managed standby database finish skip standby logfile;
 --switch
 alter database recover managed standby database finish skip standby logfile;
 --open
 shutdown immediate
 create spfile from '/../product/10.1.0/db_1/dbs/inittbdbprim.ora';
 startup
 exit
 eof 
 lsnrctl stop linstenerdb
 lsnrctl start
最后将tnsname.ora将住备库的ip对换


如果在备用端有活动的为归档的日志,或者有从主数据库拷贝过来的联机日志,可以采用如下的办法注册并恢复
 alter database register logfile '/../oradata/tbdb/archive/1_87.dbf';
 recover standby database;

 如果有活动日志必须用
 alter database recover managed standby database finish;
 否则用
 alter database recover managed standby database finish skip standby logfile;
这样切换的备用服务器可以避免最小的数据丢失和不用retlogs,特别是对于用多个备用服务器的时候,该服务器可以马上作为主服务器而不用重新创建备用的服务器。


强行切换(激活)

这种切换是以激活备用服务器来完成的,在重新启动数据库的时候,备用激活resetlogs,这样会影响到其他的备用服务器而且必须重新再主服务器上重新构造备用服务器,一般不建议这样做
 $more activeprimary.sh
 #!/bin/bash
 #switch to primary with cancel;
 cd $HOME 
 . .bash_profile
 #cancel and startup database;
 sqlplus /notog < connect / as sysdba
 alter system arcive log current;
 recover managed standby database cancel;
 alter database activete standby database;
 shutdown immediate;
 create spfile from '/../product/10.1.0/db_1/dbs/inittbdbprim.ora';
 startup
 exit
 eof
 lsnrctl stop listenerdb
 lsnrctl start

备用库的备份与恢复

1,从备用库上恢复主库的数据文件
 在某些情况下,主服务器可能会损坏一到两个数据文件,如果是从主库的备份设备恢复,理论是可以的,但是可能会因为需要太多的日志,实际耗时太大,这个时候,我们可以考虑从备份的服务器上恢复该数据,因为备份的服务器和主数据库一般只是相差一个日志文件左右。
1》关闭备用的数据库
 recover managed standby database cancel;
 shutdown immediate;
2》拷贝或ftp损坏的数据文件到主数据库
3》在主数据库recover database datafile ‘文件名'即可

2,在备用数据库上进行备份
如果想减轻主库的压力,可以在备用数据库上进行备份,因为备用数据库的特性关系,在对standby的rman备份中,不能修改rman的配置,所以没有办法自动备份控制文件。

可以采取一下方法进行备份
1》备份备用数据库,可以停止恢复进程,跳转到read only的模式下,通过backup database,来备份数据库,这样的数据库处于一致的模式下

2》采用恢复目录备份standby数据库

rman target sys@dbstandby
backup database format '/../oradata/rman_backup/full_%d_%T_s%s_p%p';
backup archivelog all delete input format '/../oradate/rman_backup/ctl_%d_%T_s%s_p%p';

如果采用控制文件做恢复的目录,注意
alter database backup controlfile to '/../ordata/rman_backup/ctl_%d_%T_s%s_p%p';

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值