备份恢复作业

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; " 使数据库可用。

相关推荐
打鱼又晒网4 分钟前
【MySQL】数据库精细化讲解:内置函数知识穿透与深度学习解析
数据库·mysql
王小小鸭8 分钟前
【开发小技巧11】用经典报表实现badge list效果,根据回显内容用颜色加以区分
oracle·oracle apex
大白要努力!9 分钟前
android 使用SQLiteOpenHelper 如何优化数据库的性能
android·数据库·oracle
tatasix1 小时前
MySQL UPDATE语句执行链路解析
数据库·mysql
南城花随雪。1 小时前
硬盘(HDD)与固态硬盘(SSD)详细解读
数据库
儿时可乖了1 小时前
使用 Java 操作 SQLite 数据库
java·数据库·sqlite
懒是一种态度1 小时前
Golang 调用 mongodb 的函数
数据库·mongodb·golang
天海华兮1 小时前
mysql 去重 补全 取出重复 变量 函数 和存储过程
数据库·mysql
gma9992 小时前
Etcd 框架
数据库·etcd
爱吃青椒不爱吃西红柿‍️2 小时前
华为ASP与CSP是什么?
服务器·前端·数据库