如何 搭建 RMAN 备份平台
一. RMAN 的一些理论知识
RMAN Catalog 和 Nocatalog 的区别
http://blog.csdn.net/tianlesoftware/archive/2010/06/02/5641763.aspx
RMAN 系列(一)---- RMAN 体系结构概述
http://blog.csdn.net/tianlesoftware/archive/2010/06/09/5659701.aspx
RMAN 系列(二) ---- RMAN 设置和配置
http://blog.csdn.net/tianlesoftware/archive/2010/06/16/5674309.aspx
RMAN 系列(三) ---- 介质管理问题
http://blog.csdn.net/tianlesoftware/archive/2010/06/18/5678698.aspx
RMAN 系列(四) ---- RMAN 备份
http://blog.csdn.net/tianlesoftware/archive/2010/06/23/5687938.aspx
RMAN 系列(五) ---- RMAN 还原 与 恢复
http://blog.csdn.net/tianlesoftware/archive/2010/06/28/5700474.aspx
RMAN 系列(六) ---- RMAN 高级恢复
http://blog.csdn.net/tianlesoftware/archive/2010/07/09/5722174.aspx
RMAN 系列(七) ---- RMAN 维护
http://blog.csdn.net/tianlesoftware/archive/2010/07/12/5728097.aspx
RMAN 系列(八) ---- RMAN List和report 命令
http://blog.csdn.net/tianlesoftware/archive/2010/07/12/5728116.aspx
RMAN 系列(九) ---- 调整RMAN备份与恢复操作的性能
http://blog.csdn.net/tianlesoftware/archive/2010/07/13/5732665.aspx
Linux 平台下 RMAN 全备 和 增量备份 shell 脚本
http://blog.csdn.net/tianlesoftware/archive/2010/07/16/5740630.aspx
二. RMAN 环境一些注意的配置
2.1 修改控制文件自动备份
可以用如下命令查看RMAN 的默认参数配置:
RMAN> show all;
db_unique_name 为 ORCL 的数据库的 RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT 'F:/backup/orcl_%U.bak';
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOA
D TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:/APP/ADMINISTRATOR/PRODUCT/11.2.0/DBHO
ME_1/DATABASE/SNCFORCL.ORA'; # default
注意,controlfile autobackup 这个参数默认是OFF的,即默认不自动备份,我们把这个参数改成自动备份:
RMAN> configure controlfile autobackup on;
旧的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
已成功存储新的 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 to 1
.
Suppose you set PARALLELISM
for disk backups to 2
(see Example 2-42). If you set the default device type as disk, then RMAN allocates two disk channels when you run BACKUP DATABASE
at the RMAN prompt. RMAN always allocates the number of channels set by PARALLELISM
, although it may use only a subset of these channels.
Note: If you configure n
manually numbered channels, then the PARALLELISM
setting can be greater than or less than n
. For example, you can manually number 10 automatic channels and configure PARALLELISM
to 2
or 12
.
To change the parallelism for a device type to n
, run a new CONFIGURE DEVICE TYPE ... PARALLELISM
n
command. For example, you can change configure PARALLELISM
to 3
for sbt
and then change it to 2
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> select name,value from v$parameter where name='control_file_record_keep_time';
NAME VALUE
------------------------------ -------------------------------------------------
control_file_record_keep_time 7
SQL> alter system set control_file_record_keep_time=20;
系统已更改。
SQL> show parameter control_file_record_keep_time
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 20
2.3 配置备份默认的保存策略
备份策略影响影响恢复,如果备份集少,那么恢复能力也受到限制,如果备份集留的比较多,那么也会占用大量的空间。 所以要设置一个合适的周期,这个要根据磁盘空间大小和恢复需要来设置,一般有2种方法:
2.3.1 通过recovery window
如:configure retention policy to recovery window of 7 days;
recover window是保持所有足够的备份,可以将数据库系统恢复到最近七天内的任意时刻。任何超过最近七天的数据库备份将被标记为obsolete。
2.3.2 通过redundancy
如:configure retention policy to redundancy 5;
redundancy 是为了保持可以恢复的最新的5份数据库备份,任何超过最新5份的备份都将被标记为redundancy。它的默认值是1份。
要注意: 配置保存策略不会导致自动删除备份,需要使用delete obsolete 命令才能删除过期的备份集。 在report obsolete 命令时显示到期的备份集。 如果列出的某个文件不能被删除,需要鱼腥crosscheck 命令,否则,Oracle 删除delete obsolete命令输出的所有项。如:
report obsolete;
delete noprompt obsolete;
crosscheck backup;
delete noprompt expired backup;
2.3.3 保存策略重置为默认值(冗余为1)
configure retention policy clear;
2.3.4 不应用任何保存策略。
CONFIGURE RETENTION POLICY TO NONE;
2.4 部署备份脚本
大部分的Oracle 都是运行在Linux 和Unix上。 关于备份脚本,也分为全备和增量备份。
参考blog:
Linux 平台下 RMAN 全备 和 增量备份 shell 脚本
http://blog.csdn.net/tianlesoftware/archive/2010/07/16/5740630.aspx
Windows下RMAN备份脚本
http://blog.csdn.net/tianlesoftware/archive/2010/01/12/5181414.aspx
在Linux平台的备份脚本中,策略比较完整。有nocatalog的全备和catalog的增量备份。 在数据库比较大的话,增量备份还是非常有用的。 Shell脚本在备份完成后,还单独的备份了控制文件和spfile文件。 另外删除过期的备份集。
2.5 删除归档日志的脚本
在RMAN 备份的脚本里,我们添加了删除归档日志的选项,但是某些情况下还是需要部署删除归档日志的脚本。 比如在Data Guard 环境中,我们在主库做了RMAN 备份,备份会删除已经备份的归档日志,但是在备库中的归档日志就无法删除,还是需要通过脚本来定期的删除归档日志。
删除的脚本参考我的Blog:
Oracle 删除归档日志脚本
http://blog.csdn.net/tianlesoftware/archive/2010/01/20/5211659.aspx
小结,对于DBA来说,完整有效的备份是非常重要的,它能在关键时刻恢复我们的数据,或者减少数据丢失,所以对于生产库,一定要做好备份策略。 备份重于一切!
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(满); DBA2 群:62697977
DBA3 群:63306533; 聊天 群:40132017