技术开发 频道

管理RAC环境中的数据备份和恢复

    7、备份的分布

    对于RAC的备份选项,有三种可选的配置:

    *  Network backup server:一个专用的备份server,执行并管理cluster和cluster database的备份。所有nodes都没有本地的备份设备。

    *  one local drive:一个node需要访问本地的备份设备,并执行和管理cluster database的备份。cluster中所有的nodes应该在一个cluster file system中能够读取所有的datafiles、归档redo logs和SPFILEs 。如果有备份介质在一个本地设备中,建议不要使用non-cluster file system归档scheme。

    *  multiple drives:每个node访问本地的备份设备并写入自己的本地备份介质

    在cluster file system scheme中,任意node可以访问所有的datafiles、归档redo logs和SPFILEs。在non-cluster file system scheme中,必须写backup script以便于备份可以正确的分配到每个node的设备和路径上。例如,node 1备份路径名以/arc_dest_1开头的归档redo logs,node 2备份路径名以/arc_dest_2开头的归档redo logs,node 3备份路径名以/arc_dest_3开头的归档redo logs。

    1)one local drives CFS备份scheme

    在一个cluster file system 备份scheme中,每个node都可以访问所有的datafiles、归档redo logs和SPFILEs。这包括ASM、cluster file system和network attached storage(NAS)。

    当备份到cluster file system backup scheme中的一个本地设备中时,它假设在cluster中只有一个node有本地backup设备。在这种情况下,先执行下面的一次性设置命令:

    CONFIGURE DEVICE TYPE sbt PARALLELISM 1;

    CONFIGURE DEFAULT DEVICE TYPE TO sbt;

    因为执行备份的任何node都可读写访问由其他nodes写的归档redo logs,对于任何node的备份脚本很简单:

    BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;

    2)multiple drives CFS备份scheme

    当database备份到cluster file system backup scheme中多个设备里,它假设每个node有自己的本地磁带设备。执行下面的一次性设置,以便于一个每个node上配置一个channel。

    CONFIGURE DEVICE TYPE sbt PARALLELISM 3;
    CONFIGURE DEFAULT DEVICE TYPE TO sbt;
    CONFIGURE CHANNEL 1 DEVICE TYPE sbt CONNECT ‘user1/passwd1@node1′;
    CONFIGURE CHANNEL 2 DEVICE TYPE sbt CONNECT ‘user2/passwd2@node2′;
    CONFIGURE CHANNEL 3 DEVICE TYPE sbt CONNECT ‘user3/passwd3@node3′;

    同理,也可将设备设置为DISK。随后,执行下面的备份脚本,它可运行在cluster中的任何一个node上,会在多个备份设备上分配备份datafiles、archived redo logs和SPFILEs。

    BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;

    例如人,如果database有10个datafiles和100个归档redo logs在磁盘上,则node 1的备份设备将备份datafiles1、3、7和logs 1-33 。node 2将备份datafiles 2、5、10和logs 34-66 。node 3 备份datafiles 4、6、8、9以及归档redo logs 67-100 。

    3)non-cluster file system backup scheme

    在non-cluster file system环境中,每个node只可备份本地归档的redo logs。例如,node 1 不能访问node 2或node 3的归档redo logs,除非为远程访问配置了network file system。但如果为backup配置了NFS,则只能备份到 一个设备中。

    如果要在non-cluster file system backup scheme中备份到多个设备中,就需要每个node有自己的本地磁带设备。可执行如下的一次性设置:

    CONFIGURE DEVICE TYPE sbt PARALLELISM 3;
    CONFIGURE DEFAULT DEVICE TYPE TO sbt;
    CONFIGURE CHANNEL 1 DEVICE TYPE sbt CONNECT ‘usr1/pwd1@n1′;
    CONFIGURE CHANNEL 2 DEVICE TYPE sbt CONNECT ‘usr2/pwd2@n2′;
    CONFIGURE CHANNEL 3 DEVICE TYPE sbt CONNECT ‘usr3/pwd3@n3′;

    可以写一个备份脚本,用于整个database的备份,它可运行在所有的node上。

    BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;

    8、重建与恢复

    通过RAC访问的database的介质恢复要求至少每个thread至少有一个归档日志文件。但如果一个thread的在线redo log包含了足够的恢复信息,对任何thread重建归档日志文件是不必要的。

    如果使用RMAN进行介质恢复并且共享归档日志目录,可通过SET子句修改自动重建的destination到开始恢复的node的本地目录中。如果从每个node备份的归档日志没有使用中枢的介质管理系统,必须先从远程nodes重建所有的log files,并将其移动到使用RMAN进行恢复的node的主机上。但是如果使用了中枢介质管理系统,可用RMAN的AUTOLOCATE特性。这可用在远程node上的本地tape设备恢复database。

    如果恢复达到某一时点,此时一个额外的thread被enabled。恢复进程需要该thread的一个归档log file。如果使用一个备份control file,当所有的归档log files都用完后,需要重定向恢复进程到在线redo log files来完成恢复。如果在恢复过程中一个thread被disable了,进程将通知该thread的log file已经不再需要。

    9、在RAC中的并发恢复

    它是缩短恢复时间最有效的方法。可使用RMAN或是其他Oracle tools例如sql*plus来执行RAC的并发恢复。

    用RMAN的RESTORE和RECOVER语句,Oracle server自动的并发恢复:

    *  restoring data files:分配的channels的数量决定了最大的并发度

    *  应用增量备份:最大的并发度是由分配的channels的数量决定的

    用其他工具执行并发恢复,要么设置RECOVERY_PARALLELISM初始化参数(如果是0或是1,将执行串行恢复,并且不能超过PARALLEL_MAX_SERVERS参数)或在RECOVER 命令中加入PARALLEL子句。

    在并发恢复过程中:

    *  并发恢复中,一个进程读取log files,多个进程将redo应用到data files中。

    *  Oracle自动的start多个恢复进程,无需使用更多的session

    *  这些processes可以在一个Instance也可以延伸到多个Instances上

    10、在RAC中的fast-start 并发回滚

    如果存在长期运行的较大事务,同时nodes有多个CPUs,应该考虑设置初始化参数FAST_START_PARALLEL_ROLLBACK为一个非默认值。这使得恢复进程的rollback阶段也可并发执行。因为每个Instance负责自己的恢复进程,所以需要通过每个Instance上的视图V$FAST_START_SERVERS和V$FAST_START_TRANSACTIONS或是全局视图GV$FAST_START_SERVERS和GV$FAST_START_TRANSACTIONS监控并调节并发的回滚。尽管fast-start 并发回滚不能执行跨Instances的回滚,但可以改善RAC database的回滚进程。

    11、OCR的管理

    OCR包含了RAC和CRS中cluster和database的重要设置信息。一个cluster中的CRS Instance会每四个小时自动创建一个OCR的备份,并且CRS会报错最近的3个副本。

    CRS Instance也会在每天和每周的开始创建一个OCR的备份,并保存最近的两个版本。尽管不能自定义备份的频度和保存的备份数量,但可以通过ocrconfig -showbackup查看自动保存的备份的文件名称位置。

    默认的自动备份路径是<CRS Home>/cdata/<cluster name>目录下。建议将该位置修改到一个被所有nodes共享的位置。具体使用命令ocrconfig -backuploc命令。

    由于OCR信息的重要性,建议手工创建自动产生的物理备份的副本,并使用ocrconfig -export命令产生OCR的逻辑备份。对此命令需要指定文件名作为参数,它产生的是二进制文件,不能进行编辑。

    note:当一个OCR client正在执行时,export OCR操作会返回error。

    对于OCR的恢复,需要执行下面的步骤:

    ①通过时间,找到不一致发生之前的OCR的backup

    ②以单用户模式或是runlevel 1的方式restart所有的nodes

    ③使用下面的命令恢复或是import OCR

    $ ocrconfig –restore /app/oracle/product/10.1.0/crs_1/cdata/jfv_clus/day.ocr
    $ ocrconfig –import /u01/logical_ocr/yesterday

    ④以多用户模式restart所有nodes

    12、voting disk的恢复

    一般,voting disk应该被存储在冗余设备中,避免数据的丢失。但如果不幸丢失了voting disk,如果有backup,可以通过dd命令恢复它。

    应该养成这样的习惯:当CRS安装后立即备份voting disk;当在cluster中增加或是删除nodes后立即备份voting disk。

    如果丢失了voting disk,并没有备份,则只能重新安装CRS。

0
相关文章