RMAN 还原数据库,出现错误

时间:2023-01-21 20:44:37
RT

最近在学习 Data Guard 的配置,参考的网址文章为 http://singlelove1983.blog.163.com/blog/static/50849047200711129933605/#

将 主服务器 的数据库备份后,在 备用服务器 上进行还原,但是出现问题,不知道如何解决,于是前来请教大家,具体的相关操作如下所示:

1、主服务器的相关操作:
1.1、
在主库用RMAN做一个全备“CMD> rman nocatalog target 'sys/admin@orcl as sysdba'”,然后是命令:

RMAN> run{
2> allocate channel c1 type disk;
3> backup format 'd:\db_bakup\full%u_%s_%p' database
4> include current controlfile;
5> sql 'alter system archive log current';
6> backup filesperset 10 archivelog all format='d:\db_bakup\log%u_%s.bak';
7> release channel c1;
8> }

1.2、
在主库创建备用服务器控制文件“SQL> alter database create standby controlfile as 'D:\db_bakup\standby.ctl';”,然后 将备份出来的 standby.ctl复制到 备用服务器 的相应位置(复制为文件"...\...\control0?.ctl")

2、备用服务器的 还原数据库的操作:
SQL> conn / as sysdba
SQL> startup nomount pfile='D:\oracle\product\10.2.0\admin\orcl\pfile\init.ora.071114'
SQL> alter database mount standby database;
CMD> rman nocatalog target /
RMAN> restore database;

这里“restore database;”的时候出错了... 

个人感觉是 rman 的format参数“%u”/“%s”/“%p”,它们的值 不匹配造成的,但是 不知道 如何在还原的时候 手动的指定这些值... 请问如何手动的指定这些值???(“%s:备份集号。”,“%p:备份集中备份片段的编号,从1开始”)

网上搜了,也没搜出什么能够解决的方法...基本就是,尝试各种文章中的操作,但是都没有解决问题...

求大家指点一下,如何解决 这里的数据库还原出错的问题?任何 书/文章/链接 都可以,谢谢大家。

个人感觉,网上的文章,基本就是 让你各种命令敲一遍,基本没有讲解,对于菜鸟水平的我来说,看起来云里雾里的,一知半解。有没有 主讲 Oracle的各种备份操作的 和 RMAN操作 的资料??各种 书/文章/链接 都可以,请大家推荐一下,先谢谢了。


“restore database;”操作的 输出信息:

RMAN> restore database;

启动 restore 于 05-11月-16
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=10 设备类型=DISK

通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00007 还原到 F:\APP\ORACLEINSTALL\ORADATA\ORCL\PDBOR
CL\SYSTEM01.DBF
通道 ORA_DISK_1: 将数据文件 00008 还原到 F:\APP\ORACLEINSTALL\ORADATA\ORCL\PDBOR
CL\SYSAUX01.DBF
通道 ORA_DISK_1: 将数据文件 00009 还原到 F:\APP\ORACLEINSTALL\ORADATA\ORCL\PDBOR
CL\SAMPLE_SCHEMA_USERS01.DBF
通道 ORA_DISK_1: 将数据文件 00010 还原到 F:\APP\ORACLEINSTALL\ORADATA\ORCL\PDBOR
CL\EXAMPLE01.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:\DB_BAKUP\FULL08RK2FKT_8_1
通道 ORA_DISK_1: ORA-19870: 还原备份片段 D:\DB_BAKUP\FULL08RK2FKT_8_1 时出错
ORA-19505: 无法识别文件"D:\DB_BAKUP\FULL08RK2FKT_8_1"
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 5) 拒绝访问。

通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00001 还原到 F:\APP\ORACLEINSTALL\ORADATA\ORCL\SYSTE
M01.DBF
通道 ORA_DISK_1: 将数据文件 00003 还原到 F:\APP\ORACLEINSTALL\ORADATA\ORCL\SYSAU
X01.DBF
通道 ORA_DISK_1: 将数据文件 00005 还原到 F:\APP\ORACLEINSTALL\ORADATA\ORCL\UNDOT
BS01.DBF
通道 ORA_DISK_1: 将数据文件 00006 还原到 F:\APP\ORACLEINSTALL\ORADATA\ORCL\USERS
01.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:\DB_BAKUP\FULL09RK2FNJ_9_1
通道 ORA_DISK_1: ORA-19870: 还原备份片段 D:\DB_BAKUP\FULL09RK2FNJ_9_1 时出错
ORA-19505: 无法识别文件"D:\DB_BAKUP\FULL09RK2FNJ_9_1"
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 5) 拒绝访问。

通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00002 还原到 F:\APP\ORACLEINSTALL\ORADATA\ORCL\PDBSE
ED\SYSTEM01.DBF
通道 ORA_DISK_1: 将数据文件 00004 还原到 F:\APP\ORACLEINSTALL\ORADATA\ORCL\PDBSE
ED\SYSAUX01.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:\DB_BAKUP\FULL0ARK2FQT_10_1
通道 ORA_DISK_1: ORA-19870: 还原备份片段 D:\DB_BAKUP\FULL0ARK2FQT_10_1 时出错
ORA-19505: 无法识别文件"D:\DB_BAKUP\FULL0ARK2FQT_10_1"
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 5) 拒绝访问。

