ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle的RMAN总结继续,具体实践开始

Oracle的RMAN总结继续,具体实践开始

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

接着昨天RMAN的进度,今天开始接触一些备份恢复命令的操作练习

RMAN可以备份的数据库相关文件包括
数据文件,控制文件,服务器参数文件,归档日志
还可以备份经由RMAN创建Oracle备份,比如副本拷贝,备份集

无法通过RMAN备份的文件包括
网络配置文件(tns、监听等),密码文件,Oracle软件本身文件
以及外部表依赖的非Oracle数据文件
这些文件需要利用其它手段(如系统拷贝)进行备份

RMAN备份出的文件有两种形式
副本拷贝,在RMAN中进行文件原样拷贝
此方式于系统拷贝类似,但有记录备份的信息,统一定义文件名等额外功能

备份集,将数据库相关文件集合为一个或多个备份片文件
要注意,备份归档日志要独立于备份其它数据库文件
两者不能包含于同一备份集中
RMAN会将完全成功的备份集信息记录下来
含多备份片的备份集不能用单一备份片来进行恢复操作
RMAN进行备份集备份时,可以跳过数据文件中未使用的数据块
达到减少备份消耗时间和备份集大小的目的
另外,RMAN还可利用压缩算法对备份内容进行压缩

对于数据文件的备份,RMAN还可分别进行全备份和增量备份
全备份没有什么可说的
增量备份是备份自一个具体时间点(通常为上一次增量备份的时间)之后改变的数据块
对于有些带有nologging参数的数据库对象
它们的改变可能没有记录在redo log中,这样归档日志将不会包含它们的改变
但增量备份可以捕获到这些数据库对象的改变并进行备份

先来看最简单的全数据库备份操作
RMAN提示符下,BACKUP DATABASE;
这种方式会生成数据库的备份集,存放位置和数据库一些参数有关
因为个人的test数据库使用了闪回区,所以默认会存放在那里
并由RMAN自动分配一个TAG标记号
但自己的闪回相关设置参数(大小)不足矣存放生成的备份集
所以最后生成完被强制回收了,成为一个残缺、无效的备份集
没关系,实践操作就按着这个发展走~
用下面命令可以查看当前target数据库备份信息
list backup;
list(很多命令都如此)可以查看很多RMAN对象
比如copy(副本拷贝),archivelog(归档日志)等
实践过程中可能不会将各个方面都练习一遍,尽量多弄些吧~
因为个人开始进入RMAN的时候,没有使用catalog
所以RMAN会使用target的控制文件来显示、记录备份信息(备份时有提示)
通过list命令查看到刚才生成的备份集
TAG为TAG20090114T114222
这里可以直接通过delete命令指定删除此备份集
delete backup tag='TAG20090114T114222';
RMAN会寻找符合条件的对象,并提示是否要删除(yes or no)

继续做试验,刚刚由backup生成了备份集
再来看看副本拷贝,这次备份的对象是归档日志
并且同时加上备份路径和文件名格式的设置
backup as copy archivelog sequence 28
format='/home/oracle/dumptest/arc_test_%U';
as copy是将备份类型定为副本开北
archinvlog是备份归档日志
sequence=28是通过list命令查看到的要备份的归档日志序号
format是定义路径(/home/oracle/dumptest/)
和文件名(arc_test_%U,arc_test_为固定字符串,关于%U昨天做过相关总结)
这里要注意,用户要具有定义的路径的写权限
dumptest是个人在之前总结数据泵的时候建立的directory对象,并赋过权限
如果此处用了没有权限的目录,备份将会失败
ORA-27037: unable to obtain file status
Linux Error: 13: Permission denied

继续以这些备份进行其它实践,来看看验证和清除
list archivelog all;查看全部归档日志
刚才as copy的副本拷贝就包含在此列表中
(备份集信息用list backup查看)
通过系统命令删刚刚那个副本
这时list archivelog all;的信息还是一样
但实际上有一个是无效的,需要做适当处理
先使用crosscheck命令来进行验证
crosscheck archivelog all;
其中一个归档日志验证会失败
validation failed for archived log
archive log filename='文件名' recid=13 stamp=676126413
在使用crosscheck命令后
可以用list expired archivelog all;查看都有哪些无效、过期归档日志
而删除的方法可以是刚才那种指定某个条件比如指定key为10的
delete archivelog 10;
或者可以删除所有过期归档日志
delete expired archinvelog all;

嗯,先练习这些,该休息休息,补充能量去了 ^_^

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

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

注册时间:2009-01-02

  • 博文量
    134
  • 访问量
    116852