1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > oracle catalog命令 使用Catalog命令注册RMAN备份集

oracle catalog命令 使用Catalog命令注册RMAN备份集

时间:2024-01-07 16:20:43

相关推荐

oracle catalog命令 使用Catalog命令注册RMAN备份集

使用Catalog命令注册RMAN备份集

只有原库数据文件的RMAN备份集(此备份集不包含控制文件,log,参数文件等等,单纯只有数据库的所有数据文件的备份集),主库废了(可以理解为机房所在地地震了).

现在要求在新实例中恢复这个RMAN的数据文件备份集.

1.原数据库的表空间名称,数据文件结构\名称\数量--未知.

2.原数据文件的FILE#也许是不连续的.(可能5号文件后6.7.8都空闲,然后是9号数据文件.)

这样说吧,可以说你对原数据库一无所知.

我试过dbms_backup_restore抽取RMAN备份集中数据文件,再建立控制文件,确实可以恢复但,这个方法有局限性,不够完美.

抽取的时候需要指明FILE#,NEW_DATAFILE_NAME...

可以说抽取是尝试的抽取.FILE#=5,6,7这样一个一个的尝试,这就对多数据文件的库很麻烦,而且文件号不连续会报错停止抽取动作.下一条抽取动作就无法继续执行.要手动关闭通道后再次抽取.

迫切的想知道如何查出RMAN的备份集中的数据文件信息.

想知道如何收集全建立出支持这个备份集的控制文件.

我们知道Oracle10g丰富了catalog命令,使用这个命令,可以将RMAN的备份集注册到控制文件(或者目录数据库中)

类似的一系列命令有:

CATALOG ARCHIVELOG '?/oradata/archive1_30.dbf', '?/oradata/archive1_31.dbf',

'?/oradata/archive1_32.dbf';

CATALOG DATAFILECOPY '?/oradata/users01.bak' LEVEL 0;

CATALOG START WITH '/tmp/arch_logs';

CATALOG RECOVERY AREA NOPROMPT;

CATALOG BACKUPPIECE '?/oradata/01dmsbj4_1_1.bcp';

但是注意这些命令是有限制的,其中的一个限制是不能注册备份文件到不同的数据库:

You cannot use CATALOG to catalog a file that belongs to a different database.

也就是说你至少还需要原数据库的控制文件。

否则就会出现类似如下的错误:

[oracle@standby ~]$ rman target /

Recovery Manager: Release 10.2.0.1.0 - Production on Thu May 22 01:02:56

Copyright (c) 1982, , Oracle. All rights reserved.

connected to target database (not started)

RMAN> set dbid=1490303982

executing command: SET DBID

RMAN> startup mount;

Oracle instance started

database mounted

Total System Global Area 285212672 bytes

Fixed Size1218992 bytes

Variable Size 92276304 bytes

Database Buffers188743680 bytes

Redo Buffers 2973696 bytes

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of startup command at 05/22/ 01:03:08

RMAN-06189: current DBID 1490303982 does not match target mounted database (1492784050)

是否没有办法呢?当然是有的,我们可以先修改一个恢复数据库的DBID,然后再来注册这个备份集。

修改DBID可以使用之前我曾经写过的,Oracle10g 的 dbms_backup_restore 包。

修改之后就可以用来注册了,看看我注册一个种子数据库备份集的过程:

C:\>rman target /

恢复管理器: Release 10.2.0.3.0 - Production on 星期三 5月 21 22:25:34

Copyright (c) 1982, , Oracle. All rights reserved.

已连接到目标数据库 (未启动)

RMAN> startup mount;

Oracle 实例已启动

数据库已装载

系统全局区域总计 251658240 字节

Fixed Size1289988 字节

Variable Size 171966716 字节

Database Buffers 75497472 字节

Redo Buffers 2904064 字节

RMAN> catalog start with 'd:\obak';

使用目标数据库控制文件替代恢复目录

搜索与样式 d:\obak 匹配的所有文件

数据库未知文件的列表

=====================================

文件名: D:\obak\FULL0520

文件名: D:\obak\Seed_Database.dfb

是否确实要将上述文件列入目录 (输入 YES 或 NO)? YES

正在编制文件目录...

目录编制完毕

已列入目录的文件的列表

=======================

文件名: D:\obak\Seed_Database.dfb

未列入目录的文件的列表

=======================================

文件名: D:\obak\FULL0520

RMAN-07518: 原因: 外部数据库文件 DBID: 1052376487 数据库名: EEYGLE

RMAN> list backup;

备份集列表

===================

BS 关键字 类型 LV 大小

------- ---- -- ----------

2 Full 91.88M

备份集 2 中的数据文件列表

文件 LV 类型 Ckp SCN Ckp 时间 名称

---- -- ---- ---------- ---------- ----

1 Full 538267 19-11月-06 D:\ORACLE\ORADATA\EYGLE\DATAFILE\O1_MF_SYSTEM_3V7YLH8S_.DBF

2 Full 538267 19-11月-06 D:\ORACLE\ORADATA\EYGLE\DATAFILE\O1_MF_UNDOTBS1_3V7YLHHN_.DBF

3 Full 538267 19-11月-06 D:\ORACLE\ORADATA\EYGLE\DATAFILE\O1_MF_SYSAUX_3V7YLH9R_.DBF

4 Full 538267 19-11月-06 D:\ORACLE\ORADATA\EYGLE\DATAFILE\O1_MF_USERS_3V7YLHJ3_.DBF

备份集 副本号 1 属于备份集 2

设备类型 经过时间 完成时间 压缩标记

----------- ------------ ---------- ---------- ---

DISK 00:00:00 21-5月 -08 YES

备份集 2 副本号 1的备份段列表

BP 关键字 Pc# 状态 段名称

------- --- ----------- ----------

1 1 AVAILABLE D:\OBAK\SEED_DATABASE.DFB

备份集 副本号 2 属于备份集 2

设备类型 经过时间 完成时间 压缩标记

----------- ------------ ---------- ---------- ---

DISK 00:00:00 21-5月 -08 YES

备份集 2 副本号 2的备份段列表

BP 关键字 Pc# 状态 段名称

------- --- ----------- ----------

2 1 AVAILABLE D:\OBAK\SEED_DATABASE.DFB

RMAN>

By eygle on -06-03 12:39 |

Comments (1) |

Backup&Recovery | 1920 |

1 Comment

但是注意这些命令是有限制的,其中的一个限制是不能注册备份文件到不同的数据库:

You cannot use CATALOG to catalog a file that belongs to a different database.

这里提到的限制,除了这个之外还有那些呢?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。