故障转移到上一个备份

通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00007 还原到 F:\APP\ORACLEINSTALL\ORADATA\ORCL\PDBOR
CL\SYSTEM01.DBF
通道 ORA_DISK_1: 将数据文件 00008 还原到 F:\APP\ORACLEINSTALL\ORADATA\ORCL\PDBOR
CL\SYSAUX01.DBF
通道 ORA_DISK_1: 将数据文件 00009 还原到 F:\APP\ORACLEINSTALL\ORADATA\ORCL\PDBOR
CL\SAMPLE_SCHEMA_USERS01.DBF
通道 ORA_DISK_1: 将数据文件 00010 还原到 F:\APP\ORACLEINSTALL\ORADATA\ORCL\PDBOR
CL\EXAMPLE01.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:\DB_BAKUP\FULL01RK0CHT_1_1
通道 ORA_DISK_1: ORA-19870: 还原备份片段 D:\DB_BAKUP\FULL01RK0CHT_1_1 时出错
ORA-19505: 无法识别文件"D:\DB_BAKUP\FULL01RK0CHT_1_1"
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。

通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00001 还原到 F:\APP\ORACLEINSTALL\ORADATA\ORCL\SYSTE
M01.DBF
通道 ORA_DISK_1: 将数据文件 00003 还原到 F:\APP\ORACLEINSTALL\ORADATA\ORCL\SYSAU
X01.DBF
通道 ORA_DISK_1: 将数据文件 00005 还原到 F:\APP\ORACLEINSTALL\ORADATA\ORCL\UNDOT
BS01.DBF
通道 ORA_DISK_1: 将数据文件 00006 还原到 F:\APP\ORACLEINSTALL\ORADATA\ORCL\USERS
01.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:\DB_BAKUP\FULL02RK0CK9_2_1
通道 ORA_DISK_1: ORA-19870: 还原备份片段 D:\DB_BAKUP\FULL02RK0CK9_2_1 时出错
ORA-19505: 无法识别文件"D:\DB_BAKUP\FULL02RK0CK9_2_1"
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。

通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00002 还原到 F:\APP\ORACLEINSTALL\ORADATA\ORCL\PDBSE
ED\SYSTEM01.DBF
通道 ORA_DISK_1: 将数据文件 00004 还原到 F:\APP\ORACLEINSTALL\ORADATA\ORCL\PDBSE
ED\SYSAUX01.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:\DB_BAKUP\FULL03RK0CNJ_3_1
通道 ORA_DISK_1: ORA-19870: 还原备份片段 D:\DB_BAKUP\FULL03RK0CNJ_3_1 时出错
ORA-19505: 无法识别文件"D:\DB_BAKUP\FULL03RK0CNJ_3_1"
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。

故障转移到上一个备份

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 11/05/2016 22:15:17 上) 失败
RMAN-06026: 有些目标没有找到 - 终止还原
RMAN-06023: 没有找到数据文件10的副本来还原
RMAN-06023: 没有找到数据文件9的副本来还原
RMAN-06023: 没有找到数据文件8的副本来还原
RMAN-06023: 没有找到数据文件7的副本来还原
RMAN-06023: 没有找到数据文件6的副本来还原
RMAN-06023: 没有找到数据文件5的副本来还原
RMAN-06023: 没有找到数据文件4的副本来还原
RMAN-06023: 没有找到数据文件3的副本来还原
RMAN-06023: 没有找到数据文件2的副本来还原
RMAN-06023: 没有找到数据文件1的副本来还原

RMAN>

6 个解决方案

#1


出错的备份集都在吗?
尝试指定具体文件试试

#2


引用 1 楼 sych888 的回复:
出错的备份集都在吗?
尝试指定具体文件试试

备份出来的文件都在,分别为:
   D:\db_bakup\FULL08RK2FKT_8_1、
   D:\db_bakup\FULL09RK2FNJ_9_1、
   D:\db_bakup\FULL0ARK2FQT_10_1、
   D:\db_bakup\FULL0BRK2FSK_11_1、
   D:\db_bakup\LOG0CRK2FSU_12.BAK

单个文件的恢复,出错了,信息如下:

RMAN> restore datafile 'D:\db_bakup\FULL08RK2FKT_8_1';

启动 restore 于 06-11月-16
使用通道 ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 11/06/2016 16:26:42 上) 失败
RMAN-20201: 在恢复目录中未找到数据文件
RMAN-06010: 在查看数据文件时出错: D:\DB_BAKUP\FULL08RK2FKT_8_1

RMAN> list backup of datafile 8;


备份集列表
===================


BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
1       Full    766.70M    DISK        00:01:15     03-11月-16
        BP 关键字: 1   状态: AVAILABLE  已压缩: NO  标记: TAG20161103T151403
段名:D:\DB_BAKUP\FULL01RK0CHT_1_1
  备份集 1 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  8       Full 2456070    03-11月-16 F:\APP\ORACLEINSTALL\ORADATA\ORCL\PDBORCL\S
