rman的一点简单总结 1

rman的一些简单总结

1:控制文件自动备份

用 show all 查看当前的配置,配置控制文件自动备份的命令如下:

RMAN> configure controlfile autobackup on;

在开启了控制文件自动备份之后,oracle会在数据库结构改变时(增加、删除表空间及数据文件等),自动备份控制文件及spfile文件

当我们手动创建一个tt表空间后,此时可以在 alert.log 中找到如下信息

+++++++++++++++++++++++++++++++

Control autobackup written to DISK device
    handle 'C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\WIN10G\AUTOBACKUP\2012_11_01\O1_MF_S_798220671_894BVZ89_.BKP'
Completed: create tablespace TT datafile 'C:\ORADATA\WIN10G\tt.dbf' size 100m

++++++++++++++++++++++++++++++++


在这里要注意,如果你的数据库版本是oracle 10g ,并且开启了 闪回恢复区,那么控制文件的备份保存在自动备份的恢复目录中,
目录位置为 $ORACLE_HOME\flash_recovery_area\WIN10G\AUTOBACKUP  ;  如果数据库是9i、或者10g没有开启闪回恢复区,那么
自动备份保存在 $ORACLE_HOME\database下 ,这些信息仍可以从alert.log 中得到

++++++++++++++++++++++++++++++++++

Fri Nov 02 09:00:01 2012
Starting control autobackup
Control autobackup written to DISK device
    handle 'C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\C-605134997-20121102-00'

+++++++++++++++++++++++++++++++++


在这里可以看到 自动备份的控制文件名为 C-605134997-20121102-0  (其中 C 为控制文件、605134997为dbid、20121102为时间戳、00为序号)

因为这些信息存储在控制文件中,可以将控制文件转储出来看下控制文件是如何记录这部分信息的

SQL> alter session set events 'immediate trace name controlf level 8';

然后根据pid、spid 到 udump中找到相关trace文件。



2:从自动备份恢复spfile和控制文件(以下测试db为10.2.0.1)


在数据库的三种文件完好的情况下,不论db处于哪种状态,通常都是先恢复到一个临时目录下,以免覆盖当前文件,确认后再转移到缺省目录下面;
如果自动备份有多个,恢复的时候使用最新的autobackup


RMAN> restore spfile to 'C:\spfile.ora' from autobackup;

RMAN> restore controlfile  to 'C:\control01.ctl' from autobackup;


如果db都不能nomount 了,那么此时可以临时编辑一个pfile文件启动实例,然后进行spfile恢复,
restore命令后加上备份集的名称



3:rmnan的备份策略


基于冗余(redundancy):定义一个数字n用于标示rman为每个文件保留至少n个不同的备份

RMAN> configure retention policy to redundancy 1;



基于恢复窗口(recovery window):定义一个时间长度,以便在定义的时间长度内可以进行基于任何时间点的恢复

RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 14 DAYS;


当备份超过了备份策略设置的规则时,备份会标记为废弃(obsolete),但这只是在rman目录中标记为丢弃(obsolete),
其状态依然为 available;  要查看标记为obsolete状态的备份,可以使用 report obsolete 命令 ,只有使用
delete  obsolete 才会真正删除丢弃的备份





RMAN> report obsolete;

RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 1
已废弃的备份和副本报表
类型                 关键字 完成时间           文件名/句柄
-------------------- ------ ------------------ --------------------
控制文件副本     3      02-11月-12         C:\CONTROL01.CTL
备份集               22     02-11月-12
备份段       22     02-11月-12         C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_A
REA\WIN10G\BACKUPSET\2012_11_02\O1_MF_NNNDF_TAG20121102T105520_896FJS89_.BKP
备份集               23     02-11月-12
备份段       23     02-11月-12         C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_A
REA\WIN10G\AUTOBACKUP\2012_11_02\O1_MF_S_798288936_896FK8PG_.BKP



RMAN> delete noprompt obsolete;

RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 1

。。。。。。。。。。。。。。



如果想恢复某一个设置到默认状态,使用如下命令

RMAN> configure retention policy clear;




4:归档日志维护及crosscheck命令

