rman之控制文件的自动备份和还原

rman之控制文件的自动备份和还原
对完整恢复来说,应总是可以使用当前控制文件。唯一不可能使用的情形是所有副本丢失--通常因为它没有被

多路复用或一个副本损坏。数据库严重依赖于控制文件;如果控制文件受损,它将崩溃。RMAN的情况更糟:存

储所有详细信息的RMAN存储库存储在控制文件中,因此,控制文件受损的话,数据库将崩溃--但RMAN不能还原

它,因为所需的信息不可用。有两种方法可以解决这个递归式问题:使用RMAN目录数据库或启用autobackup
功能。
由于控制文件不仅对运行的数据库很重要,对于RMAN同样很重要,所以可启用自动备份。
如下:
(1)配置rman参数
RMAN> configure controlfile autobackup on;

旧的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
已成功存储新的 RMAN 配置参数

执行此命令后,每个rman操作最终将会把控制文件和spfile自动备份到一个在已知位置存储的备份集中。如果
有必要,而数据库处于非加载模式,可使用以下命令:
restore controlfile from autobackup
该命令指示rman访问已知位置的已知文件名,从最近的自动备份中提取控制文件。还原到spfile中指定的位置


然后使用还原的控制文件加载数据库,RMAN将可以定位所需的备份来还原数据库的其余部分。知名位置将在闪

回恢复区中(如果已经启用的话)。知名文件名基于DBID:DBID(10位数字)应是最基本文档的一部分,在用RMAN
连接数据库时应显示。它还在v$database视图中以DBID列显示。
  如果spfile也丢失了,用哑初始化文件启动实例:只有一个参数(DB_NAME)的pfile.然后用rman连接。发出

以下命令:替换成自己的dbid:
set dbid=1234567890;
restore spfile from autobackup;
spfile的还原将在默认位置执行(unix是在$ORACLE_HOME/dbs,windows是%ORACLE_HOME%\database).然后
以非加载模式启动实例,这将使用还原的spfile并还原控制文件,加载控制文件,然后rman将访问其存储库,

并定位和还原数据文件备份。
(注:restore controlfile from autobackup命令和restore spfile from autobackup命令可以在非加载模式

下执行。所有其他rman命令只可以在加载或打开模式下执行).
练习:
(1)使用rman连接数据库
C:\Documents and Settings\Administrator>rman target /
(2)确认自动备份未启用

RMAN> show controlfile autobackup
2> ;

使用目标数据库控制文件替代恢复目录
db_unique_name 为 ORCL 的数据库的 RMAN 配置参数为:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
(3)查看是否启用

RMAN> show all;

db_unique_name 为 ORCL 的数据库的 RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
(4)执行备份操作
RMAN> backup datafile 1;
(5)列出控制文件和spfile文件自动备份的位置
RMAN> list backup of controlfile
RMAN> list backup of spfile;
(6)如下脚本用于执行数据库的完整还原和恢复(假设一切都丢失了)

RMAN> run{
2> startup nomount pfile=dummy.pfile;
3> set dbid=1234567890;
4> restore spfile from autobackup;
5> shutdown abort;
6> startup nomount;
7> restore controlfile from autobackup;
8> alter database mount;
9> restore database;
10> recover database;
11> alter database open resetlogs;
12> }
其中,
第2行:使用只有一个参数(db_name)的哑参数文件启动实例
第3行:告诉rman所使用的数据库的dbid
第4行:根据默认名称和位置值,从最近的自动备份集中提取spfile
第5行:终止实例,因为(用哑pfile启动)它不再有用
第6行:使用还原的spfile启动实例
第7行:从最近的自动备份中提取控制文件
第8行:加载控制文件
第9行:还原所有数据
第10行:通过应用增量备份以及归档日志文件和联机日志文件执行完整恢复
第11行:打开数据库并重新初始化重做日志文件,在还原控制文件后总是需要resetlogs;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值