Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1867932
  • 博文数量: 524
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 2483
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-25 18:36
个人简介

打杂

文章分类

全部博文(524)

文章存档

2022年(3)

2021年(9)

2019年(1)

2018年(32)

2017年(11)

2016年(152)

2015年(198)

2014年(118)

分类: Oracle

2014-12-23 14:00:18

 

三、归档日志放在本地,使用NFS解决
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,确保NFS MOUNT已经加载成功。
注意,如果需要配置在系统重启后生效,应该将share命令和mount命令的修改添加到主机的/etc/dfs/dfstab文件和/etc/vfstab。详细内容可以参考:http://yangtingkun.itpub.net/post/468/284160
如果希望系统重启后自动进行mount,那么在nfs客户端,需要修改/etc/vfstab文件:
racnode2:/data1/archivelog - /archivelog2 nfs - yes -
为了保证nfs的服务器端重启后,share信息不丢失,可以在/etc/dfs/dfstab文件中添加:
share -F nfs -o rw=racnode1 /data1/archivelog

下面修改数据库的初始化参数:
$ sqlplus "/ as sysdba"
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> }

下面就可以在任意一个节点上进行备份:
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> }

恢复部分:
$ srvctl stop db -d testrac
$ rman target /
RMAN> startup mount
RMAN> run
2> {
3> allocate channel c1 device type sbt;
4> allocate channel c2 device type sbt;
5> restore database;
6> recover database;
7> }

问题:
由于在主机上进行了NFS mount,数据库的备份和恢复可以通过一个节点进行。但是这种情况存在着一个比较严重的问题。就是NFS mount在一个节点没有启动的情况下,会极大的影响另一个节点的性能。也就是说,如果RAC一个节点出现故障,导致机器无法正常启动的话,另一个节点不但要承担全部的数据库压力,而且还会受到nfs mount带来的性能负载,基本上导致这个节点无法正常工作。
由于性能上的考虑,使用NFS mount的时候一定要慎重。

阅读(2030) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~