ITPub博客

首页 > 数据库 > Oracle > SG之恢复目录

SG之恢复目录

原创 Oracle 作者:outdo 时间:2006-11-10 17:38:31 0 删除 编辑

恢复目录是一个创建在不同数据库下的一个对象。他包含了从目标数据库控制文件获取的RMAN元数据。RMAN将目标数据库的数据库结构、归档日志文件、备份集和数据文件的备份等信息传递给恢复目录。

[@more@]

恢复目录是一个创建在不同数据库下的一个对象。他包含了从目标数据库控制文件获取的RMAN元数据。RMAN将目标数据库的数据库结构、归档日志文件、备份集和数据文件的备份等信息传递给恢复目录。
RMAN会自动维护恢复目录。如以下情况:
1,注册目标数据库;2,与目标数据库控制文件信息同步;3,将数据库返回到前一个incarnation(相对restlogs来说的);4,修改备份信息;
5,执行备份、还原、恢复操作。
相对控制文件,在恢复目录下还可以使用report、list命令并且可以保存长久RMAN配置以及执行脚本。
在同一个恢复目录还可以保存多个目标数据库信息。保存同一目标数据库的多个incarnation(相对restlogs来说的),以及历史元数据。并且可以汇报(report)非当前的信息。
创建恢复目录
首先在恢复目录数据库(建议和目标数据库不同)创建用户与表空间(一般用RMAN)并且将RECOVERY_CATALOG_OWNER角色授予RMAN(还必须是这角色,在多权限也不行)登陆、注册。
d:gogo>rman target /@lab catalog outdo/outdo@lab2

恢复管理器: 版本9.2.0.1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.

连接到目标数据库: LAB (DBID=1040803242)
连接到恢复目录数据库
未安装恢复目录
RMAN> create catalog;

恢复目录已创建

RMAN> register database;

注册在恢复目录中的数据库
正在启动全部恢复目录的 resync
完成全部 resync
恢复目录维护的一些命令
RMAN自动的检测同步恢复目录与控制文件。其中包括全同步、部分同步(full、partial)或者用人为用RESYNC CATALOG命令。
给命令最好至少nday执行一次。N为CONTROL_FILE_RECORD_KEEP_TIME值。或者在数据库增减重定位数据文件、表空间时。RESYNC命令主要更新以下记录日志的历史记录、归档记录、备份的历史记录、物理文
RESET DATABASE
这个命令是针对resetlogs说的。在resetlogs后,日志的序列号别重新归零,这样数据库就形成了不同的化身(INCARNATION),为了避免归档或日志文件应用到不同的incarnation上(拥有相同的日志序列号)。RMAN用reset database命令来保存incarnation信息。如:
RMAN> reset database;
database registered in recovery catalog
starting full resync of recovery catalog
full resync complete

RMAN> list incarnation of database;

数据库 Incarnations 列表
DB 关键字 Inc 关键字 DB 名 DB ID CUR 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 15 LAB 1040803242 NO 190578 13-6月 -06
1 2 LAB 1040803242 YES 663824730 08-11月-06
RMAN> reset database to incarnation 15;

数据库重设为恢复目录中的原型 15
Recovery Catalog Reporting
REPORT 用于分析汇报RMAN恢复目录中数据库备份信息。LIST命令用于显示恢复目录中的备份集、拷贝等状态信息。在恢复目录有相关视图。也可以直接用SQL语句查询视图得到相关信息。如:
RC_DATABASE RC_DATAFILE RC_STORED_SCRIPT(这个视图记录了保存在目录里的脚本。)RC_STORED_SCRIPT_LINE RC_TABLESPACE
创建脚本:
RMAN> create script Level0Backup {
backup
incremental level 0
format ‘/u01/db01/backup/%d_%s_%p’
fileperset 5
(database include current controlfile);
sql ‘alter system archive log current';}

RMAN > run {execute script Level0Backup;}
RMAN> REPLACE SCRIPT Level0Backup{

fileperset 3

}
RMAN> DELETE SCRIPT Level0Backup;
RMAN> PRINT SCRIPT Level0Backup;
恢复目录数据库的倍份与恢复:
恢复目录同样需要作好备份。我们可以采取全库备份。不管是用RMAN还有用用户管理模式。如果在归档模式下,可以采用备份存储恢复目录的表空间、数据文件。或者用EXP直接导出整个数据库或者恢复目录的用户(一般是RMAN)的schema。如果恢复目录损坏需要恢复的话。我们就可以直接从备份中复原。或者从DMP文件中导入。
恢复目录下的一些命令:
delete [noprompt] [expired]|[obsolete] backup|copy of ...
catalog 1,将数据、控制、归档日志文件增加到恢复目录及控制文件中。2,在恢复目录下记录数据文件的0级增量备份。3,将OS下的备份文件记录登记在恢复目录中。 catalog ;
catalog datafilecopy '...' level 0; catalog datafilecopy '...' tag='tag_name';
list copy [of] [database][tablespace system][controlfile][archivelog all];
list backup [of] [database][tablespace system][controlfile]; list backup [summary][backupset 28][tag 'tag_name'][like '/ora/%'];
report need backup days =14 [incremental= 1] database;
report need backup days =7 [incremental= 3]tablespace system;
report need backup days =21 [incremental= 7] datafile 'C:oracleoradataLABTEMP01.DBF';
report unrecoverable database[tablespace system];
report schema;
FROM http://outdo.itpub.net/

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/167606/viewspace-876878/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 请多指教
请登录后发表评论 登录
全部评论

注册时间:2009-03-10

  • 博文量
    30
  • 访问量
    775691