Chinaunix首页 | 论坛 | 博客
  • 博客访问: 198792
  • 博文数量: 75
  • 博客积分: 2049
  • 博客等级: 大尉
  • 技术积分: 780
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-08 12:37
文章分类

全部博文(75)

文章存档

2011年(1)

2010年(9)

2009年(65)

我的朋友

分类: LINUX

2009-09-17 13:21:23

本文转自网络

Update:9i也有catalog命令,但是不能识别备份片,谢谢waityou81的指出。但是由于不支持备份片和整个目录扫描,使得9i的这个命令可能使用的频率大大降低。

要说10g出来也好几年了,10g rman的这个新命令应该有不少人已经知道了。我以为10g rman比起9i的最大改进,就是这个命令的增强。不过最近发现还是很多人不知道,甚至把它跟catalog database混为一谈。

做为一个Oracle DBA,对于官方文档应该是要相当熟悉才行,至少手头上应该放一份你产品库版本一致的文档备份,也不用书到用时方恨少,遇上网络如龟速,自己就要变成热锅 上的蚂蚁了。就算没有时间和精力通读所有文档,至少得清楚文档的结构,知道哪方面的问题去找哪几个文档,对吧。比如rman的命令语法不清楚了,就要去翻 翻《》,因为rman属于备份恢复工具,而名字里带reference的,基本上都是些命令语法的详细参考。

而对于一个新版本,浏览一遍每篇文章前面的新特性部分,也是快速掌握新版本的一个捷径,当然,这是建立在已经对老版本有一定认识的基础上的。很多人 喜欢问学习oracle看哪些书最好,当然有很多经典的书籍可以帮助你理解oracle,但是要熟练应对工作中的需要,官方文档还是必不可少的。

还不知道哪里可以下载官方文档的,去这里
还不知道哪里可以在线看官方文档的,去
还不知道什么是官方文档的,关掉电脑睡觉去

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

有了catalog命令,完全可以抛弃catalog database了。只是注意将备份的log和备份文件一起保存下来,不然就不知道哪些文件属于哪个备份集,恢复的时候就要多浪费些时间啦。

阅读(1373) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~