Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1117990
  • 博文数量: 231
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 2662
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-03 16:35
个人简介

学无止境

文章分类

全部博文(231)

文章存档

2014年(7)

2013年(103)

2011年(11)

2010年(53)

2009年(57)

分类: Oracle

2013-09-16 15:06:10

一、备份方法:
 
1.全库备份
  全库备份为full备份,在RMAN中检查备份集的TYPE为Full,full备份不能作为增量备份的level 0使用。
  可以就使用以下命令备份,备份包括数据文件、控制文件、归档日志文件,控制文件中还包含spfile文件。
 
  RMAN> backup database;
 
2.表空间备份
 
  RMAN> backup tablespace ldytbs; 
 
3.数据文件备份
 
  RMAN> backup datafile 1,2,3,4 format 'g:\oracle\backup\ora10g_dbbak_%d_%s_%p.dbf';
 
4.控制文件备份
  控制文件的备份,通常在database的SQL下完成,例如:
  SQL> alter database backup controlfile to 'g:\oracle\backup\ora10g_ctlbak.ctl';
 
  在rman中可以使用以下命令备份当前控制文件:
  RMAN> backup current controlfile;
 
5.归档日志备份
  备份归档日志,并删除已备份的归档日志。
  需要注意的是,如果全备的时间点和归档备份时间点相同,脚本里又包含delete input,那么其中一个任务在备份归档日志时,可能会由于归档日志被删除了报错,
   
  RMAN> backup format 'g:\oracle\backup\archbak_%d_%s_%p' archivelog all delete input;
 
6.增量备份
  增量备份有2种,差异增量和累计增量,通常使用累计增量,虽然这种备份方式需要更多的空间。
 
  增量备份具有level,首次备份需要具有一个level 0的备份,level 0并不同于full备份。
  RMAN> backup incremental level 0 cumulative database;
 
  基于level 0的备份可以有1级备份,基于1级备份可以有2级备份
  RMAN> backup incremental level 1 cumulative database;
 
  在RMAN中检查备份集的TYPE为Incr。
 
  增量备份时,如果数据库有新加入的数据文件或表空间,需要再进行一次level 0备份,否则会找不到新增文件的parent备份。
 
7.copy备份
  通常copy备份用于数据文件或数据库的迁移,例如文件系统迁移到ASM上。
  有2个命令:backup as copy和copy。copy只能用于数据文件或归档日志,backup as copy可以用于包括表空间和数据库。
  例如迁移表空间到
 
  先将表空间脱机
  RMAN> sql 'alter tablespace ldytbs offline';
 
  使用backup as copy命令迁移
  RMAN> backup as copy tablespace ldytbs format 'E:\oracle\oradata\ldytbs_%U';
 
  切换表空间
  RMAN> switch tablespace ldytbs to copy;
 
  将表空间online
  RMAN> sql 'alter tablespace ldytbs online';
 
  类似的方法可以用于datafile,但是需要注意的是做datafile迁移之后,在online之前需要对datafile进行recover,例如:
  SQL> recover datafile 5;
 
8.检查备份以及删除过期备份
  检查备份
  RMAN> crosscheck backup;
 
  检查归档日志,如果发生了归档日志没有备份就被删除了,需要让rman检查归档日志,才能正常备份。
  RMAN> crosscheck archivelog all;
 
  删除不存在的备份
  RMAN> delete noprompt expired backup;
 
  删除过期备份
  RMAN> delete noprompt obsolete;
 
 
二、备份策略
 
备份策略需要根据实际情况来制定,这里只关注RMAN热备的情况,通常需要关心的内容有:
1.什么时候备份
2.用何种方式备份
3.备份保留时间周期
4.备份到哪里
5.如何避免单点故障造成没有备份
6.备份的IO速率
...
等等内容
 
一般是写好备份脚本,通过crontab任务自动备份,在大型系统中,使用第三方备份软件进行备份调度。
 
三、备份脚本
以下是一个备份脚本的例子:
 
run{
   allocate channel d1 type disk;
   allocate channel d2 type disk;
   allocate channel d3 type disk;
   allocate channel d4 type disk;
   backup
   incremental level 0 cumulative
   filesperset 2
   format '/orabak/db_level0_%d_%s_%p'
   tag 'level 0'
   (database include current controlfile);
   sql 'alter system archive log current';
   backup
   filesperset 5
   format '/orabak/arch_%d_%s_%p'
   (archivelog all delete input);
   release channel d1;
   release channel d2;
   release channel d3;
   release channel d4;
   }
crosscheck backup;
crosscheck archivelog all;
delete noprompt expired backup;
delete noprompt obsolete;

 

阅读(660) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~