RAC环境数据库的备份(基于裸设备RAC备份的NFS MOUNT解决方案)
这篇介绍基于裸设备RAC备份的NFS MOUNT解决方案。
上次通过建立ASM来解决归档日志的备份问题,其实这个问题还可以通过NFS MOUNT来解决。
Oracle的官方文档给出的方法就是通过NFS MOUNT方式来实现。
采用这个方法需要保证每个节点的归档目的地都是唯一的,并将这个归档目的地以NFS MOUNT方式加载到远端站点。首先在两个节点上分别建立归档的目的目录:# su - oracle
Sun Microsystems Inc. SunOS 5.8 Generic Patch October 2001
$ mkdir /data1/archivelog1 /data1/archivelog2
$ exit
# hostname
racnode1 # su - oracle
Sun Microsystems Inc. SunOS 5.8 Generic Patch October 2001
$ mkdir /data1/archivelog1 /data1/archivelog2
$ exit
# hostname
racnode2 在节点一设置目录的共享:# share -F nfs -o rw=racnode2 /data1/archivelog1 在节点二设置目录的共享:# share -F nfs -o rw=racnode1 /data1/archivelog2 在节点一加载节点二的目录:# mount racnode2:/data1/archivelog2 /data1/archivelog2 在节点二加载节点一的目录:# mount racnode1:/data1/archivelog1 /data1/archivelog1 在节点一上执行df –k:# df -k
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c1t0d0s0 10080200 3039584 6939814 31% /
/dev/dsk/c1t0d0s6 2053605 1048837 943160 53% /usr
/proc 0 0 0 0% /proc
mnttab 0 0 0 0% /etc/mnttab
fd 0 0 0 0% /dev/fd
/dev/dsk/c1t0d0s1 2053605 600760 1391237 31% /var
swap 8814576 16 8814560 1% /var/run
swap 8814880 320 8814560 1% /tmp
/dev/dsk/c1t1d0s7 35007716 25412617 9245022 74% /data
/dev/dsk/c1t0d0s5 10323610 17205 10203169 1% /opt
/dev/dsk/c2t0d9s6 516335185 3998478 507173356 1% /data1
/dev/dsk/c1t0d0s7 2205310 1310895 850309 61% /export/home
racnode2:/data1/archivelog2
516335185 81325 511090509 1% /data1/archivelog2 在节点二上执行df –k:# df -k
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c1t0d0s0 10232602 85539 10044737 1% /
/dev/dsk/c1t0d0s6 2053605 775276 1216721 39% /usr
/proc 0 0 0 0% /proc
mnttab 0 0 0 0% /etc/mnttab
fd 0 0 0 0% /dev/fd
/dev/dsk/c1t0d0s1 2053605 599018 1392979 31% /var
swap 8606280 16 8606264 1% /var/run
/dev/dsk/c2t500601603022E66Ad11s6
4898156 986341 3862834 21% /nbu
swap 8607504 1240 8606264 1% /tmp
/dev/dsk/c1t1d0s7 35009161 3433091 31225979 10% /data
/dev/dsk/c2t500601603022E66Ad10s6
516335185 81325 511090509 1% /data1
/dev/dsk/c1t0d0s5 10323610 85913 10134461 1% /opt
/dev/dsk/c1t0d0s7 2053605 780414 1211583 40% /export/home
racnode1:/data1/archivelog1
516335185 3998478 507173356 1% /data1/archivelog1 确保NFS MOUNT已经加载成功。具体方法见论坛相关贴子。 下面修改数据库的初始化参数:$ sqlplus "/ as sysdba"SQL*Plus: Release 10.2.0.3.0 - Production on 星期一 5月 28 19:27:37 2007Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining optionsSQL> col value format a50
SQL> select inst_id, value from gv$parameter where name = 'log_archive_dest_1';INST_ID VALUE
---------- --------------------------------------------------
2 LOCATION=/data1/archivelog
1 LOCATION=/data1/archivelog SQL> alter system set log_archive_dest_1 = 'LOCATION=/data1/archivelog1' sid = 'testrac1';系统已更改。 SQL> alter system set log_archive_dest_1 = 'LOCATION=/data1/archivelog2' sid = 'testrac2';系统已更改。备份现有归档日志,确保新的设置对以后的备份生效。RMAN> run
2> {
3> allocate channel c1 device type sbt connect sys/test@testrac1;
4> allocate channel c2 device type sbt connect sys/test@testrac2;
5> backup archivelog all delete all input;
6> }分配的通道: c1通道 c1: sid=292 实例=testrac1 devtype=SBT_TAPE通道c1: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)分配的通道: c2通道 c2: sid=292 实例=testrac2 devtype=SBT_TAPE通道c2: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)启动 backup 于 29-5月 -07当前日志已存档
通道 c1: 正在启动存档日志备份集
通道 c1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =260 记录ID=634 时间戳=623870265通道 c1: 正在启动段 1 于 29-5月 -07通道 c2: 正在启动存档日志备份集
通道 c2: 正在指定备份集中的存档日志
输入存档日志线程 =2序列 =176 记录 ID=635 时间戳=623870265通道 c2: 正在启动段 1 于 29-5月 -07通道 c1: 已完成段 1 于 29-5月 -07段句柄=7riiv09v_1_1 标记=TAG20070529T171748 注释=API Version 2.0,MMS Version 5.0.0.0通道 c1: 备份集已完成, 经过时间:00:01:05通道 c1: 正在删除存档日志
存档日志文件名=/data1/archivelog1/1_260_618591128.dbf 记录 ID=634 时间戳 =623870265通道 c2: 已完成段 1 于 29-5月 -07段句柄=7siiv09t_1_1 标记=TAG20070529T171748 注释=API Version 2.0,MMS Version 5.0.0.0通道 c2: 备份集已完成, 经过时间:00:01:05通道 c2: 正在删除存档日志
存档日志文件名=/data1/archivelog2/2_176_618591128.dbf 记录 ID=635 时间戳 =623870265完成 backup 于 29-5月 -07释放的通道: c1释放的通道: c2 下面就可以在任意一个节点上进行备份:RMAN> run
2> {
3> allocate channel c1 device type sbt;
4> allocate channel c2 device type sbt;
5> backup database plus archivelog delete all input;
6> }分配的通道: c1通道 c1: sid=297 实例=testrac2 devtype=SBT_TAPE通道c1: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)分配的通道: c2通道 c2: sid=298 实例=testrac2 devtype=SBT_TAPE通道c2: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)
启动 backup 于 29-5月 -07当前日志已存档
通道 c1: 正在启动存档日志备份集
通道 c1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =261 记录ID=637 时间戳=623870560输入存档日志线程 =1 序列 =262 记录 ID=638 时间戳=623870620通道 c1: 正在启动段 1 于 29-5月 -07通道 c2: 正在启动存档日志备份集
通道 c2: 正在指定备份集中的存档日志
输入存档日志线程 =2 序列 =177 记录 ID=636 时间戳=623870529输入存档日志线程 =2 序列 =178 记录 ID=639 时间戳=623870619通道 c2: 正在启动段 1 于 29-5月 -07通道 c1: 已完成段 1 于 29-5月 -07段句柄=7tiiv0ks_1_1 标记=TAG20070529T172339 注释=API Version 2.0,MMS Version 5.0.0.0通道 c1: 备份集已完成, 经过时间:00:03:56通道 c1: 正在删除存档日志
存档日志文件名 =/data1/archivelog1/1_261_618591128.dbf记录 ID=637 时间戳 =623870560存档日志文件名 =/data1/archivelog1/1_262_618591128.dbf 记录 ID=638 时间戳 =623870620通道 c2: 已完成段 1 于 29-5月-07段句柄=7uiiv0ks_1_1 标记=TAG20070529T172339 注释=API Version 2.0,MMS Version 5.0.0.0通道 c2: 备份集已完成, 经过时间:00:04:42通道 c2: 正在删除存档日志
存档日志文件名 =/data1/archivelog2/2_177_618591128.dbf 记录 ID=636 时间戳 =623870529存档日志文件名=/data1/archivelog2/2_178_618591128.dbf 记录 ID=639 时间戳 =623870619完成 backup 于 29-5月 -07启动 backup 于 29-5月 -07通道 c1: 启动全部数据文件备份集
通道 c1: 正在指定备份集中的数据文件
输入数据文件 fno=00006 name=+DISK/testrac/datafile/zhejiang01.dbf输入数据文件 fno=00009 name=+DISK/testrac/datafile/zhejiang03.dbf输入数据文件 fno=00012 name=+DISK/testrac/datafile/zhejiang05.dbf输入数据文件 fno=00008 name=+DISK/testrac/datafile/ndmain01.dbf输入数据文件 fno=00010 name=+DISK/testrac/datafile/ndindex01.dbf输入数据文件 fno=00001 name=+DISK/testrac/datafile/system.262.618591167输入数据文件 fno=00005 name=+DISK/testrac/datafile/users.267.618591279通道 c1: 正在启动段 1 于 29-5月 -07通道 c2: 启动全部数据文件备份集
通道 c2: 正在指定备份集中的数据文件
输入数据文件 fno=00007 name=+DISK/testrac/datafile/zhejiang02.dbf输入数据文件 fno=00011 name=+DISK/testrac/datafile/zhejiang04.dbf输入数据文件 fno=00014 name=+DISK/testrac/datafile/zhejiang06.dbf输入数据文件 fno=00002 name=+DISK/testrac/datafile/undotbs1.263.618591197输入数据文件 fno=00004 name=+DISK/testrac/datafile/undotbs2.266.618591249输入数据文件 fno=00013 name=+DISK/testrac/datafile/lt_index_ts01.dbf输入数据文件fno=00003 name=+DISK/testrac/datafile/sysaux.264.618591225通道 c2: 正在启动段 1 于 29-5月 -07通道 c1: 已完成段 1 于 29-5月 -07段句柄=7viiv0to_1_1 标记=TAG20070529T172823 注释=API Version 2.0,MMS Version 5.0.0.0通道 c1: 备份集已完成, 经过时间:00:38:26通道 c1: 启动全部数据文件备份集
通道 c1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
通道 c1: 正在启动段 1 于 29-5月 -07通道 c2: 已完成段 1 于 29-5月 -07段句柄=80iiv0to_1_1 标记=TAG20070529T172823 注释=API Version 2.0,MMS Version 5.0.0.0通道 c2: 备份集已完成, 经过时间:00:38:30通道 c2: 启动全部数据文件备份集
通道 c2: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE通道 c2: 正在启动段 1 于 29-5月 -07通道 c1: 已完成段 1 于 29-5月 -07段句柄=81iiv35q_1_1 标记=TAG20070529T172823 注释=API Version 2.0,MMS Version 5.0.0.0通道 c1: 备份集已完成, 经过时间:00:01:10通道 c2: 已完成段 1 于29-5月 -07段句柄=82iiv35u_1_1 标记=TAG20070529T172823 注释=API Version 2.0,MMS Version 5.0.0.0通道 c2: 备份集已完成, 经过时间:00:01:06完成backup 于 29-5月 -07启动 backup 于 29-5月 -07当前日志已存档
通道 c1: 正在启动存档日志备份集
通道 c1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =263 记录ID=640 时间戳=623871588输入存档日志线程 =1 序列 =264 记录 ID=642 时间戳=623873298通道 c1: 正在启动段 1 于 29-5月 -07通道 c2: 正在启动存档日志备份集
通道 c2: 正在指定备份集中的存档日志
输入存档日志线程 =2 序列 =179 记录 ID=641 时间戳=623871594输入存档日志线程 =2 序列 =180 记录 ID=643 时间戳=623873297通道 c2: 正在启动段 1 于 29-5月 -07通道 c2: 已完成段 1 于 29-5月 -07段句柄=84iiv38h_1_1 标记=TAG20070529T180817 注释=API Version 2.0,MMS Version 5.0.0.0通道 c2: 备份集已完成, 经过时间:00:02:06通道 c2: 正在删除存档日志
存档日志文件名 =/data1/archivelog2/2_179_618591128.dbf记录 ID=641 时间戳 =623871594存档日志文件名 =/data1/archivelog2/2_180_618591128.dbf 记录 ID=643 时间戳 =623873297通道 c1: 已完成段 1 于 29-5月-07段句柄=83iiv38h_1_1 标记=TAG20070529T180817 注释=API Version 2.0,MMS Version 5.0.0.0通道 c1: 备份集已完成, 经过时间:00:02:22通道 c1: 正在删除存档日志
存档日志文件名 =/data1/archivelog1/1_263_618591128.dbf 记录 ID=640 时间戳 =623871588存档日志文件名=/data1/archivelog1/1_264_618591128.dbf 记录 ID=642 时间戳 =623873298完成 backup 于 29-5月 -07释放的通道: c1释放的通道: c2备份结束,下面看看恢复的过程: $ srvctl stop db -d testrac
$ rman target /恢复管理器: Release 10.2.0.3.0 - Production on 星期三 5月 30 09:46:03 2007Copyright (c) 1982, 2005, Oracle. All rights reserved.已连接到目标数据库 (未启动) RMAN> startup mountOracle 实例已启动
数据库已装载系统全局区域总计 2147483648 字节Fixed Size 2031480 字节
Variable Size 335544456 字节
Database Buffers 1795162112 字节
Redo Buffers 14745600 字节 RMAN> run
2> {
3> allocate channel c1 device type sbt;
4> allocate channel c2 device type sbt;
5> restore database;
6> recover database;
7> }使用目标数据库控制文件替代恢复目录
分配的通道: c1通道 c1: sid=306 实例=testrac2 devtype=SBT_TAPE通道c1: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)分配的通道: c2通道 c2: sid=305 实例=testrac2 devtype=SBT_TAPE通道c2: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)启动 restore 于 30-5月 -07通道 c1: 正在开始恢复数据文件备份集
通道 c1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到+DISK/testrac/datafile/system.262.618591167正将数据文件00005恢复到+DISK/testrac/datafile/users.267.618591279正将数据文件00006恢复到+DISK/testrac/datafile/zhejiang01.dbf正将数据文件00008恢复到+DISK/testrac/datafile/ndmain01.dbf正将数据文件00009恢复到+DISK/testrac/datafile/zhejiang03.dbf正将数据文件00010恢复到+DISK/testrac/datafile/ndindex01.dbf正将数据文件00012恢复到+DISK/testrac/datafile/zhejiang05.dbf通道 c1: 正在读取备份段 7viiv0to_1_1通道 c2:正在开始恢复数据文件备份集
通道 c2: 正在指定从备份集恢复的数据文件
正将数据文件00002恢复到+DISK/testrac/datafile/undotbs1.263.618591197正将数据文件00003恢复到+DISK/testrac/datafile/sysaux.264.618591225正将数据文件00004恢复到+DISK/testrac/datafile/undotbs2.266.618591249正将数据文件00007恢复到+DISK/testrac/datafile/zhejiang02.dbf正将数据文件00011恢复到+DISK/testrac/datafile/zhejiang04.dbf正将数据文件00013恢复到+DISK/testrac/datafile/lt_index_ts01.dbf正将数据文件00014恢复到+DISK/testrac/datafile/zhejiang06.dbf通道 c2: 正在读取备份段 80iiv0to_1_1通道c1: 已恢复备份段 1段句柄 = 7viiv0to_1_1 标记 = TAG20070529T172823通道 c1: 恢复完成, 用时: 00:40:26通道 c2: 已恢复备份段 1段句柄 = 80iiv0to_1_1标记 = TAG20070529T172823通道 c2: 恢复完成, 用时: 00:40:51完成 restore 于 30-5月 -07启动 recover 于 30-5月 -07正在开始介质的恢复通道 c1: 正在启动到默认目标的存档日志恢复
通道 c2: 正在启动到默认目标的存档日志恢复
通道 c1: 正在恢复存档日志
存档日志线程 =2 序列=179通道 c2: 正在恢复存档日志
存档日志线程 =1 序列=263通道 c1: 正在恢复存档日志
存档日志线程 =2 序列=180通道 c1: 正在读取备份段 84iiv38h_1_1通道 c2: 正在恢复存档日志
存档日志线程 =1 序列=264通道 c2: 正在读取备份段 83iiv38h_1_1通道 c1: 已恢复备份段 1段句柄 = 84iiv38h_1_1 标记 = TAG20070529T180817通道c1: 恢复完成, 用时: 00:07:35存档日志文件名 =/data1/archivelog1/2_179_618591128.dbf 线程 =2 序列 =179通道 c2: 已恢复备份段 1段句柄 = 83iiv38h_1_1 标记 = TAG20070529T180817通道 c2: 恢复完成, 用时: 00:07:36存档日志文件名 =/data1/archivelog1/1_263_618591128.dbf 线程 =1 序列=263介质恢复完成, 用时: 00:03:25完成 recover 于 30-5月 -07释放的通道: c1释放的通道: c2 由于在主机上进行了NFS mount,数据库的备份和恢复可以通过一个节点进行。但是这种情况存在着一个比较严重的问题。就是NFS mount在一个节点没有启动的情况下,会极大的影响另一个节点的性能。也就是说,如果RAC一个节点出现故障,导致机器无法正常启动的话,另一个节点不但要承担全部的数据库压力,而且还会受到nfs mount带来的性能负载,基本上导致这个节点无法正常工作。由于性能上的考虑,使用NFS mount的时候一定要慎重。