一.RMAN的一些理论知识
RMANCatalog和Nocatalog的区别
http://blog.csdn.net/xujinyang/article/details/6838066
RMAN系列(一)----RMAN体系结构概述
http://blog.csdn.net/xujinyang/article/details/6829398
RMAN系列(二)----RMAN设置和配置
http://blog.csdn.net/xujinyang/article/details/6829379
RMAN系列(三)----介质管理问题
http://blog.csdn.net/xujinyang/article/details/6829364
RMAN系列(四)----RMAN备份
http://blog.csdn.net/xujinyang/article/details/6829347
RMAN系列(五)----RMAN还原与恢复
http://blog.csdn.net/xujinyang/article/details/6838045
RMAN系列(六)----RMAN高级恢复
http://blog.csdn.net/xujinyang/article/details/6838037
RMAN系列(七)----RMAN维护
http://blog.csdn.net/xujinyang/article/details/6838036
RMAN系列(八)----RMANList和report命令
http://blog.csdn.net/xujinyang/article/details/6838031
RMAN系列(九)----调整RMAN备份与恢复操作的性能
http://blog.csdn.net/xujinyang/article/details/6838028
Linux平台下RMAN全备和增量备份shell脚本
http://blog.csdn.net/xujinyang/article/details/6838002
二.RMAN环境一些注意的配置
2.1修改控制文件自动备份
可以用如下命令查看RMAN的默认参数配置:
RMAN>showall;
db_unique_name为ORCL的数据库的RMAN配置参数为:
CONFIGURERETENTIONPOLICYTOREDUNDANCY1;#default
CONFIGUREBACKUPOPTIMIZATIONOFF;#default
CONFIGUREDEFAULTDEVICETYPETODISK;
CONFIGURECONTROLFILEAUTOBACKUPOFF;#default
CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO'%F';#default
CONFIGUREDEVICETYPEDISKPARALLELISM1BACKUPTYPETOBACKUPSET;#default
CONFIGUREDATAFILEBACKUPCOPIESFORDEVICETYPEDISKTO1;#default
CONFIGUREARCHIVELOGBACKUPCOPIESFORDEVICETYPEDISKTO1;#default
CONFIGURECHANNEL1DEVICETYPEDISKFORMAT'F:/backup/orcl_%U.bak';
CONFIGUREMAXSETSIZETOUNLIMITED;#default
CONFIGUREENCRYPTIONFORDATABASEOFF;#default
CONFIGUREENCRYPTIONALGORITHM'AES128';#default
CONFIGURECOMPRESSIONALGORITHM'BASIC'ASOFRELEASE'DEFAULT'OPTIMIZEFORLOA
DTRUE;#default
CONFIGUREARCHIVELOGDELETIONPOLICYTONONE;#default
CONFIGURESNAPSHOTCONTROLFILENAMETO'D:/APP/ADMINISTRATOR/PRODUCT/11.2.0/DBHO
ME_1/DATABASE/SNCFORCL.ORA';#default
注意,controlfileautobackup这个参数默认是OFF的,即默认不自动备份,我们把这个参数改成自动备份:
RMAN>configurecontrolfileautobackupon;
旧的RMAN配置参数:
CONFIGURECONTROLFILEAUTOBACKUPOFF;
新的RMAN配置参数:
CONFIGURECONTROLFILEAUTOBACKUPON;
已成功存储新的RMAN配置参数
改成自动以后,在数据文件有变化,或者备份数据库的时候,都会自动的备份控制文件和spfile文件。
修改parallelism参数为2. 该参数默认值为1.
如:CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
官网对这个参数的解释:
Configures the number of automatic channels of the specified device type allocated for RMAN jobs. By default,PARALLELISM
is set to1
.
Suppose you setPARALLELISM
for disk backups to2
(seeExample 2-42). If you set the default device type as disk, then RMAN allocates two disk channels when you runBACKUP DATABASE
at the RMAN prompt. RMAN always allocates the number of channels set byPARALLELISM
, although it may use only a subset of these channels.
Note:If you configuren
manually numbered channels, then thePARALLELISM
setting can be greater than or less thann
. For example, you can manually number 10 automatic channels and configurePARALLELISM
to2
or12
.
To change the parallelism for a device type ton
, run a newCONFIGURE DEVICE TYPE ... PARALLELISM
n
command. For example, you can change configurePARALLELISM
to3
forsbt
and then change it to2
as follows:
http://download.oracle.com/docs/cd/E11882_01/backup.112/e10643/rcmsynta010.htm#RCMRF113
2.2修改控制文件保存的时间
控制文件保存的时间由参数CONTROL_FILE_RECORD_KEEP_TIME决定,默认值是7天。我们可以改成0到365之间的任意值。
当RMAN采用nocatalog模式进行备份时,就会有一个问题。当我们使用catalog模式的时候,RMAN备份的信息都会存放到catalog目录里。如果没有使用catalog目录,那么RMAN备份的信息就会保存到控制文件里。RMAN的这些备份信息对恢复来说非常重要,如果没有这些信息,是无法使用RMAN进行恢复的。所以,如果采用nocatalog模式,我们要主备备份控制文件,同时,要将控制文件记录的保存时间设置为不小于选中数据库备份的周期,否则就可能在备份介质上有数据库备份,但是控制文件不存在与备份相关的备份记录,在这种情况下,将无法恢复这些较早的文件。
SQL>selectname,valuefromv$parameterwherename='control_file_record_keep_time';
NAMEVALUE
-------------------------------------------------------------------------------
control_file_record_keep_time7
SQL>altersystemsetcontrol_file_record_keep_time=20;
系统已更改。
SQL>showparametercontrol_file_record_keep_time
NAMETYPEVALUE
-----------------------------------------------------------------------------
control_file_record_keep_timeinteger20
2.3配置备份默认的保存策略
备份策略影响影响恢复,如果备份集少,那么恢复能力也受到限制,如果备份集留的比较多,那么也会占用大量的空间。所以要设置一个合适的周期,这个要根据磁盘空间大小和恢复需要来设置,一般有2种方法:
2.3.1通过recoverywindow
如:configureretentionpolicytorecoverywindowof7days;
recoverwindow是保持所有足够的备份,可以将数据库系统恢复到最近七天内的任意时刻。任何超过最近七天的数据库备份将被标记为obsolete。
2.3.2通过redundancy
如:configureretentionpolicytoredundancy5;
redundancy是为了保持可以恢复的最新的5份数据库备份,任何超过最新5份的备份都将被标记为redundancy。它的默认值是1份。
要注意:配置保存策略不会导致自动删除备份,需要使用deleteobsolete命令才能删除过期的备份集。在reportobsolete命令时显示到期的备份集。如果列出的某个文件不能被删除,需要鱼腥crosscheck命令,否则,Oracle删除deleteobsolete命令输出的所有项。如:
reportobsolete;
deletenopromptobsolete;
crosscheckbackup;
deletenopromptexpiredbackup;
2.3.3保存策略重置为默认值(冗余为1)
configureretentionpolicyclear;
2.3.4不应用任何保存策略。
CONFIGURERETENTIONPOLICYTONONE;
2.4部署备份脚本
大部分的Oracle都是运行在Linux和Unix上。关于备份脚本,也分为全备和增量备份。
参考blog:
Linux平台下RMAN全备和增量备份shell脚本
http://blog.csdn.net/xujinyang/article/details/6838002
Windows下RMAN备份脚本
http://blog.csdn.net/xujinyang/article/details/6829728
在Linux平台的备份脚本中,策略比较完整。有nocatalog的全备和catalog的增量备份。在数据库比较大的话,增量备份还是非常有用的。Shell脚本在备份完成后,还单独的备份了控制文件和spfile文件。另外删除过期的备份集。
2.5删除归档日志的脚本
在RMAN备份的脚本里,我们添加了删除归档日志的选项,但是某些情况下还是需要部署删除归档日志的脚本。比如在DataGuard环境中,我们在主库做了RMAN备份,备份会删除已经备份的归档日志,但是在备库中的归档日志就无法删除,还是需要通过脚本来定期的删除归档日志。
删除的脚本参考我的Blog:
Oracle删除归档日志脚本
http://blog.csdn.net/xujinyang/article/details/6829726
小结,对于DBA来说,完整有效的备份是非常重要的,它能在关键时刻恢复我们的数据,或者减少数据丢失,所以对于生产库,一定要做好备份策略。备份重于一切!
------------------------------------------------------------------------------