Oracle—RMAN备份(一)

2014-11-24 17:50:54 · 作者: · 浏览: 4

一.RMAN备份相关概念


1.RMAN备份中表空间不需要处于backup模式下,它备份数据文件,归档日志文件,控制文件,spfile和备份集片,但不备份联机重做日志文件,临时文件和口令文件。


2.备份集由备份片组成,可以包含一个或者多个备份片。备份片可以在操作系统中直接看到,其大小和操作系统有关,32位的操作系统最大文件是4G。


3.数据文件备份集支持完整和增量备份,即只备份使用过的块,而归档日志文件备份集不支持这个。


4.在RMAN下的常用查看命令,show all查看备份的默认参数,report schema查看数据表空间和数据文件的信息,list back查看已经备份文件的信息。


在show all中有个默认控制文件备份问题,控制文件备份默认是不备份的,


CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default


如果备份系统表空间的文件,那么无论是off还是on状态,控制文件自动备份。


5.常用参数,maxpiecesize规定备份片的大小,maxsetsize备份集的大小,filesperset表示一个备份集中所含有的输入文件个数,%U=%u_%p_%c生成唯一的名称。


6.在RMAN备份中,可以把备份文件分成两块,一块是数据文件备份集,另一块是归档日志文件,控制文件和spfile在一起的压缩打包文件。


推荐阅读:


二.RMAN备份的方式


1.非归档模式下,必须进行一致性的备份,执行RMAN一致性备份要求数据库处于加载模式下,并且干净的关闭,备份可以是完整的或者增量的。


2.在归档模式下,可以一致性备份也可以非一致性备份,在非一致性备份中必须备份归档日志文件,备份可以是全部的,局部的,完整的或者增量的。


备份可以分为全部的,局部的,完整的或者增量的备份,只有RMAN可以实现增量备份。


三.RMAN备份各种文件


(一)备份数据文件


Report schema可以看到各种表空间和数据文件等的信息。


RMAN> report schema;


Report of database schema for database with db_unique_name WILSON


List of Permanent Datafiles


===========================


File Size(MB) Tablespace RB segs Datafile Name


---- -------- -------------------- ------- ------------------------


1 760 SYSTEM *** /u01/oradata/wilson/system01.dbf


2 580 SYSAUX *** /u01/oradata/wilson/sysaux01.dbf


3 135 UNDOTBS1 *** /u01/oradata/wilson/undotbs01.dbf


4 28 USERS *** /u01/oradata/wilson/users01.dbf


5 100 EXAMPLE *** /u01/oradata/wilson/example01.dbf


6 20 PAUL *** /u01/oradata/wilson/paul01.dbf


7 20 SUN *** /u01/oradata/wilson/sun01.dbf


8 2 SMALLUNDO *** /u01/oradata/wilson/smallundo1.dbf


9 100 ASSM *** /u01/oradata/wilson/assm_1.dbf


10 100 MSSM *** /u01/oradata/wilson/mssm_1dbf


11 10 PAUL *** /u01/oradata/wilson/paul02.dbf


List of Temporary Files


=======================


File Size(MB) Tablespace Maxsize(MB) Tempfile Name


---- -------- -------------------- ----------- --------------------


1 29 TEMP 32767 /u01/oradata/wilson/temp01.dbf


2 100 MYTEMP 100 /u01/oradata/wilson/mytemp01.dbf


或者在sql*plus下也可以看到


SQL> select file#,name from v$datafile;


FILE# NAME


---------- -----------------------------------


1 /u01/oradata/wilson/system01.dbf


2 /u01/oradata/wilson/sysaux01.dbf


3 /u01/oradata/wilson/undotbs01.dbf


4 /u01/oradata/wilson/users01.dbf


5 /u01/oradata/wilson/example01.dbf


6 /u01/oradata/wilson/paul01.dbf


7 /u01/oradata/wilson/sun01.dbf


8 /u01/oradata/wilson/smallundo1.dbf


9 /u01/oradata/wilson/assm_1.dbf


10 /u01/oradata/wilson/mssm_1dbf


11 /u01/oradata/wilson/paul02.dbf


11 rows selected.


使用下面的命令都可以备份成功,


RMAN> backup datafile 4 format='/u01/backup/md_%U';


或者


RMAN> backup datafile '/u01/oradata/wilson/users01.dbf' format='/u01/backup/md_%U';


Starting backup at 23-AUG-13


using channel ORA_DISK_1


channel ORA_DISK_1: starting full datafile backup set


channel ORA_DISK_1: specifying datafile(s) in backup set


input datafile file number=00004 name=/u01/oradata/wilson/users01.dbf


channel ORA_DISK_1: starting piece 1 at 23-AUG-13


channel ORA_DISK_1: finished piece 1 at 23-AUG-13


piece handle=/u01/backup/md_1hoi1t5t_1_1 tag=TAG20130823T202948 comment=NONE


channel ORA_DISK_1: backup set com