YSAUX01.DBF

BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
8       Full    766.70M    DISK        00:01:22     04-11月-16
        BP 关键字: 8   状态: AVAILABLE  已压缩: NO  标记: TAG20161104T101909
段名:D:\DB_BAKUP\FULL08RK2FKT_8_1
  备份集 8 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  8       Full 2456070    03-11月-16 F:\APP\ORACLEINSTALL\ORADATA\ORCL\PDBORCL\S
YSAUX01.DBF

RMAN>


这种情况怎么弄?

#3


SQL>restore database format '备份文件'

#4


引用 3 楼 wmxcn2000 的回复:
SQL>restore database format '备份文件'



SQL> restore database format 'D:\db_bakup\FULL08RK2FKT_8_1'
SP2-0734: 未知的命令开头 "restore da..." - 忽略了剩余的行。
SQL>



RMAN> restore database format 'D:\db_bakup\FULL08RK2FKT_8_1'

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: 分析输入命令时出错
RMAN-01009: 语法错误: 找到 "format": 应为: "allforeign, archivelog, backupset, c
hannel, check, controlfile, database, database root, datafile, device, dump, for
ce, foreign, from, from service, high, pluggable, preview, primary, root, sectio
n, skip readonly, skip, spfile, standby, tablespace, to restore point, until res
tore point, until, using, validate, double-quoted-string, identifier, single-quo
ted-string, (, ;" 中的一个
RMAN-01007: 在第 1 行第 18 列, 文件: standard input

RMAN>


貌似,不行啊... 怎么弄?

#5


写错了,把 format 换成 from 

#6


1、确认目标库相关备份文件是存在的
2、确认文件是正确有效的(原来搞过一次,找了好长时间问题,最后重新ftp一次就好了)
3、确认磁盘空间 

#1


出错的备份集都在吗?
尝试指定具体文件试试

#2


引用 1 楼 sych888 的回复:
出错的备份集都在吗?
尝试指定具体文件试试

备份出来的文件都在,分别为:
   D:\db_bakup\FULL08RK2FKT_8_1、
   D:\db_bakup\FULL09RK2FNJ_9_1、
   D:\db_bakup\FULL0ARK2FQT_10_1、
   D:\db_bakup\FULL0BRK2FSK_11_1、
   D:\db_bakup\LOG0CRK2FSU_12.BAK

单个文件的恢复,出错了,信息如下:

RMAN> restore datafile 'D:\db_bakup\FULL08RK2FKT_8_1';

启动 restore 于 06-11月-16
使用通道 ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 11/06/2016 16:26:42 上) 失败
RMAN-20201: 在恢复目录中未找到数据文件
RMAN-06010: 在查看数据文件时出错: D:\DB_BAKUP\FULL08RK2FKT_8_1

RMAN> list backup of datafile 8;


备份集列表
===================


BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
1       Full    766.70M    DISK        00:01:15     03-11月-16
        BP 关键字: 1   状态: AVAILABLE  已压缩: NO  标记: TAG20161103T151403
段名:D:\DB_BAKUP\FULL01RK0CHT_1_1
  备份集 1 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  8       Full 2456070    03-11月-16 F:\APP\ORACLEINSTALL\ORADATA\ORCL\PDBORCL\S
YSAUX01.DBF

BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
8       Full    766.70M    DISK        00:01:22     04-11月-16
        BP 关键字: 8   状态: AVAILABLE  已压缩: NO  标记: TAG20161104T101909
段名:D:\DB_BAKUP\FULL08RK2FKT_8_1
  备份集 8 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  8       Full 2456070    03-11月-16 F:\APP\ORACLEINSTALL\ORADATA\ORCL\PDBORCL\S
YSAUX01.DBF

RMAN>


这种情况怎么弄?

#3


SQL>restore database format '备份文件'

#4


引用 3 楼 wmxcn2000 的回复:
SQL>restore database format '备份文件'



SQL> restore database format 'D:\db_bakup\FULL08RK2FKT_8_1'
SP2-0734: 未知的命令开头 "restore da..." - 忽略了剩余的行。
SQL>



RMAN> restore database format 'D:\db_bakup\FULL08RK2FKT_8_1'

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: 分析输入命令时出错
RMAN-01009: 语法错误: 找到 "format": 应为: "allforeign, archivelog, backupset, c
hannel, check, controlfile, database, database root, datafile, device, dump, for
ce, foreign, from, from service, high, pluggable, preview, primary, root, sectio
n, skip readonly, skip, spfile, standby, tablespace, to restore point, until res
tore point, until, using, validate, double-quoted-string, identifier, single-quo
ted-string, (, ;" 中的一个
RMAN-01007: 在第 1 行第 18 列, 文件: standard input

RMAN>


貌似,不行啊... 怎么弄?

#5


写错了,把 format 换成 from 

#6


1、确认目标库相关备份文件是存在的
2、确认文件是正确有效的(原来搞过一次,找了好长时间问题,最后重新ftp一次就好了)
3、确认磁盘空间