备份恢复作业

shell 复制代码
备份恢复作业:
异机恢复recover database报如下错误:
archived log file name=/oradata/arch/1_237_1151011666.dbf thread=1 sequence=237
archived log file name=/oradata/arch/2_256_1151011666.dbf thread=2 sequence=256
unable to find archived log
archived log thread=1 sequence=238
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 11/21/2023 20:38:39
RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 238 and starting SCN of 21645880
已确认sequence 238是源库的当前redo。如果想要恢复至当前redo,如何进行下一步?
如果不要源库当前redo里的数据了,如果进行下一步使数据库可用?

根据错误信息,RMAN 无法找到需要恢复的归档日志 "archived log thread=1 sequence=238",因此需要先确认该归档日志位置是否丢失,如果是,则需要使用其他完整的备份文件或者从其他地方获取该归档日志文件。

如果您想要将数据库恢复至当前的 redo,可以尝试先使用"recover database until cancel" 命令,然后手动指定应从哪个媒介恢复。具体步骤如下:

rman 复制代码
运行命令 "recover database until cancel;"

输入 "change archivelog all crosscheck;"

等待 RMAN 执行完 crosscheck,之后输入 "delete expired archivelog all;",删除过期的归档日志文件,确保只剩下需要的备份文件

在恢复过程中,当 RMAN 要求输入日志文件时,请手动指定归档日志的位置和文件名,具体方法是输入命令 "list backup of archivelog all;" 查看备份集,并使用 "catalog" 命令将备份集中的归档日志文件目录列入控制文件中。

如果您不需要恢复源库当前 redo 里的数据,可以尝试跳过该归档日志文件,然后进行恢复数据库的操作。具体步骤如下:

确认源库当前 redo 里的数据可以舍弃,或者已经备份。

运行命令 "recover database skip until sequence 238 thread 1;"

RMAN 将跳过缺失的归档日志文件,并恢复其他可用的备份文件。

执行完 recover 命令后,使用命令 "alter database open resetlogs; " 使数据库可用。

相关推荐
fie88894 分钟前
MySQL:Prepared Statement 预处理语句
android·数据库·mysql
ErizJ4 分钟前
Redis高级|Redis单线程VS多线程(基础)
数据库·redis
蜗牛编程之路7 分钟前
RabbitMQ的使用--项目创建、五种工作模式、高级特性
数据库·分布式·rabbitmq
小鸡脚来咯10 分钟前
redis穿透、击穿、雪崩
数据库·redis·缓存
厚衣服_335 分钟前
第18篇:数据库中间件架构中的服务治理与限流熔断机制设计
数据库·中间件·架构
盖世英雄酱5813643 分钟前
🚀不改SQL,也能让SQL的执行效率提升100倍
java·数据库·后端
Xy9101 小时前
从代码角度拆解Apptrace的一键拉起
javascript·数据库
袋鼠云数栈3 小时前
国产数据库StarRocks在数栈轻量化数据开发的全流程实践
数据库
Listennnn3 小时前
Text2SQL、Text2API基础
数据库·人工智能
夜光小兔纸3 小时前
SQL Server 修改数据库名及物理数据文件名
运维·数据库·sql server