重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 154|回复: 0
打印 上一主题 下一主题

[备份恢复] 在备库执行恢复或者切换到副本时发生 RMAN-06094 或 RMAN-06571 错误

[复制链接]
跳转到指定楼层
楼主
发表于 2026-3-8 12:54:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
概要

尝试从增量备份恢复数据库时,遇到如下错误:

RMAN> RECOVER DATABASE NOREDO;

Starting recover at 18 JUL 2011 18:12:10
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=267 devtype=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 07/18/2011 18:12:11
RMAN-06094: datafile 1 must be restored


此外,显示没有可用的数据文件副本可供使用。


RMAN> SWITCH DATABASE TO COPY;

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of switch to copy command at 07/18/2011 17:10:17
RMAN-06571: datafile 1 does not have recoverable copy


Note: 尽管上述报告了datafile 1的错误,但这不一定是问题的全部。为了避免为每个受影响的文件打印错误消息(想象一下一个拥有五千个或更多数据文件的系统!),RMAN 只显示了第一个出现问题的文件。



解决方案

通常情况下,数据文件实际上存在于磁盘上,只是它们存放在不同的目录或使用不同的文件名。因此,您只需要告诉RMAN它们的实际位置即可。

1) 如果所有数据文件都位于相同的目录路径下,您可以使用一个命令将它们全部目录化(catalog):

RMAN> catalog start with 'full pathname';

否则,分别 catalog 每个数据文件:

RMAN> catalog datafilecopy 'full path filename';


2) 确认RMAN已经知道新目录化(catalog)的数据文件副本:

RMAN> list copy of database;

RMAN> list copy of datafile n;
eg.
RMAN> list copy of datafile 1;

OR to list multiple copies:
RMAN> list copy of datafile 1,2,3,4;


3) 将数据文件重命名为磁盘上正确的副本

a) 如果所有数据文件都需要重命名:

RMAN> switch database to copy;

b) 如果只需要重命名单个数据文件:

RMAN> switch datafile n to copy;
eg.
RMAN> switch datafile 1 to copy;

c) 如果需要重命名一组数据文件:

RMAN> switch datafile n,o,p,q to copy;
eg.
RMAN> switch datafile 1,2,3,4 to copy;

d) 重命名特定的副本:

RMAN> run {
switch datafile 'old datafile path and name' to datafilecopy 'new datafile path and name';
}

4) 现在控制文件应该反映出磁盘上真实的数据文件,包括它们的实际大小和名称。


RMAN> report schema;

File Size(MB) Tablespace           RB segs Datafile Name
---- -------- ----------------- ------- ------------------------
1    500       SYSTEM           ***     <ASM PATH>/system.423.756840583
2    200       UNDOTBS1         ***     <ASM PATH>/undotbs1.258.667475049
3    350       SYSAUX           ***     <ASM PATH>/sysaux.257.756996199
4    545       USERS            ***     <ASM PATH>/users.259.756996261


原因

主库与备库数据文件路径不同的情况下,重建备库控制文件会遇到 RMAN-06094 或 RMAN-06571 错误。

基于主库的控制文件重新创建备库控制文件,v$datafile 视图以及 RMAN 的 REPORT SCHEMA 命令显示主库的数据文件名,而不是备库的数据文件名。


RMAN> report schema;

请看 SIZE 和 NAME 列。SIZE 为 0 很好的说明了该文件实际不存在该磁盘上

例如:
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- ----------------- ------- ------------------------
1    0         SYSTEM            ***     <ASM PATH>/system.423.756840583
2    0         UNDOTBS1          ***     <ASM PATH>/undotbs1.258.667475049
3    0         SYSAUX            ***     <ASM PATH>/sysaux.257.667475049
4    0         USERS             ***     <ASM PATH>/users.259.667475049

ASMCMD> ls -lt <PATH>/system.423.756840583
asmcmd: entry '<DB_NAME>' does not exist in directory '<DISKGROUP>/'

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2026-4-17 21:12 , Processed in 0.224808 second(s), 21 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表