现在的位置: 首页 > 综合 > 正文

RMAN 系列(二) —- RMAN 设置和配置

2012年11月21日 ⁄ 综合 ⁄ 共 6636字 ⁄ 字号 评论关闭

一. 配置数据库以ARCHIVELOG 模式运行

 在ORACLE 10g 之前,在将数据库置入Archivelog 模式后,需要启动arch进程。 设置参数LOG_ARCHIVE_START true,也可启动arch进程。在10g以后,不需要使用该方法,当数据库处于archivelog模式时,Oracle 会自动启动arch进程。

Arch 进程由LGWR 进程调用,只要一个联机redo log 被填满。LGWR 进程就切换到另一个联机redo 组。 此时如果数据库处于archivelog 模式,LGWR进程也会通知ARCH,将该进程唤醒并开始工作。ARCH 进程相应LGWR的调用,在ORACLE 数据库参数LOG_ARCHIVE_DEST_n 定义的位置或者定义的闪回恢复区生成联机redo log的副本,知道arch 进程完成创建归档的重做日志副本后,Oracle 才能重用这个redo log 文件。

Oracle10g 提供了2种不同的位置来保存归档日志: ArchiveLog 目标目录和闪回区。

1.1 ArchiveLog 目标目录

使用LOG_ARCHVEI_DEST_n 参数可以定义10个不同的归档日志目标。这些目录可以是本地目录,网络目录。

下面对一些参数做相关说明:

(1) LOG_ARCHIVE_STAT_n 参数:该参数为每个归档日志定义两种不同的状态: ENABLE和 DEFER,如果是ENABLE,则该归档目录是有效的,如果是DEFER,就不会在指定的LOG_ARCHIVE_DEST_n 进行归档。

(2) LOG_ARCHIVE_FORMAT 参数: Oracle 创建归档日志时,按按参数指定的格式,重命名归档日志。

(3) LOG_ARCHIVE_MIN_SUCCEED_DEST:  允许DBA定义归档日志目标副本的最小数据,这些副本必须成功。这样Oracle 才可以重用关联的redo online log

(4) LOG_ARCHIVE_START: 该参数在10g 中不再使用,用户自动启动ARCH 进程。

1.2 闪回恢复区

闪回恢复区(FRA)允许集中存储所有与恢复相关的文件。 FRA 可以本地使用附加的存储,Oracle 集群文件系统(Oracle File system: OCFS)或者 Oracle 10g 中新的自动存储管理(ASM)特性。FRA 中备份文件类型:归档的重做日志,控制文件,控制文件自动备份。闪回日志,重做日志,RMAN 数据文件副本,RMAN 备份和其他相关文件。

FRA 帮助管理全部的磁盘空间分配,并且为所有与恢复相关饿文件提供集中的存储区域。FRA 也提供更快速的备份和恢复操作。

FRA 中文件的保留与否由RMAN保存策略决定。 通过执行RMAN config retention policy 命令设置该策略。 如果文件在RMAN保存策略下没有过时,则不会被删除。如果归档日志过时,则可以删除。

FRA在由参数DB_RECOVERY_FILE_DEST 定义的特定位置中创建。 该位置可以是文件系统或者ASM卷。DB_RECOVER_FILE_DEST_SIZE 参数则用来定义FRA的最大尺寸。 这是Oracle 控制的文件空间的限制,而与文件系统自身中的全部可用空间无关。 Oracle 监控FRA中的可用空间,一旦FRA中的空间数据量减少到不安全的程度,Oracle 就会在警报日志中生成警告(90%已使用时生成一次警告,而在95%已使用时再次生成警告)。同样,当FRA中空闲空间少于10%时,Oracle 就会删除处于过时文件列表中的文件。

如果闪回恢复区是唯一归档目标,那么FRA中空间被用完时就会非常麻烦,可能造成数据库异常终止,所以如果只设置了唯一的归档目录,则应该仔细的监控空间可用性。 简单的说有以下几种方法:

(1) 增加DB_RECOVERY_FILE_DEST_SIZE.

(2) RMAN BACKUP recovery area。 将FRA的内容移动到其他位置。

