ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle RMAN练习继续,简单涉及Catalog

Oracle RMAN练习继续,简单涉及Catalog

原创 Linux操作系统 作者:louloueva 时间:2009-01-18 18:18:10 0 删除 编辑

这几天做RMAN的练习,都是用控制文件来记录备份信息的,今天把catalog用上
使用catalog进入RMAN,命令如下
[oracle@host ~]$ rman target sys/sys@test catalog rman/rman@cat
先来list一下
RMAN> list backup;
new incarnation of database registered in recovery catalog
starting full resync of recovery catalog
full resync complete
RMAN会利用控制文件自动重新同步数据库的恢复信息,保证catalog的最有效性
还可以在RMAN下手动重新同步信息
RMAN> RESYNC CATALOG; #完全同步

有时候,我们可能用了非RMAN工具来备份数据库文件
比如,用系统拷贝执行了一个users表空间备份
SQL> ALTER TABLESPACE users BEGIN BACKUP;
(用系统拷贝命令将users表空间对应数据文件拷贝到别处)
SQL> ALTER TABLESPACE users END BACKUP;
这时,RMAN的catalog中并没有记录到相关信息
我们可以通过下面命令来为catalog添加备份信息
RMAN> CATALOG DATAFILECOPY '/home/oracle/dumptest/users01.dbf';
cataloged datafile copy
datafile copy filename=/home/oracle/dumptest/users01.dbf...
这时候再用RMAN的list copy命令就可以查看到刚刚添加的副本拷贝信息了
同理,catalog命令还可以添加其它备份信息
添加多个备份片信息
RMAN> CATALOG BACKUPPIECE '/09dtq55d_1_2', '/0bdtqdou_1_1';
还可以添加某个目录下所有未被RMAN记录的相关文件信息
RMAN> CATALOG START WITH '/home/oracle/oradata/test/';
发现有未记录的文件,会提示
searching for all files that match the pattern /home/oracle/oradata/test/
List of Files Unknown to the Database
Do you really want to catalog the above files (enter YES or NO)?
如果其中有不符合的文件会报错
RMAN-07517: Reason: The file header is corrupted

既然有添加信息,就有删除信息的命令
如果已经存在于catalog的备份信息是无效的(文件不存在或损坏等)
我们可以用CHANGE UNCATALOG命令来清除相关信息
试验一下,先将datafile 4(users01)做一个副本拷贝
RMAN> backup as copy datafile 4;
此时用系统命令删除此副本文件
RMAN> list datafilecopy all;
此时还可看见相关信息(对应key为647),执行下面命令
RMAN> change datafilecopy 647 uncatalog;
再次list,此时key为647的副本拷贝信息已经清除了
在这里,要简单说下和备份信息相关的一些视图
如果使用了catalog,这些信息会分别存放在catalog和target的相关视图中
catalog中的视图,是以RC_开头,target的视图,是V$开头
因为涉及视图相当多(得几十个),每个视图还有许多字段
用到什么说什么吧,就先说刚才的数据文件副本拷贝
catalog下是RC_DATAFILE_COPY,简单说几个字段
DB_KEY,区分target用的数据库主键
DBINC_KEY,数据库化身(incarnation)主键
DB_NAME,数据库名
CDF_KEY,数据文件副本拷贝的主键
RECID和STAMP,从target的V$DATAFILE_COPY得来,在target控制文件中具有唯一性
NAME,文件名,含路径
TAG,副本拷贝的tag名
FILE#,数据文件绝对文件号
BLOCKS,数据文件副本的块数
BLOCK_SIZE,块大小,可利用blocks和block_size计算数据文件副本大小
COMPLETION_TIME,副本拷贝创建完成时间
STATUS,副本状态,包括
A可用(available),U不可用(unavailable),X过期(expired),D删除(deleted)

target下是V$DATAFILE_COPY,信息来自控制文件
catalog下是RC_DATAFILE_COPY,简单说几个字段
不包含DB_KEY,DBINC_KEY,DB_NAME,CDF_KEY
其它主要字段都有

再简单记录一些命令
列出包含归档日志的备份信息
RMAN>list backup of archivelog all;
of参数可以用来限定查看的类型
比如,list backup of datafile 1;
是列举包含数据文件1号(一般为system数据文件)的备份

还原按照SCN号还原归档日志
RMAN>restore archivelog from scn 898815 until scn 902871;

刚才提了个新名词INCARNATION,中文个人暂翻译为化身(可能不太合适)
数据库resetlogs后,会成为新的开始,以前的备份将不再有用
在resetlogs后,也会生成新的incarnation,数据库有相关视图记录incarnation历史信息
还会把数据库日志序号重新设置为1,并分配新的SCN
当前化身下通过执行resetlogs生成新化身,当前化身就称为父化身(parent incarnation)
父化身和父化身的父化身,成为当前化身的祖化身(ancestor incarnations)
由一个祖化身产生两个新化身,相互间成为同胞化身(sibling incarnations)
每个化身如果有各自的备份,相互之间是无法用来恢复的,称为孤备份(Orphaned Backups)
化身在一些复杂的恢复情况下十分有用,今天先简单了解,以后应用到再说
查看数据库incarnation命令
RMAN>LIST INCARNATION;
结果如下
List of Database Incarnations
DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1       8       TEST     1969292173       PARENT  1          30-JUN-05
(中间略)
1       69      TEST     1969292173       CURRENT 903961     18-JAN-09
如果catalog中注册了多个target,可以用database参数进行区分
RMAN> LIST INCARNATION OF DATABASE 'TEST';

今天到此结束,休闲时间开始 ^_^

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

请登录后发表评论 登录
全部评论

注册时间:2009-01-02

  • 博文量
    134
  • 访问量
    118973