oracle catalog命令,catalog 命令

使用catalog进入RMAN,命令如下

[oracle@host ~]$ rman targetcatalog

先来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>backup as copy  database format '/oradata/backup_%u.BAK';

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';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值