如何理解catalog命令

这篇文章给大家介绍如何理解catalog命令,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联基于成都重庆香港及美国等地区分布式IDC机房数据中心构建的电信大带宽,联通大带宽,移动大带宽,多线BGP大带宽租用,是为众多客户提供专业服务器托管报价,主机托管价格性价比高,为金融证券行业服务器托管,ai人工智能服务器托管提供bgp线路100M独享,G口带宽及机柜租用的专业成都idc公司。

使用catalog进入RMAN,命令如下
[oracle@host ~]$ rman targetsys/sys@testcatalogrman/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>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';

copy 多一份备份

RMAN>  backup as copy copy of database from tag='TAG20120310T095833' format '/oradata/ora10/backup_%f.bk';

 

关于如何理解catalog命令就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

新闻名称:如何理解catalog命令
文章转载:https://www.cdcxhl.com/article34/phosse.html

成都网站建设公司_创新互联,为您提供网站内链定制网站商城网站搜索引擎优化服务器托管静态网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网页设计公司