RMAN CATALOG

简介: ------------------------------------------------------------------------------------------------------------- 转自 http://www.ningoo.net/html/2007/oracle10g_rman_catalog_command.html 要说10g出来也好几年了,10g rman的这个新命令应该有不少人已经知道了。

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

转自

http://www.ningoo.net/html/2007/oracle10g_rman_catalog_command.html

要说10g出来也好几年了,10g rman的这个新命令应该有不少人已经知道了。我以为10g rman比起9i的最大改进,就是这个命令的增强。不过最近发现还是很多人不知道,甚至把它跟catalog database混为一谈。

做为一个Oracle DBA,对于官方文档应该是要相当熟悉才行,至少手头上应该放一份你产品库版本一致的文档备份,也不用书到用时方恨少,遇上网络如龟速,自己就要变成热锅上的蚂蚁了。就算没有时间和精力通读所有文档,至少得清楚文档的结构,知道哪方面的问题去找哪几个文档,对吧。比如rman的命令语法不清楚了,就要去翻翻《Backup and Recovery Reference》,因为rman属于备份恢复工具,而名字里带reference的,基本上都是些命令语法的详细参考。

而对于一个新版本,浏览一遍每篇文章前面的新特性部分,也是快速掌握新版本的一个捷径,当然,这是建立在已经对老版本有一定认识的基础上的。很多人喜欢问学习oracle看哪些书最好,当然有很多经典的书籍可以帮助你理解oracle,但是要熟练应对工作中的需要,官方文档还是必不可少的。

还不知道哪里可以下载官方文档的,去这里
还不知道哪里可以在线看官方文档的,去这里
还不知道什么是官方文档的,关掉电脑睡觉去

在9i时代,如果在控制文件或者catalog数据库中的备份信息被覆盖或者清除,那么即使所有的备份文件都在,rman也无法简单的利用这些文件来做恢复了,必须得用些特别的方法才能办到,比如以前很多牛人写的使用dbms_backup_restore包从备份片中释放出数据文件,然后再使用手工方式做恢复。

但是实际上,oracle完全可以将恢复时需要的一些信息保存在备份文件的文件头中,如果控制文件或者catalog数据库中的信息丢失,再扫描一遍文件头,取出这些信息就可以了。10g中就是这么实现的,扫描这些文件头的工作就是由这个新的catalog命令来实现的。注意这是10g rman的一个命令,虽然和以前的catalog database的名字长得一样,可不是同一个东西。

catalog命令可以用来扫描备份片,文件拷贝(datafile or controlfile copy),也可以用来扫描归档日志,所以,只要你的备份还在,归档还在,即使catalog database崩溃,控制文件重建,照样可以用这些备份来做恢复。

扫描备份片

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

扫描归档日志

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

扫描数据文件拷贝,并且将其做为增量备份的level 0

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

扫描控制文件拷贝

CATALOG CONTROLFILECOPY 'controlfilecopy.ctl'

扫描整个目录,如果备份片或者归档日志文件太多,可以放到一个目录中,一次性扫描就行

CATALOG START WITH '/tmp/arch_logs';

扫描闪回恢复区

CATALOG RECOVERY AREA NOPROMPT;

有了catalog命令,完全可以抛弃catalog database了。只是注意将备份的log和备份文件一起保存下来,不然就不知道哪些文件属于哪个备份集,恢复的时候就要多浪费些时间啦。

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

以上截取于网络。

这个命令确实非常有用,有时候我们做异机RMAN恢复的时候可能用到他,比如我们RMAN拷贝到异机上的目录不一样的时候,就可以使用

RMAN> CATALOG BACKUPPIECE   "/oradata/rman2/db_7_1_20100304";

然后我们可以看到CONTROLFILE中信息多了

RMAN> list backup of database;


List of Backup Sets
===================

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
1       Full    515.16M    DISK        00:01:49     15-DEC-09     
        BP Key: 1   Status: AVAILABLE  Compressed: NO  Tag: TAG20091215T141913
        Piece Name: /home/oracle/product/db/dbs/01l0vkv2_1_1
  List of Datafiles in backup set 1
  File LV Type Ckp SCN    Ckp Time  Name
  ---- -- ---- ---------- --------- ----
  1       Full 461862     15-DEC-09 /oradata/oragims/gbmispro/system01.dbf
  2       Full 461862     15-DEC-09 /oradata/oragims/gbmispro/undotbs01.dbf
  3       Full 461862     15-DEC-09 /oradata/oragims/gbmispro/sysaux01.dbf
  4       Full 461862     15-DEC-09 /oradata/oragims/gbmispro/users01.dbf

BS Key  Type LV Size
------- ---- -- ----------
5       Full    740.84M
  List of Datafiles in backup set 5
  File LV Type Ckp SCN    Ckp Time  Name
  ---- -- ---- ---------- --------- ----
  1       Full 8342967    04-MAR-10 /oradata/oragims/gbmispro/system01.dbf
  2       Full 8342967    04-MAR-10 /oradata/oragims/gbmispro/undotbs01.dbf
  3       Full 8342967    04-MAR-10 /oradata/oragims/gbmispro/sysaux01.dbf
  4       Full 8342967    04-MAR-10 /oradata/oragims/gbmispro/users01.dbf

  Backup Set Copy #1 of backup set 5
  Device Type Elapsed Time Completion Time Compressed Tag
  ----------- ------------ --------------- ---------- ---
  DISK        00:04:46     04-MAR-10       YES        TAG20100304T101058

    List of Backup Pieces for backup set 5 Copy #1
    BP Key  Pc# Status      Piece Name
    ------- --- ----------- ----------
    5       1   AVAILABLE   /oradata/rman/db_7_1_20100304

  Backup Set Copy #2 of backup set 5
  Device Type Elapsed Time Completion Time Compressed Tag
  ----------- ------------ --------------- ---------- ---
  DISK        00:04:46     04-MAR-10       YES        TAG20100304T101058

    List of Backup Pieces for backup set 5 Copy #2
    BP Key  Pc# Status      Piece Name
    ------- --- ----------- ----------
    6       1   AVAILABLE   /oradata/rman2/db_7_1_20100304

这个时候再来进行RESTORE DATABASE


RMAN> restore database;

Starting restore at 04-MAR-10
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=156 devtype=DISK

skipping datafile 1; already restored to file /oradata/oragims/gbmispro/system01.dbf
skipping datafile 3; already restored to file /oradata/oragims/gbmispro/sysaux01.dbf
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00002 to /oradata/oragims/gbmispro/undotbs01.dbf
restoring datafile 00004 to /oradata/oragims/gbmispro/users01.dbf
channel ORA_DISK_1: reading from backup piece /oradata/rman/db_7_1_20100304

发现已经可以读取信息了

相关文章
|
Oracle 关系型数据库 数据库
RMAN Recovery Catalog 简介
RMAN Recovery Catalog的作用
106 0
|
SQL Oracle 关系型数据库
oracle rman备份与ORA-19504&ORA-27040&RMAN-030009
oracle rman备份路径错误导致备份报错ORA-19504&ORA-27040&RMAN-03009...
2035 0
|
关系型数据库 数据库 Oracle
|
Oracle 关系型数据库 数据库
|
关系型数据库 Oracle
ORACLE rman备份报错之RMAN-03009&ORA-19587&ORA-27072
          >                                                                       
1192 0
|
Oracle 关系型数据库
[20160712]logminer 与rman 删除archivelog
[20160712]logminer 与rman 删除archivelog.txt --昨天晚上使用logminer遇到的问题,主要后台的rman脚本正好删除需要的archivelog。
1485 0