当不小心手动删除某些备份后,rman将无法找到这些文件,但是这些备份的文件依然在rman的记录中存在,
因此需要使用crosscheck命令去磁盘上检查这些文件是否存在,如果不再存在,rman会将文件标记为
expired ,然后这些信息就可以被清除。



RMAN> crosscheck backup;

RMAN> delete expired backup;




RMAN> crosscheck archivelog all;

RMAN> delete noprompt expired archivelog all;



RMAN> list backup of archivelog from sequence 12;

RMAN> delete noprompt archivelog until sequence = 12;


RMAN> list backup of archivelog until  time 'sysdate-2';

RMAN> delete noprompt archivelog until time 'sysdate-1';


RMAN> list backupset of database tag='HOT_DB_BK_LEVEL0';


5:resetlogs 和 noresetlogs方式的含义


-- Below are two sets of SQL statements, each of which creates a new
-- control file and uses it to open the database. The first set opens
-- the database with the NORESETLOGS option and should be used only if
-- the current versions of all online logs are available. The second
-- set opens the database with the RESETLOGS option and should be used
-- if online logs are unavailable.



6:rman的镜像copy功能


rman镜像拷贝是单个数据文件、归档日志或控制文件的额外拷贝,不以rman的格式存储。

镜像拷贝的文件和执行操作系统级别拷贝的文件一样,以数据文件的固有格式存储,rman

进行重建或恢复时,可以使用镜像拷贝。


拷贝(copy)的控制文件是当前控制文件的一个原样副本,可以直接用于启动数据库,

而rman的控制文件备份则需要通过rman进行恢复使用。


当发出restore命令时,缺省的rman恢复一个数据文件或控制文件的镜像拷贝到原来的位置,

镜像拷贝优先于备份集被采用,因为使用备份集进行恢复时,会有额外的开销。并且,如果

需要使用镜像拷贝恢复数据文件或控制文件,无须把文件copy到原来的位置,rman中的switch命

令可以通知数据库使用当前位置的文件,这类似于alter  database rename file命令的功能 。



RMAN> backup current controlfile format 'C:\control%s.ctl';  //控制文件备份集


RMAN> backup as copy  current controlfile format 'C:\control%s.ctl';  // 控制文件镜像拷贝


使用镜像拷贝命令来备份整个数据库

RMAN> backup as copy tag 'win10g_copy' database;


也可以使用rman的镜像拷贝命令备份单个或多个数据文件


RMAN> copy datafile 6 to 'C:\tt_copy.dbf';


RMAN> run{
copy datafile 1 to 'C:\system01.dbf',
current controlfile to 'C:\control01.dbf',
datafile 6 to 'C:\tt01.dbf';
}
 


可以通过list copy命令显示数据库中的镜像拷贝,

如果不小心删除了镜像拷贝(copy),那么首先需要进行

RMAN> crosscheck copy;

RMAN> delete copy;



假设由于硬件故障导致数据文件tt.dbf损坏,这时需要在run中通过

set newname命令 指定文件恢复到不同的位置


RMAN> startup  mount

RMAN> run{
 set newname for datafile 6 to 'C:\oradata\tt.dbf';
 restore datafile 6;
 switch datafile all;
 recover datafile 6;
}

正在执行命令: SET NEWNAME

启动 restore 于 07-11月-12
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=157 devtype=DISK

通道 ORA_DISK_1: 正在恢复数据文件00006
输入数据文件副本 recid=24 stamp=798719925 文件名=C:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\WIN10G\DATAFILE\O1_MF_TT_89MLFN5C_.DBF
数据文件 00006 的恢复目标: C:\ORADATA\TT.DBF
通道 ORA_DISK_1: 已复制数据文件 00006 的数据文件副本
输出文件名=C:\ORADATA\TT.DBF recid=27 stamp=798721262
完成 restore 于 07-11月-12

数据文件 6 已转换成数据文件副本
输入数据文件副本 recid=28 stamp=798721264 文件名=C:\ORADATA\TT.DBF

启动 recover 于 07-11月-12
使用通道 ORA_DISK_1

正在开始介质的恢复
介质恢复完成, 用时: 00:00:00

完成 recover 于 07-11月-12

RMAN>

RMAN> alter database open;

数据库已打开




验证备份的有效性,可以使用

RMAN> restore validate database;

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

转载于:http://blog.itpub.net/24862808/viewspace-748532/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值