ITPub博客

首页 > 数据库 > Oracle > rman备份-(1) 利用备份级恢复数据文件和控制文件

rman备份-(1) 利用备份级恢复数据文件和控制文件

原创 Oracle 作者:dotaddjj 时间:2011-08-17 20:39:48 0 删除 编辑

这段时间一直在练手rman恢复,由于之前对os下用户热备份的原理比较了解,陆陆续续看eygle的书然后动手,慢慢的了解rman基本的原理,还是比较有成就感的。

热备份的原理是利用备份集restore(修复)数据库中数据文件 控制文件,然后通过归档日志,redo log中记载的全部数据库信息recover(恢复)重组数据文件,其中关键的有checkpoint scn等知识点。

下面实际晒一下这段时间rman练手细节

首先此时通过rman做了一个数据库的全备份

Rman>run{

Allocate channel d1 tpye disk;

Backup database tag=ashuang0817;

}

如果是用控制文件做恢复目录,应该也必要把rman中关于控制文件的自动备份开启

Rman>configure controlfile autobackup on

默认的是关闭的,由于是测试数据库,数据文件容量不是很大,就用目标数据库的控制文件代替恢复目录了。

开启控制文件自动备份后,rman的备份信息会记录在控制文件中,这个写操作又会触发控制文件的自动备份,所以上面的全库备份会带来控制文件和spfile文件的自动备份,默认的存储位置在闪回区中。全库备份的应该是oracle_base /flash_recovery_areatestbackupset,

控制文件自动备份默认存储在oracle_base /flash_recovery_areatestautobackup,Test是测试数据库的db_name。

此时我们拥有一个全库的备份集,控制文件和spfile文件。

1 数据文件os上删除,坏块等

Shutdown immediate

Os上删除数据文件rm掉所有数据文件

Cmd>rman target /

Rman>Startup mount

Rman>Restore database

修复数据库的所有数据文件

Rman>recover database

恢复数据库

Rman>alter database open

2 数据文件和控制文件一起在os上删除了

Shutdown immediate

Os上删除数据文件rm掉所有数据文件和控制文件

Cmd>rman target /

Rman>Startup nomount

Rman>restore controlfile to ‘oracle_baseoradatatestcontrol01.ctl’ from ‘’

需要制定备份集,不然oracle无法得知离我们最近的备份,或者指定db_id

Rman>alter database mount;

Rman>Restore database

Rman>recover database

Rman>alter database open resetlogs

由于是利用备份的控制文件来恢复数据库的,需要指定resetlogs来打开数据库,当然不完全恢复也就是丢失了当前日志文件组,重建控制文件指定resetlogs都需要以resetlogs打开数据库。

当然以上两种情况数据库都必须在归档模式下,如果数据库不在归档模式,那非常的可怕,最简单的例如redo log 1中记录了demp的表的数据信息,此时由于日志切换,redo log 1被覆盖了,虽然数据块已经写入数据文件。例如此时服务器硬件问题,磁盘坏掉,只能用冷备份来恢复数据库,但是无法利用archivelog来恢复你的demp表了,日志被覆盖,备份点到实例失败的信息是无法恢复的,所以没有归档的数据库很危险。

由于rman涉及的内容比较多,控制文件快照,rac的rman备份 恢复,指定catalog恢复目录,增量备份全备份啊。后面整理了继续更新!

[@more@]

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

请登录后发表评论 登录
全部评论
  • 博文量
    220
  • 访问量
    1662977