1、RMAN 设置和配置当数据库在 archivelog 模式下运行时,归档重做日志的复制位置可以采用两种配制方法:配置 archivelog 目标目录;配置 oracle 闪回恢复区;Archivelog 目标目录在配置 archivelog 模式时,需要确定让 oracle 在何处创建归档重做日志,选择使用归档日志目标目录可长期有效,可使用 LOG_ARCHIVE_DEST_n(n:1-10)定义归档日志目标,目标可以是:本地目录、网络目录、网络连接存储(NAS) ,目标还可以是一个定义的数据库服务器名。使用 spfiles,可以使用 alter system 命令设置 LOG_ARCHIVE
2、_DEST_n,如下:Alter system set log_archive_dest_1=location=path;设置该参数后执行一下 alter system switch logfile;重新归档联机日志每一个 LOG_ARCHIVE_DEST_n 位置都可以定义为强制或者任选两种方式之一,一般默认为任选方式,若定义为强制模式,则归档日志必须写到该位置,当 ARCH 进程在对采取强制方式的位置写入发生错误时,数据库所有活动将被快速挂起(在循环通过所有联机重做日志后) 。任选重做位置对数据库操作没有任何影响。所有 log_archive_dest_n 参数的位置在默认情况下都是可选的
3、,参数LOG_ARCHIVE_MIN_SUCCEED_DEST 指定,归档多少日志目标目录中必须包含联机重做日志的成功复制的副本才能认为是成功归档。LOG_ARCHIVE_STATE_n 参数:为每个归档日志目标定义两种不同状态的中的一种状态,如果是 enable,ARCH 进程认为与该状态关联的目标为一个有效的归档日志目标;如果为 defer, ARCH 进程就不会再相关的 LOG_ARCHIVE_DEST_n 位置归档日志。LOG_ARCHIVE_FORMAT 参数:在命名归档的重做日志时提供一个 orale 使用模板,oracle 创建归档重做日志时,按以下方式重命名这些重做日志,即每个
4、归档的重做日志都有唯一的名称,可使用该参数来设定所需要的默认名称标准。LOG_ARCHIVE_START 参数:已不使用;LOG_ARCHIVE_MAX_PROCESS 参数:该参数定义 oracle 数据库启动时 ARCH 进程数量。闪回恢复区闪回恢复区允许集中存储所有与恢复有关的文件,FRA 可以本地使用附加的存储,oracle 的集群文件系统( OCFS) ,或者新的自动存储管理(ASM)特性。FRA 帮助管理全部的磁盘空间分配,并且为所有与恢复相关的文件提供集中的存储区域。FRA 也提供更快速地备份和恢复操作;FRA 中文件的保留与否由 RMAN 保留策略决定,通过执行 RMAN co
5、nfigure retention policy 命令设置该策略,如果文件在 RMAN 保留策略下没有过时,则不会被删除,如果归档的日志过时,则可以删除它们。FRA 在由参数 DB_RECOVERY_FILE_DEST 定义的特定位置中创建,该位置可以是文件系统或 ASM 卷。DB_RECOVERY_FILE_DEST_SIZE 参数定义 FRA 的最大尺寸。这是 oracle 控制的文件空间限制,与文件系统自身的全部可用空间无关。Oracle 监控 FRA 中的可用空间,一旦 FRA 中的可用空间数量减少到不安全的程度,oracle 就会在告警日志中生成报告在 oracle 11g 中,当可
6、回收空间低于 DB_RECOVERY_FILE_DEST_SIZE 参数定义值得 15%时,将会生成警报,当低于 3%时,将会产生危险性警告;这些报告也会出现在 OEM 中的警报日志中,也可通过 DBA_OUTSTANDING_ALERTS 表获知,在数据库已经构建完成时,可以检查 dba_hist_log 视图获得归档日志空间使用情况,该视图来源于oracle 的 AWR 基础架构。通过该视图可以获知归档重做日志的平均容量以及日志切换时间,SQL 如下:Alter session set nls_date_format=mm/dd/yyyy hh24:mi:ss;Select sequenc
7、e#,first_time log_started,lead(first_time,1,null) over(order by first_time) log_endedFrom (select distinct sequence#,first_time from dba_hist_logWhere ahrcive=YES and sequence#!=0Order by first_time)Order by sequence#;使用 FRA 能够为每个数据库分配特定的可用空间额配,可以消除由于单个数据库消耗所有归档日志空间而影响其他数据库的风险。若 FRA 中无可用的空间,可应对的方法如下
8、:如果是因为 DB_RECOVERY_FILE_DEST_SIZE 参数导致的空间分配不足,并且存在足够的物理磁盘空间来增加分配给 FRA 的空间,则增加该值的大小,可为 FRA 增加额外的空间,但不能将该参数的值设置为大于文件系统中的可用物理空间数量如果需要更多的物理空间,则分配额外的物理空间给文件系统,然后增加DB_RECOVERY_FILE_DEST_SIZE 参数值;如果没有额外的空间,可以将 FRA 移动到具有更多可用空间的另一个文件系统中;在 FRA 中留出空间,方法是使用 RMAN backup recovery area 命令将 FRA 的内容移动到另一个位置;物理删除 FRA
9、 中较早的备份集片或 FRA 的归档重做日志,然后使用 RMAN crosscheck 命令来让数据库认可已经删除了这些文件。设置闪回恢复区以下是对 FRA 的设置:DB_RECOVERY_FILE_DEST_SIZE alter system set db_recovery_file_dest_size=20G scope=both; 设置 FRA 的已分配大小,且定义具体的大小以启用 FRA,允许对分配给 FRA的磁盘空间大小进行控制;DB_RECOVERY_FILE_DEST alter system set db_recovery_file_dest=/u01/oracle/flash
10、_recovery scope=both; 指定 FRA 的位置,可以是文件系统、ASM 磁盘位置或 OMF 位置;必须在指定 DB_RECOVERY_FILE_DEST 参数之前指定DB_RECOVERY_FILE_DEST_SIZE 参数。类似,在复位DB_RECOVERY_FILE_DEST_SIZE 参数之前,禁用 DB_RECOVERY_FILE_DEST 参数,以下是通过复位 DB_RECOVERY_FILE_DEST 参数禁用 FRA:alter system set db_recovery_file_dest= scope=both; Oracle 允许将归档重做日志归档到 F
11、RA 及通过使用 LOG_ARCHIVE_DEST_n 参数定义一个或多个附加位置,允许同时采用两种方法:闪回恢复区视图DBA_OUTSTANG_ALERTS:从 FRA 中添加或者删除文件时,这些事件被记录在数据库警报日志中;可以检查新的 DBA 视图 DBA_OUTSTANG_ALERTS 来了解关于 FRA 一些显著问题的信息。空间相关问题产生的时间和警告出现在DBA_OUTSTANG_ALERTS 视图中的时间存在一定程度的延迟。Select reason from DBA_OUTSTANDING_ALERTS;SQL alter system set DB_RECOVERY_FILE
12、_DEST_SIZE=800M;System alteredSQL alter system set db_recovery_file_dest=/opt/oracle/flash_recovery_area/;System alteredSQL alter system set log_archive_dest_10=LOCATION=USE_DB_RECOVERY_FILE_DEST;System alteredV$RECOVERY_FILE_DEST:提供在数据库中定义 FRA 的概述;该视图提供配置 FRA 的大小、所使用空间的数量、可以回收多少空间,以及 FRA 中文件数量。SQL
13、SELECT * FROM V$RECOVERY_FILE_DEST;NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES -/opt/oracle/flash_recovery_area 838860800 24185344 0 2 其中,PACE_RECLAIMABLE 列指示有可回收的空间,该空间由归档的重做日志或备份集片占用,根据已选择的保存标准,已经不再需要这些空间;当 oracle 需要 FRA 中的空间时(如强行执行日志切换) ,他将删除可以回收的任何文件并释放空间; V$FLASH_RECOVERY_AREA
14、_USAGE:提供了关于 FRA 空间的文件类型的详细信息,该视图对文件类型分组,然后提供每个文件类型所使用的空间百分比、来自该组的总 FRA 可回收空间百分比、以及来自该组的 FRA 中的文件数量;SQL show parameter log_archive_dest;NAME TYPE VALUE- -log_archive_dest string log_archive_dest_1 string location=/opt/arch/pri valid_for=(all_logfiles,all_roles) db_unique_name=prilog_archive_dest_10
15、string LOCATION=USE_DB_RECOVERY_FILE_DESTSQL select * from v$flash_recovery_area_usage;FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES- - - CONTROL FILE 0 0 0REDO LOG 0 0 0ARCHIVED LOG 4.6 0 3BACKUP PIECE 0 0 0IMAGE COPY 0 0 0FLASHBACK LOG 0 0 0FOREIGN ARCHIVED LOG 0 0 0SQL sh
16、ow parameter recover;NAME TYPE VALUE- - -db_recovery_file_dest string /opt/oracle/flash_recovery_area/db_recovery_file_dest_size big integer 800Mrecovery_parallelism integer 0RMAN crosscheck archivelog all;RMAN delete expired archivelog all;RMAN delete archivelog until time=sysdate-1;包含 FRA 列的其他视图可以
17、在很多 oracle Database 的 V$视图中找到列 IS_RECOVERY_DEST_FILE,例如:V$CONTROLFILE、V$LOGFILE、V$ARCHIVE_LOG、V$DATAFILE_COPY、V$DATAFILE 和 V$BACKUP_PIECE其他闪回恢复区特性在 oracle 数据库中,如果没有设置 OMF 相关的 DB_CREATE_ ONLINE_LOG_DEST_n 参数,则 alter database add logfile 和 alter database add standby logfile 命令创建 FRA 中联机重做日志成员, alter d
18、atabase drop logfile 和 alter database rename file 命令也支持 FRA 中的文件。在数据库创建期间,oracle 可以使用 FRA 存储数据库控制文件和联机重做日志。如果定义了 OMF 相关的参数 DB_CREATE_ONLINE_LOG_DEST_n,将在这些位置创建控制文件和重做日志;但不会在 FRA 中创建;如果没有定义DB_CREATE_ONLINE_LOG_DEST_n 参数,但定义了 CREATE_FILE_DEST 参数,则由该参数定义的位置中创建控制文件和联机重做日志;FRA 和 ASM RMAN 支持使用自动存储管理(ASM)存
19、储 RMAN 备份, ASM 是磁盘管理工具,使用该工具,DBA 就不再需要管理与给定数据库关联的物理文件;ASM 使用 ASM 磁盘组,该磁盘组是存储的逻辑单元,物理磁盘被分配给 ASM 磁盘组,构成 ASM 磁盘组的整体存储功能。Oracle Database 11g 故障诊断基础架构FDI(fault diagnosability infrastructure)用于防止、检测、诊断、解决数据库 bug 及各种形式崩溃问题。主要设置参数 DIAGNOSTIC_DEST 定义了 ADR 根目录;默认情况下该参数设置为:$ORACLE_HOME;ADR 目录结构的根目录结构以名为 diag 的
20、目录开始,其下是表示产品类型的子目录,其中数据库产品类型成为:rmdbs;$ORACLE_HOME 目录为:/opt/oracle/;数据库名为:pri ;数据库实例名为:pri;ADR 目录结构为:/opt/oracle/diag/rdbms/pri/pri;该目录称为 ADR 主目录,不同实例有自己的 ADR 目录;若使用 RAC,则 ADR 可使用共享存储方式,也可以使用各个节点独立存储的方式;在该目录结构中包含另外一些目录:Alert 目录:该目录为 XML 格式的警报日志位置;Cdump 目录:数据库核心转储位置;Trace 目录:系统建立的跟踪文件,及警报日志的文本副本;Incid
21、ent 目录:包含多个子目录,每个子目录包含一个事件;oraclepri pri$ pwd/opt/oracle/diag/rdbms/pri/prioraclepri pri$ lsalert cdump hm incident incpkg ir lck metadata stage sweep traceSQL select * from v$diag_info;INST_ID NAME VALUE- - -1 Diag Enabled TRUE1 ADR Base /opt/oracle1 ADR Home /opt/oracle/diag/rdbms/pri/pri1 Diag Tr
22、ace /opt/oracle/diag/rdbms/pri/pri/trace1 Diag Alert /opt/oracle/diag/rdbms/pri/pri/alert1 Diag Incident /opt/oracle/diag/rdbms/pri/pri/incident1 Diag Cdump /opt/oracle/diag/rdbms/pri/pri/cdump1 Health Monitor /opt/oracle/diag/rdbms/pri/pri/hm1 Default Trace File /opt/oracle/diag/rdbms/pri/pri/trace
23、/pri_ora_3679.trc1 Active Problem Count 01 Active Incident Count 0RMAN 命令行oraclepri $ rman helpArgument Value Description-target quoted-string connect-string for target databasecatalog quoted-string connect-string for recovery catalognocatalog none if specified, then no recovery catalogcmdfile quote
24、d-string name of input command filelog quoted-string name of output message log filetrace quoted-string name of output debugging message log fileappend none if specified, log is opened in append modedebug optional-args activate debuggingmsgno none show RMAN-nnnn prefix for all messagessend quoted-st
25、ring send a command to the media managerpipe string building block for pipe namestimeout integer number of seconds to wait for pipe inputchecksyntax none check the command file for syntax errors设置 control_file_record_keep_time 参数配置 RMAN 默认设置RMAN 允许执行自动的数据库备份和恢复,RMAN 提供了 configure 命令,允许用户为备份和恢复操作定义默认
26、值SQL select * from v$rman_configuration;CONF# NAME VALUE- - -1 SNAPSHOT CONTROLFILE NAME TO $ORACLE_HOME/dbs/SNCFpri.ora2 SNAPSHOT CONTROLFILE NAME TO /opt/oracle/product/OraHome/dbs/SNCFpri.oraRMAN show all;RMAN configuration parameters for database with db_unique_name PRI are:CONFIGURE RETENTION P
27、OLICY TO REDUNDANCY 1; # defaultCONFIGURE BACKUP OPTIMIZATION OFF; # defaultCONFIGURE DEFAULT DEVICE TYPE TO DISK; # defaultCONFIGURE CONTROLFILE AUTOBACKUP OFF; # defaultCONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO %F; # defaultCONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE
28、 TO BACKUPSET; # defaultCONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # defaultCONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # defaultCONFIGURE MAXSETSIZE TO UNLIMITED; # defaultCONFIGURE ENCRYPTION FOR DATABASE OFF; # defaultCONFIGURE ENCRYPTION ALGORITHM AES128; # def
29、aultCONFIGURE COMPRESSION ALGORITHM BASIC AS OF RELEASE DEFAULT OPTIMIZE FOR LOAD TRUE ; # defaultCONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # defaultCONFIGURE SNAPSHOT CONTROLFILE NAME TO $ORACLE_HOME/dbs/SNCFpri.ora;CONFIGURE SNAPSHOT CONTROLFILE NAME TO /opt/oracle/product/OraHome/dbs/SNCFpri.
30、ora;Configure 命令使用示例1、配置默认信道默认备份/还原设备设置为磁带或者磁盘:RMAN configure default device type to sbt;RMAN show default device type;RMAN configuration parameters for database with db_unique_name PRI are:CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE;RMAN configure default device type to disk;当配置默认的设备类型时,信道使用 backup d
31、evice type 参数重写默认值,oracle 将使用默认信道;也将自动分配用于 delete 命令维护信道和用于复制操作的辅助信道,一旦配置了默认的设备类型,就可以配置特定备份类型的默认值:RMAN configure device type disk backup type to backupset;RMAN configure device type disk backup type to compressed backupset;CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 1;
32、RMAN configure device type disk backup type to copy;RMAN configure device type disk parallelism 2;CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO COPY;RMAN configure channel 1 device type disk format /home/oracle/backup/backup_%DRMAN configure channel 2 device type disk format /home/oracle/b
33、ackupa/backup_%D;在配置信道时,使用 maxpiecesize 参数可控制备份集片的大小;maxopenfiles 控制RMAN 一次最多可以打开的文件数;rate 参数限制 RMAN 并控制备份时读取字节的比例;RMAN CONFIGURE CHANNEL 1 DEVICE TYPE DISK MAXPIECESIZE 100 M MAXOPENFILES 8 RATE 100m;使用 configure 命令时,需要清除给定的配置,才能使用默认值:RMAN configure channel 1 device type disk clear;Configure 命令执行双路
34、自动备份操作,任何备份到磁盘上的备份豆浆杯复制,拥有两个副本:RMAN configure datafile backup copies for device type disk to 2;在备份期间将指定的 表空间排除在备份之外:RMAN configure exclude for tablespace fund_table;RMAN 配置任务总结1、确定是在 archivelog 模式还是在 noarchivelog 模式中运行数据库,并相应地配置数据库;2、建议配置并应用 FRA;3、设置 RMAN 使用一个独立的数据库账户(不是 sys);4、在数据库参数文件中,将 control_f
35、ile_record_keep_time 参数设置为某个天数,这个数应大于等于要保存数据库备份的天数;5、如果使用共享服务器,就要为 RMAN 设置一个连接数据库的专用服务器地址;6、使用 RMAN 连接到数据库,确保数据库设置正确;7、使用 configure 命令建立默认的 RMAN 值:配置磁带或磁盘备份的默认并行级别;设置一个默认值,这个默认值等于要创建备份的磁盘或磁带驱动器数;如果要使用多个磁盘驱动器来备份到 SAN,则应考虑使用并行信道来备份这些磁盘设备;配置自动的信道和设备类型,配置与独立设备数目相同的信道;配置自动化控制文件/数据库参数文件的自动备份操作;如果拥有 ASO(Advanced Security Option,使用加密的可选项)则配置自动数据库备份加密。8、有必要配置保留策略,确认这个保留策略与其他保留策略同步,如果有需要则为归档重做日志配置保留策略;9、配置 RMAN,使其进行控制文件和 SPFILE 的自动备份;10、使用 RMAN 执行产品数据库备份操作时,使用备份和恢复方法来测试 RMAN 配置。