(3) 物理删除较早的备份,然后用RMAN crosscheck 命令来让数据库认可已经删除的文件。

这类问题处理的方法参考:

Flash Recovery Area空间不足导致数据库不能打开或hang

http://blog.csdn.net/tianlesoftware/archive/2009/10/15/4668991.aspx

     

和闪回恢复区相关的视图:

(1) DBA_OUTSTANDING_ALERTS

FRA中添加和删除文件时,这些事件的记录被记录到数据库警告日志中。 可以通过该视图来了解一些FRA一些显著问题的信息。注意: 空间相关问题产生的时间和警告日志在该视图中的时间存在一定程度的延时。 

SQL> select reason from dba_outstanding_alerts;

REASON

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

db_recovery_file_dest_size 字节 (共 4039114752 字节已使用 100.00%, 尚有 字节可用。

 (2v$recovery_file_dest 

该视图提供了在数据库中定义FRA的概念。 提供配置的FRA大小,所使用空间数量,可回收多少空间,以及FRA中文件量。

SQL> select * from v$recovery_file_dest;

NAME                        SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES

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

D:/app/Administrator/flash_recovery_area     4039114752 4005191680          0              85

如果SPACE_RECLAIMABLE 不为0. 即表示FRA中有可回收的文件。 如果需要该空间,可以强制日志切换,它将删除可回收的任何文件并释放空间。

SQL> alter system switch logfile;

系统已更改。

(3) v$flash_recovery_area_usage

   该视图提供了关于占用FRA空间的文件类型的详细信息。该视图对文件类型组合,然后提供每个文件类型所使用的空间百分比,来自该组的总FRA可回收空间百分比,以及来自该组的FRA中文件数量。

SQL> select * from v$flash_recovery_area_usage;

FILE_TYPE          PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES

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

CONTROL FILE                          0                         0            0

REDO LOG                              0                         0            0

ARCHIVED LOG                      99.16                         0           85

BACKUP PIECE                          0                         0            0

IMAGE COPY                            0                         0            0

FLASHBACK LOG                         0                         0           0

FOREIGN ARCHIVED LOG                  0                         0          0

已选择7行。

包含FRA列的其他视图

可以在许多10g的视图中找到 IS_RECOVERY_DEST_FILE视图,例如:

V$CONTRILFILE,V$LOGIFLE,V$ARCHIVEC_LOG,V$DATAFILE_COPY,V$DATAFILE ,V$BACKUP_PIECE. 

该列是一个布尔值,用来指示文件是否位于FRA中。

另一个列BYTES 可以在V$BACKUP_PIECERC_BACKUP_PIECErman 恢复目录视图)中找到,该列以字节为单位指示备份集片的大小。

其他闪回恢复区特性

Oracle 10g,如果没有设置OMF 相关的DB_CREATE_ONLINE_LOG_DEST_n 参数,则alter database add logfilealter database add standby logfile 命令创建FRA中的连接重做日志成员。 Alter database drop logfile alter database rename file命令也支持FRA中的文件。

在数据库创建期间,Oracle 可以使用FRA存储数据库控制文件和联机重做日志。 如果定义了OMF 相关参数:DB_CREATE_ONLINE_LOG_DEST_n, 则将在这些位置创建控制文件和重做日志,但不会在FRA中创建,即使定义了FRA。 如果没有定义DB_CREATE_ONLINE_LOG_DEST_n,但定义了CREATE_FILE_DEST,则由CREATE_FILE_DEST定义的位置创建控制文件和联机重做日志的副本。 最后,如果定义了DB_RECOVERY_FILE_DEST,则在该位置创建控制文件。 如果没有定义任何这些参数,则在OS 特定的默认位置创建控制文件和联机重做日志。

FRAASM

RMAN支持使用自动存储管理(ASM)存储RMAN备份。ASM是磁盘管理工具,使用该工具,DBA就不再需要管理与给定数据库关联的物理文件。 ASM在一定程度上类似于可用于UNIX 中的逻辑卷组。 ASM 使用ASM 磁盘组,该磁盘组是存储在逻辑单元。 物理磁盘被分配给ASM磁盘组,并且提供ASM 磁盘组整体存储功能。 ASM 磁盘组可以存在前面分配的文件系统上,或者存储在RAW磁盘上。 结合OCFS, 集群的服务器可以共享RAC配置中的ASM 磁盘。 配置ASM并定义各种磁盘组合,就可以分配数据文件,控制文件,联机重做日志,以及各种RMAN备份文件给ASM磁盘组。

ASM 提供了大量特性,包括负载均衡,数据冗余,并且很容易添加和删除ASM磁盘组中的新磁盘。RMAN 支持ASM磁盘组,但是对于大多数非RAC站点使用ASM 实现并没有多少价值。 

1.3 是否应该使用FRA

我们认为隐藏在FRA后面的思想是优秀的,我们也喜欢将备份复制到一些其他的介质,如磁带,从而可以脱机使用它们以进行灾难恢复。

我们喜欢将FRA用于归档的重做日志,但仍喜欢将归档重做日志复制到多个位置(具体说是多个磁盘)。 归档的重做日志对于数据库恢复至关重要,如果丢失一个归档的重做日志,则在该重做日志之后的所有其他重做归档就会几乎没有任何价值。 因为,我们倾向于使用LOG_ARCHIVE_DEST_n 参数来配置数据库,而使用FRA 和另一单独的文件系统来存储归档的重做日志。

1.4  ARCHIVELOG 模式之间的切换

具体操作参考我的blog

Oracle 归档与非归档的切换

http://blog.csdn.net/tianlesoftware/archive/2009/10/19/4693470.aspx

二. RMAN 命令行

进入RMAN 有两种不同方法: 命令行 和 OEM

2.1 通过RMAN 命令行连接

   在OS 提示下简单的输入rman 命令就可以启动RMAN。 一旦启动了RMAN命令解释程序,就可以执行任何所需的操作。

RMAN 总是以SYSDBA身份连接目标数据库,所以连接账户必须具有SYSDBA权限。 具体用法参考帮助:

C:/Users/Administrator.DavidDai>rman help

参数       值          说明

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

target       加引号的字符串  目标数据库连接字符串

目录      加引号的字符串  恢复目录的连接字符串

nocatalog    无           如果已指定则没有恢复目录

cmdfile      加引号的字符串  输入命令文件的名称

log        加引号的字符串  输出消息日志文件的名称

跟踪        加引号的字符串  输出调试信息日志文件的名称

append       无           如果已指定日志将以附加模式打开

debug        可选参数  激活调试

msgno        无           对全部消息显示 RMAN-nnnn 前缀

send         加引号的字符串  将命令发送到介质管理器

pipe         字符串         管道名称的构建块

timeout      整数        等待管道输入的秒数

checksyntax  无           检查命令文件中的语法错误

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

单引号和双引号 (' 或 ") 均可用于加引号的字符串。

除非字符串中有空格否则不用引号。

2.2 使用RMAN connet 命令

如果启动了RMAN,发现没有连接到正确的数据库,或者要连接到一个不同的数据库(目标数据库,目录数据库,辅助数据库),可以使用connect 命令来更改RMAN要连接的数据库。 使用connect target 命令可以连接到一个不同的目标数据库;使用connect catalog 命令可以连接到不同的恢复目录,使用connect auxiliary 命令可以连接到一个不同的辅助数据库。

Connect target sys/pwd@sid

Connect catalog user/pwd@sid

2.3 退出RMAN 客户端

RMAN 退出命令有2个: quit 和 exit。 

三. RMAN 操作配置数据库

3.1 设置数据库用户

在默认情况下,可以通过SYS账户(sysdba)来使用RMAN,该账户不需要任何配置。当然,在执行产品备份操作时,sysdba 并不是最佳的账户。 建议在使用RMAN执行备份操作之前创建一个用于RMAN 备份的单独账户设置。

C:/Users/Administrator.DavidDai>set ORACLE_SID=mynewccs

C:/Users/Administrator.DavidDai>sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 6月 14 10:11:39 2010

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

SQL> conn / as sysdba

抱歉!评论已关闭.