RMAN备份恢复——RAC环境数据库的备份(九)

已有 1233 次阅读2013-1-20 20:44 |个人分类:RMAN| 数据库,

RAC环境的备份、恢复和普通数据库的备份、恢复是有一些区别的。

RMAN备份恢复——RAC环境数据库的备份(一):http://yangtingkun.itpub.net/post/468/285260

RMAN备份恢复——RAC环境数据库的备份(二):http://yangtingkun.itpub.net/post/468/287076

RMAN备份恢复——RAC环境数据库的备份(三):http://yangtingkun.itpub.net/post/468/287617

RMAN备份恢复——RAC环境数据库的备份(四):http://yangtingkun.itpub.net/post/468/288295

RMAN备份恢复——RAC环境数据库的备份(五):http://yangtingkun.itpub.net/post/468/288557

RMAN备份恢复——RAC环境数据库的备份(六):http://yangtingkun.itpub.net/post/468/288973

RMAN备份恢复——RAC环境数据库的备份(七):http://yangtingkun.itpub.net/post/468/289665

RMAN备份恢复——RAC环境数据库的备份(八):http://yangtingkun.itpub.net/post/468/290599

这篇介绍基于裸设备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已经加载成功。

注意,如果需要配置在系统重启后生效,应该将share命令和mount命令的修改添加到主机的/etc/dfs/dfstab文件和/etc/vfstab。详细内容可以参考:http://yangtingkun.itpub.net/post/468/284160

下面修改数据库的初始化参数:

$ sqlplus "/ as sysDBA"

SQL*Plus: Release 10.2.0.3.0 - Production on 星期一 5 28 19:27:37 2007

Copyright (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 options

SQL> 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 2007

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

已连接到目标数据库 (未启动)

RMAN> startup mount

Oracle 实例已启动数据库已装载

系统全局区域总计 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的时候一定要慎重。


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 加入社区

他的关注

意见
反馈