日期:2014-05-16  浏览次数:20485 次

oracle数据备份随笔(二)

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级别备份除外。)