日期:2014-05-16 浏览次数:20495 次
8、备份演练
A:backup incremental level=0 database;--增利增量级别0的全库备份(级别从0开始最大不超过4)
B:backup incremental level=1 datafile? 'c:\oracle\oradata\user01.dbf';--建立数据文件user01.dbf的级别1备份
C:backup incremental level=1 tablespace users;--建立users表空间的级别为1的备份
D:backup incremental level=1 cumulative database;--以cumulative增量备份的方式创建数据库备份(cumulative累计备份 differential差异备份;rman默认的是差异备份)
E:增量备份不一定就能减少恢复和备份的时间。9i版本及之前的一样的慢,10g及以后增加新的叫块跟踪的特性才块一些。启用块跟踪后只有块有修改的才备份。可以通过以下语句查看:
select status from v$block_change_tracking;--查看是否启用了块跟踪
alter database enable block change tracking usering file'/location/trk_filename';--启用块跟踪策略
alter database disable block change tracking;--禁用块跟踪策略
F:rman提供两种备份策略:基于时间和基于冗余数据的备份保留策略
基于时间的备份:
就是你希望数据库最早能恢复到几天前。比如7,那么rnam将自动保留恢复到7天内的任何备份文件,超过7天的rnam将置为无用,可以通过delete obsolete命令删除;
configure retention policy to recovery window of n days;--设置基于时间的备份保留策略,n为大于0的正整数;
基于冗余数量的备份保留策略:
就是保留最多多少份备份集,超过一定数量了rman就将废气最旧的文件。
configure retention redundancy n;--n为大于0的正整数,比如n=3,那rman侦测到超过3个的备份,那么久将删除最老的那一个。
Dba也可以将数据库设置为没有备份策略
configure retention policy to none;
?
G:复合备份:说白点就是一次生成几个备份文件
backup copies 3 database;--生成3分全库的备份 存放在默认目录(默认目录是那?)
backup copise 2 tablespace users,sales;--生成users sales两个表空间的备份集 生成2份
注意一下三条命令:
configure default device type to disk;--使用默认通道
configure datafile backup copies for device type disk to 2;--数据文件备份 每次都备份2个
configure archivelog backup copies for device type disk to 2;--归档日志文件备份 每次也是备份两个
以上三条命令的组合就是这个意思,以后每次执行备份数据文件和归档日志文件时,如果没有显示的指定通道,那么都将备份2份。
?
H:生成备份集标签
也就是为备份集取个别名而已
backup tablespace users tag my_users_tag;--为users表空间做备份,并取个别名叫my_users_tag,注意tag后面的字符不能超过30个
?
I:指定备份集大小
rnam{
allocate channel c1 device type disk maxpiecesize=10m fomat 'c:\oracle\backup\bak_%U';
backup tablespace system;
}
指定使用通c1(c1是什么通道?)备份,每个备份片段文件不超过10m。执行玩后使用:
list backup of tablespace system;
查看表空间的备份,其中1为自动创建的控制备份文件。
备份集的大小也可以指定:backup database maxsetsie=100m;(如果超过了100m文件将备份失败,因此实际中还是指定备份片段的大小较多)
?
?
?
J:编写rman批处理文件
-----------------------------------1
rman{
? configure retention policy to recovery window of 14 days;
? configure controlfile autobackup on;
? configure controlfile autobackup format for device type disk to 'f:\oracle\backup\%F';
? allocate chanle c1 device type disk format 'f:\oracle\backup\bak_%u';
? backup database skip inaccessable;--跳过不可读的文件。因为在offline状态的数据文件只要存在于磁盘上就仍然有可能被读取,但是可能有的文件已经被删除或已经移除到其他的地方去了。skip offline表示跳过offline的文件。skip readonly表示跳过readonly的文件。
??? plus archivelog filesperset 20--filesperset表示一个备份集中最多能包含的文件个数。
??? delete all input;
??? release chanle c1;
}
allocate channel for mintenance device type disk;--分配通道用的。
crosscheck backupset;
delete noprompt obsolete;
-----------------------------------1
将1中的保存至f:\oracle\scipt\backup\db_full_mySid.rman
?
---------------------------------------2
set oracle_sid=mySid;
rman target / log f:\oracle\backup\logs\bak_%date;~0,10%. log comdfile=f:\oracle\scipt\backup\db_full_mySid.rman
----------------------------------------2
将2中的保存至mybackup.bat
然后再控制面板中的人物计划中添加任务计划,运行mybackup.bat就可以了。
?
K:0-4共5个级别(0最大,5最小)
差异备份:寻找最近的大于等于本身级别的备份,并从那个时候起开始备份。
累计增量备份:寻在最近的大于本身级别的备份,并从哪个时候起开始备份。(0级别备份除外。)