资源描述
主库丢失归档恢复备库
(oracle 11.2.0.3)
文档历史信息
目前修订日期:
-09-29
版本号
修订日期
修订人
变更内容
备注
0.1
-09-29
陈伟
创建文档
一、使用范围 3
1、使用对象 3
2、使用场景 3
二、具体操作 3
备库查询scn 3
主库创建增量备份 4
备库恢复数据 4
开启主库 5
一、使用范围
1、使用对象
数据库维护人员。
现场实施人员。
2、使用场景
在系统运转过程中因为人为,或网络,等其它意外情况造成主库归档日志未在备库正常应用,丢了若干个归档序号。同时主库是归档日志因为定时rman任务清除,使归档日志无法完成同时。
使用命令SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;可查看日常DG同时情况,如在备库中出现短号情况适用本文档。
二、具体操作
备库查询scn
1、 前提条件
备库监听已经开启
>netstat –an |grep 1521
备库数据库处于Standby状态
>sqlplus /nolog
Sql>connect /as sysdba
sql> shutdown immediate
sql>startup mount;
sql> Alter database recover managed standby database disconnect from session;
2、 查询备库同时scn号
> sqlplus /nolog
sql> connect /as sysdba
sql> select current_scn from v$database;
显示结果:
CURRENT_SCN
-----------
227761
主库创建增量备份
1、 前提条件
主库运行正常
2、 创建基于scn增量备份
使用rman target / nocatalog命令进入rman命令行
假如不能实施命令,
请用:/home/oracle/product/11gR2/db/bin/rman target / nocatalog
注意:创建增量备份,scn一定要和备库一直,并确保备份文件夹为空。
rman> BACKUP DEVICE TYPE DISK INCREMENTAL FROM SCN 227761 DATABASE FORMAT '/home/oracle/backup/backlogs/bkup_incre+%T+%U.bk';
3、 将备份文件复制到standby端
> scp -r /home/oracle/backup/ backlogs / .2:/home/oracle/backup/
注意:远程文件夹下不能有backlogs文件夹
4、 关闭主库
> sqlplus /nolog
sql > connect /as sysdba
sql> shutdown immediate
确保在数据恢复期间不会有新数据产生
备库恢复数据
1、 切换备库状态为:repository
>sqlplus /nolog
Sql>connect /as sysdba
Sql> Alter database recover managed standby database cancel;
2、 将备份文件导入备库
RMAN> CATALOG START WITH '/home/oracle/backup/backlogs/';
3、 确定控制文件路径
Sql>show parameter control
4、 恢复数据重新创建控制文件
RMAN> run{
restore standby controlfile to '/home/oracle/backup/control02.ctl' ;
recover database noredo;
};
5、 关闭备库
> sqlplus /nolog
sql> connect /as sysdba
sql> shutdown immediate
6、 将/home/oracle/backup/control02.ctl覆盖/home/oracle/oradata/zfmmdb/control02.ctl和/home/oracle/oradata/zfmmdb/control01.ctl
>cp /home/oracle/backup/control02.ctl /home/oracle/oradata/zfmmdb/control01.ctl
>cp /home/oracle/backup/control02.ctl /home/oracle/oradata/zfmmdb/control02.ctl
7、 重启备库
> sqlplus /nolog
sql> connect /as sysdba
sql> STARTUP MOUNT;
sql> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
开启主库
> startup
三、验证DG系统是否恢复正常
主库操作
确定现有归档重做日志
SQL->SELECT SEQUENCE#, FIRST_TIME, NEXT_TIMEFROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
手动实施联机日志
SQL->ALTER SYSTEM SWITCH LOGFILE;
备库操作
验证新重做日志已经抵达standby数据库
SQL->SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
验证新重做日志已经应用
SQL->SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
四、附录
状态模拟
因为测试需要现提供场景模拟方法
1、关闭备库监听或数据库
2、使用oracle用户登录到主库手动发送归档日志
>sqlplus /nolog
sql>connect /as sysdba
SQL->ALTER SYSTEM SWITCH LOGFILE;
SQL->ALTER SYSTEM SWITCH LOGFILE;
3、查询手动发送归档日志序号
SQL->SELECT
SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
4、删除对应序号日志
5、开启备机,再次使用手动同时方法。
经过以上步骤dg处于备机不能正常同时状态。
保护模式开启
注意事项:
以下操作请在主库实施.
1检验保护模式
sqlplus /nolog
SQL->connect /as sysdba
SQL->select DATABASE_ROLE,PROTECTION_MODE,PROTECTION_LEVEL from v$database;
DATABASE_ROLE PROTECTION_MODE PROTECTION_LEVEL
---------------- -------------------- --------------------
PRIMARY MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE
默认保护模式为最大性能
2修改保护模式
SQL->shutdown immediate
SQL->startup mount
SQL->ALTER DATABASE SET STANDBY DATABASE TO maximize availability;
SQL->ALTER DATABASE OPEN;
展开阅读全文