DBLOG
» WTF
Toggle navigation
DBLOG
主页
1、用户
2、各种方案
3、备份恢复
4、表空间相关
5、OGG
6、文件管理
7、常见故障分析
8、DG
9、集群相关
About Me
归档
标签
备库缺少用于接收主库日志的备用重做日志文件-恢复dg
无
2025-08-29 00:10:04
3
0
0
admin
### 1. 当前 SCN 状态 - **备库 SCN**: ```sql SELECT dbid, checkpoint_change# FROM v$database; ``` - **备库当前 SCN**: ```sql SELECT TO_CHAR(dbms_flashback.get_system_change_number, 'FM9999999999999999999999999999') get_system_change_number FROM dual; ``` - **主库 SCN**: ```sql SELECT dbid, TO_CHAR(CHECKPOINT_CHANGE#, 'FM9999999999999999999999999999') AS CHECKPOINT_CHANGE FROM v$database; SELECT TO_CHAR(dbms_flashback.get_system_change_number, 'FM9999999999999999999999999999') get_system_change_number FROM dual; ``` ### 2. 备库日志状态 - 备库在日志应用时出现以下信息: ``` RFS[5]: No standby redo logfiles created for thread 1 Media Recovery Waiting for thread 1 sequence 327076 (in transit) ``` 这表示备库缺少用于接收主库日志的备用重做日志文件。 ### 3. 处理 SCN 差异 由于备库 SCN 落后于主库 SCN,您可以采取以下步骤进行处理: 1. **停止备库的日志应用**: ```sql ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; ``` 2. **在主库上进行增量备份**: 使用 RMAN 从主库进行增量备份: ```sql RMAN> BACKUP DEVICE TYPE DISK INCREMENTAL FROM SCN 14630127306418 DATABASE FORMAT '/oradata/bak/orclbk_%U.bk'; ``` 3. **将备份和控制文件传到备库**: ```bash scp /path/to/backup/* oracle@<standby_host>:/oradata/backup ``` 4. **在备库上创建新的控制文件**: ```sql ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/oradata/bak/stb.ctl'; ``` 5. **在备库上启动到 NOMOUNT 状态**: ```sql STARTUP NOMOUNT; ``` 6. **恢复控制文件**: ```sql RMAN> RESTORE CONTROLFILE FROM '/oradata/bak/stb.ctl'; ``` 7. **挂载数据库**: ```sql RMAN> ALTER DATABASE MOUNT; ``` 8. **注册备份文件**: ```sql RMAN> CATALOG START WITH '/oradata/bak/'; ``` 9. **恢复数据文件**: ```sql RMAN> RECOVER DATABASE NOREDO; ``` 10. **重新启动备库的日志应用**: ```sql ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; ``` ### 4. 日志与归档状态检查 - 检查主库的归档日志状态: ```sql SELECT SEQUENCE#, APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE# ASC; ``` - 检查备库的归档日志状态: ```sql SELECT SEQUENCE#, APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE# ASC; ``` ### 5. 监控和维护 - 设置定时任务清理老旧归档日志。 - 修改 `control_file_record_keep_time` 为 14,确保控制文件能够记录更多的日志信息。 ```sql ALTER SYSTEM SET control_file_record_keep_time=14; ``` ### 6. 定时删除归档 ```bash #!/bin/bash $ORACLE_HOME/bin/rman log=/oradata/rman/deleteArch.log <<EOF CONNECT TARGET / RUN { CROSSCHECK ARCHIVELOG ALL; DELETE NOPROMPT OBSOLETE; DELETE FORCE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; } EXIT; ``` 添加定时任务至 crontab: ```bash 0 1 * * * sh /oradata/rman/deletearch.sh ```
上一篇:
关于授权
下一篇:
用户权限
0
赞
3 人读过
新浪微博
微信
腾讯微博
QQ空间
人人网