rman备份中表空间不需要处于backup模式下,它备份数据文件,归档日志文件,控制文件,spfile和备份集片,但不备份联机重做日志文
一.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在一起的压缩打包文件。
推荐阅读:
oracle基础教程之通过rman复制数据库
rman备份策略制定参考内容
rman备份学习笔记
oracle数据库备份加密 rman加密
二.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 complete, elapsed time: 00:00:01
finished backup at 23-aug-13
(二)备份表空间
和备份数据文件一样,report schema来查看表空间的信息。只有命令上有点区别,如下
rman> backup tablespace sun format='/u01/backup/ts_%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=00007 name=/u01/oradata/wilson/sun01.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/ts_1ioi1tdv_1_1 tag=tag20130823t203407 comment=none
channel ora_disk_1: backup set complete, elapsed time: 00:00:01
finished backup at 23-aug-13
(三)备份控制文件
1.开启自动备份控制文件
rman> show all;
rman configuration parameters for database with db_unique_name wilson are:
configure controlfile autobackup off; # default
configure controlfile autobackup format for device type disk to '/u01/backup/ctl_%f';
。。。。。。
可以看到默认情况下是off的,修改为on,
rman> configure controlfile autobackup on;
new rman configuration parameters:
configure controlfile autobackup on;
new rman configuration parameters are successfully stored
再查看确认一下,
rman> show all;
rman configuration parameters for database with db_unique_name wilson are:
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to '/u01/backup/ctl_%f';
对于configure controlfile autobackup format for device type disk to '/u01/backup/ctl_%f';命令可以控制文件备份到所需要的地址上。
这个自动备份控制文件,会把spfile也一起备份的。
2.直接备份,但是其不会备份spfile,命令如下,
rman> backup current controlfile;
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
including current control file in backup set
channel ora_disk_1: starting piece 1 at 23-aug-13
channel ora_disk_1: finished piece 1 at 23-aug-13
piece handle=/tmp/back/1joi1unc_1_1 tag=tag20130823t205612 comment=none
channel ora_disk_1: backup set complete, elapsed time: 00:00:04
finished backup at 23-aug-13
3.可以在备份数据文件或者表空间时来添加备份,但是其不会备份spfile,命令如下
rman> backup datafile 4 include current controlfile;
或者
rman> backup tablespace sun include current controlfile;
(四)备份spfile
在开启自动备份控制文件时,会自动备份spfile。
也可以用如下命令备份,
rman> backup spfile format '/u01/backup/sp_%u';
starting backup at 23-aug-13
allocated channel: ora_disk_1
channel ora_disk_1: sid=44 device type=disk
channel ora_disk_1: starting full datafile backup set
channel ora_disk_1: specifying datafile(s) in backup set
including current spfile in backup set
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/sp_1qoi23po_1_1 tag=tag20130823t222247 comment=none
channel ora_disk_1: backup set complete, elapsed time: 00:00:01
finished backup at 23-aug-13
starting control file and spfile autobackup at 23-aug-13
piece handle=/u01/backup/ctl_c-3925834152-20130823-0a comment=none
finished control file and spfile autobackup at 23-aug-13
可以看到虽然命令只是备份spfile,但是控制文件也被备份了。
(五)备份归档日志文件
备份归档日志文件是把全部内容复制下来,命令如下,
rman> backup archivelog all format='/u01/backup/ac_%u' delete all input;
delete all input是把原来的归档日志文件删除掉。
在执行这个命令时,会检查归档日志文件是否损坏,如果发现一个地方的归档日志文件损坏,那么自动会读取另一个地方好的归档日志文件,若都有损坏,就拒绝备份。
为了确保归档日志的一致性,在对归档日志文件做备份时,做了如下的操作,
1.在备份命令开始后,首先是运行alter system archive log current命令,把联机重做日志文件复制到归档日志文件中。
2.对归档日志文件进行备份或者是数据文件和归档日志文件一起备份。
3.再一次运alter system archive log current命令(由于上一步会的时间可能会很长,这个时间段又会产生重做信息,所以要把联机重做日志文件再复制到归档日志文件中)。
4.再做一次归档日志文件的备份
或者用下面的命令,
backup archivelog sequence between 139 and 141 thread 1 delete (all) input;
可以选择sequence的备份范围;
或者
backup archivelog from time sysdate-15 until time sysdate-7;
可以选择时间的范围来备份归档日志文件;
或者在备份数据文件时把归档日志文件一起备份,
backup database plus archivelog format=’/u01/backup/db_%u’。
更多见
