zoukankan      html  css  js  c++  java
  • rman的catalog命令

    在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; 
    这里需要注意将备份的log和备份文件一起保存下来,不然就不知道哪些文件属于哪个备份集,恢复的时候就要多浪费些时间啦。但是注意这些命令是有限制的,其中的一个限制是不能注册备份文件到不同的数据库:
    You cannot use CATALOG to catalog a file that belongs to a different database.
    也就是说你至少还需要原数据库的控制文件。
    否则就会出现类似如下的错误:
    $ rman target /
    Recovery Manager: Release 10.2.0.1.0 - Production on Thu May 22 01:02:56 2008
    Copyright (c) 1982, 2005, 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 Size                    1218992 bytes
    Variable Size                92276304 bytes
    Database Buffers            188743680 bytes
    Redo Buffers                  2973696 bytes
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of startup command at 05/22/2008 01:03:08
    RMAN-06189: current DBID 1490303982 does not match target mounted database (1492784050)
    当然我们可以通过先修改一个恢复数据库的DBID,然后再来注册这个备份集。如何修改DBID可以参考
    http://www.software8.co/shujuku/oracle/2471.html
     
    如有错误,欢迎指正
    邮箱:czmcj@163.com
  • 相关阅读:
    海量文档查同或聚类问题 Locality Sensitive Hash 算法
    Python之道 (大道至简)
    Inside C++ object Model构造函数
    Python标准模块logging
    Inside C++ object Model多态(ObjectOriented)
    应用Notepad++的正则表达式完成较复杂替换的一个小例子
    维护FAST可用的一些命令 持续更新
    SharePoint List的List Template ID明细表
    SharePoint 2010 Incoming Email怎么配?
    使用ContentDeploymentJob.AddQuickDeployObject的时候, 请注意第三个参数一定要使用Server Relative URL
  • 原文地址:https://www.cnblogs.com/wwwroot/p/2850855.html
Copyright © 2011-2022 走看看