RAC11g+DG 高可用容灾方案部署

在写本博文之前,详细阅读了dave大神的博客http://blog.csdn.net/tianlesoftware/article/details/8212349,得到很多启发。

软件环境

prise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production

more /etc/redhat-release

系统环境

Linux rac1.localdomain 2.6.18-238.el5 #1 SMP Sun Dec 19 14:22:44 EST 2010 x86_64 x86_64 x86_64 GNU/Linux

集群数据库准备前的工作

网络配置

format : .

rac1

10.37.4.120 rac1.localdomain rac1
192.168.56.120 rac1-pri.localdomain rac1-pri
10.37.4.122 rac1-vip.localdomain rac1-vip

rac2

10.37.4.121 rac2.localdomain rac2
192.168.56.121 rac2-pri.localdomain rac2-pri
10.37.4.124 rac2-vip.localdomain rac2-vip

scan ip

10.37.4.131 rac-scan.localdomain rac-scan

**问题:
1、 Error: No suitable device found: no device found for connection ‘ System eth0′.[FAILED]
1、删除/etc/udev/rules.d/70-persistent-net.rules文件,重启系统。
2、如果上面的不起作用,那么去看ifcfg-eth0文件中的HWADDR是否正确,改成正确的HWADDR。

系统内核配置
1、

vi  /etc/sysctl.conf

fs.aio-max-nr = 1048576
fs.file-max = 6815744

kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
sysctl -p

2、

vi /etc/security/limits.conf 

oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536
oracle              soft    stack   10240

grid                soft    nproc   2047
grid                hard    nproc   16384
grid                soft    nofile  1024
grid                hard    nofile  65536
grid                soft    stack   10240

用户权限

2、用户组规划:

userdel oracle

groupdel oinstall
groupdel dba
groupdel oper
groupdel asmdba

groupadd -g 501 oinstall
groupadd -g 502 dba
groupadd -g 503 oper
groupadd -g 504 asmadmin
groupadd -g 505 asmoper
groupadd -g 506 asmdba

groupdel asmadmin
groupdel asmoper

userdel grid
userdel oracle
useradd -u 5002 -g oinstall -G dba,oper,asmadmin,asmoper,asmdba -d /home/grid grid
useradd -u 5001 -g oinstall -G dba,oper,asmdba -d /home/oracle oracle

修改用户参数文件:
—-oracle

PATH=$PATH:$HOME/bin

export PATH
export PS1="`/bin/hostname -s`-> "
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=node2.localdomain
export ORACLE_SID=jhdb1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_UNQNAME=devdb
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export EDITOR=vi
export LANG=en_US
export NLS_LANG=american_america.AL32UTF8
export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'
umask 022

—-grid

PATH=$PATH:$HOME/bin

export PATH
export PS1="`/bin/hostname -s`-> "
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=+ASM1
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export ORACLE_TERM=xterm
export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export EDITOR=vi
export LANG=en_US
export NLS_LANG=american_america.AL32UTF8
umask 022

—目录权限:

mkdir -p /u01/app/grid
mkdir -p /u01/app/11.2.0/grid
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01
chown -R grid:oinstall /u01/app/grid
chown -R grid:oinstall /u01/app/11.2.0  
chmod -R 775 /u01

系统服务配置
1.停止NTP服务
grid 时间同步服务:grid提供了cluster time synchronization service(cssd),使用此功能就需要关闭NTP服务。

service ntpd stop
chkconfig ntpd off
cp /etc/ntp.conf /etc/ntp.conf.bak  
rm -rf /etc/ntp.conf

2.开启vsftpd服务

service iptables stop
setenforce  0

3.关闭防火墙
vi /etc/selinux/config
4.开启VNC服务

centos 开启VNC

查看vncserver配置文件

rpm -qc tigervnc-server

SSH对等性设置
SSH对等性配置:
双节点:

rm -rf ~/.ssh
mkdir  ~/.ssh
ssh-keygen -t rsa   
ssh-keygen -t dsa
cat ~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys
cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys rac2:~/.ssh/keys

rac2 :

cat ~/.ssh/keys >> authorized_keys
scp authorized_keys rac1:/home/grid/.ssh/authorized_keys

精简
对等性验证:
ssh rac1 date
ssh rac2 date
DNS服务器配置
1.软件包:
bind-9.3.6-4.Pl.el5_4.2.x86_64.rpm
bind-chroot-9.3.6-4.Pl.el5_4.2.x86_64.rpm
caching-nameserver-9.3.6-4.Pl.el5_4.2.x86_64.rpm

2.配置/var/named/chroot/etc/named.conf文件
由拷贝而来
cp -p named.caching-nameserver.conf named.conf
把 127.0.0.1 改成 “ any; ”允许所有的ip去访问
3.配置ZONE文件
修改/var/named/chroot/etc/named.rfrc1912.zons文件
主要目的是为了能正确解析SCAN-IP,
正向zone文件
zone “localdomain” IN {
type master;
file “localdomain.zone”;
allow-update { none; };
};

scan:
192.168.56.140 rac.scan.localdomain rac-scan

反向zone文件
zone “56.168.192.in-addr.arpa” IN{
type master;
file “56.168.192.in-addr.arpa”;
allow-update { none; };
};

配置正反向解析数据库文件:
/var/named/chroot/var/named
正向解析数据库文件 localdomain.zone
rac-scan IN A 192.168.56.140

反向解析数据库文件 cp -p named.local 56.168.192.in-addr.arpa
140 IN PTR rac-scan.localdomain.

启动DNS服务器 /etc/init.d/named start

校验
rac1:
配置 /etc/resolv.conf
search localdomain
nameserver 192.168.56.120

rac2:
配置 /etc/resolv.conf
search localdomain
nameserver 192.168.56.120

验证 nslookup rac-scan、nslookup rac-scan.localdomain nslookup 10.37.4.173
centos 6 DNS配置:

1:yum -y install bind-chroot.x86_64 bind.x86_64
2: vi /etc/named.conf
把 127.0.0.1 、localhost 改成 any

//反向解析
zone “4.37.10.in-addr.arpa” IN {
type master;
file “4.37.10.in-addr.arpa.zone”;
allow-update { none; };
};

//正向解析
zone “localdomain” IN {
type master;
file “named.localhost”;
allow-update { none; };
};
3:
//正向解析DNS库
vi /var/named/named.localhost
$TTL 86400
@ IN SOA @ root.localdomain. (
42 ; serial
3H ; refresh
15M ; retry
15W ; expire
1D ) ; minimum

                  NS      @
                     A   10.37.4.170

rac-scan IN A 10.37.4.173

//反向解析DNS库
vi /var/named/4.37.10.in-addr.arpa.zone
$TTL 86400
@ IN SOA 4.37.10.in-addr.arpa. localhost.localdomain. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum

      NS    @
      A     10.37.4.170

173 IN PTR rac-scan.localdomain.

重启DNS服务器

service named restart

**CentOS DNS resolv重启无效的解决方法
在此要强调一点的是,直接修改/etc/resolv.conf这个文件是没用的,网络服务重启以后会根据/etc/sysconfig/network-scripts/ifcfg-eth0来重载配置,如果ifcfg-eth0没有配置DNS,那么resolv.conf会被冲掉,重新变成空值。
解决方案:在/etc/sysconfig/network-scripts/ifcfg-eth0单独增加一行“DNS=10.37.4.170”

查看会话端口 netstat -ltunp |grep named
ASM共享存储配置

在11g 之前,可以直接使用裸设备安装rac。
11g之后,必须用asm,所以这里就会涉及到设备持久话的问题,持久化有3种方法:
(1) udev
(2) multipath
(3) Oracle asmlib
udev 绑定raw裸磁盘:
raw挂载:
这里是使用客户端链接ISCIS共享的磁盘:
1. 1. 检查系统是否已安装iSCSI initiator
2. 因为安装iSCSI 驱动需要配合核心来编译,所以会使用到内核源代码,此外, 也需要编译器(compiler)的帮助,因此,确认Linux 系统当中存有下列软件 kernel-source 、kernel、gcc、perl、Apache。打开一个终端,使用命令检查:
3. [root@rac1 mnt]# rpm -qa|grep iscsi
4. iscsi-initiator-utils-6.2.0.872-6.el5
5. 2. 查看Initiator IQNname IQN写入盘阵里
6. [root@rac1 mnt]# more /etc/iscsi/initiatorname.iscsi
7. InitiatorName=iqn.1994-05.com.redhat:e9cbe2cae7e4 写入iscsi target
8. 3.开启ISCSI服务
9. [root@rac1 mnt]# service iscsid start
10. Starting iSCSI daemon:
11. [ OK ]
12. 4.监测ISCSI target(节点)
13. #iscsiadm -m discovery -t sendtargets -p ipaddress(盘阵的IP地址)
14. root@rac1 mnt]# iscsiadm -m discovery -t sendtargets -p 10.37.55.2
15.
16. 5. 登录target
17. #iscsiadm -m node -T targetname -p ipaddress –login(盘阵的IP地址)
18. # iscsiadm -m node -T iqn.1991-05.com.microsoft:jhzg-cc01-data-55.2-target -p 10.37.55.2:3260 -l
19.
20. 6.查看ISCSI
21. [root@rac1 mnt]# iscsiadm -m node -p 10.37.55.2 - l
22. 7.设置ISCSI target自动挂载
23. # iscsiadm -m node -T iqn.1991-05.com.microsoft:jhzg-cc01-data-55.2-target -p 10.37.55.2:3260 –op update -n node.startup -v automatic
24. (iqn.1991-05.com.microsoft:jhzg-cc01-4.100-target)
25. 检查iscsi服务是否开机自动启动 : chkconfig –list|grep iscsi
26. 8重启系统,然后fdisk -l 查看ISCSI挂载的磁盘。
27. mkfs.ext3 /dev/sdj
28. mount -t /dev/sdj /mnt
29. vi /etc/fstab
30. /dev/sdj mnt ext3 defaults 0 0
31. 卸载命令:
32. 1:删除/var/lib/iscsi/nodes和/var/lib/iscsi/sendtargets目录下所有信息
33. /var/lib/iscsi/nodes 目录下存放的是所有iscsi挂载的iqn
34. /var/lib/iscsi/sendtargets 目录下存放的是iscsi挂载存储IP
35. 2:重启服务器
36. [root@node1 /]# reboot
37. 3:如果不想重启服务器卸载就使用卸载命令
38. iscsiadm -m node -T iqn.1991-05.com.microsoft:jhzg-cc01-datastore-55.2-target -u
39. iscsiadm -m node -T iqn.1991-05.com.microsoft:jhzg-cc01-data-55.2-target -u
40. 卸载命令:
41. iscsiadm -m node -T iscsi存储iqn -u
udev绑定
(猜想:是不是只有iscsi设备才能使用scsi_id获取uuid)
:使用udev把设备编号跟设备物理ID绑定,从而实现固化效果。
udev配置文件
主要的udev配置文件是/etc/udev/udev.conf。这个文件通常很短,他可能只是包含几行#开头的注释,然后有几行选项:
42. udev_root=“/dev/”
udev_rules=“/etc/udev/rules.d/”
udev_log=“err“
43. 上面的第二行非常重要,因为他表示udev规则存储的目录,这个目录存储的是以.rules结束的文件。每一个文件处理一系列规则来帮助udev分配名字给设备文件以保证能被内核识别。
你的/etc/udev/rules.d下面可能有好几个udev规则文件,这些文件一部分是udev包安装的,另外一部分则是可能是别的硬件或者软件包 生成的。

RHEL5:

for i in b c d e f ;
do
echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/sbin/scsi_id -g -u -s /dev/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules
done
  1. 运行结果如下:
  2. KERNEL==”sd*”, BUS==”scsi”, PROGRAM==”/sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/$name”, RESULT==”36001438009b01c320000300000500000”, NAME=”asm-arch1”, OWNER=”grid”, GROUP=”asmadmin”, MODE=”0660”

    1. RHEL6
  3. for i in b c d e f ;
  4. do
  5. echo “KERNEL==\”sd*\”, BUS==\”scsi\”, PROGRAM==\”/sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/$name\”, RESULT==\”/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i\”, NAME=\”asm-disk$i\”, OWNER=\”grid\”, GROUP=\”asmadmin\”, MODE=\”0660\”” >> /etc/udev/rules.d/99-oracle-asmdevices.rules
  6. done

为了避免系统在重启后磁盘路径改变从而导致外部应用无法读取的问题,通过磁盘RESULT编码来识别磁盘并逻辑固定。


    1. (2) 对于磁盘子分区的绑定

    1. 62.
  1. Redhat Enterprise Linux 5 用如下参数
  2. KERNEL==”sd?[1-2]”, BUS==”scsi”, PROGRAM==”/sbin/scsi_id -g -u -s %p”, RESULT==”1ATA_VBOX_HARDDISK_VBaef9fa71-c32978c8”, NAME=”asm-ocr%n”, OWNER=”grid”, GROUP=”asmdba”, MODE=”0660”

    1. Redhat Enterprise Linux 6 用如下参数
  3. KERNEL==”sd?[1-2]”, BUS==”scsi”, PROGRAM==”/sbin/scsi_id -g -u /dev/$name”, RESULT==”1ATA_VBOX_HARDDISK_VBaef9fa71-c32978c8”, NAME=”asm-ocr%n”, OWNER=”grid”, GROUP=”asmdba”, MODE=”0660”
  4. Or
  5. KERNEL==”sdb1”, BUS==”scsi”, PROGRAM==”/sbin/scsi_id -g -u -d /dev/$parent” RESULT==”1ATA_VBOX_HARDDISK_VB8383313d-441fd502”, NAME=”asm-crs1”, OWNER=”grid”, GROUP=”asmadmin”, MODE=”0660”

    1. more /etc/udev/rules.d/99-oracle-asmdevices.rules 如下:
  6. KERNEL==”sd*”, BUS==”scsi”, PROGRAM==”/sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/$name”, RESULT==”360003ff44dc75adc9f3304ea673307c8”, NAM
  7. E=”asm-diskc”, OWNER=”grid”, GROUP=”asmadmin”, MODE=”0660”
  8. KERNEL==”sd*”, BUS==”scsi”, PROGRAM==”/sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/$name”, RESULT==”360003ff44dc75adc8055e84e9f6c5362”, NAM
  9. E=”asm-diskd”, OWNER=”grid”, GROUP=”asmadmin”, MODE=”0660”
  10. KERNEL==”sd*”, BUS==”scsi”, PROGRAM==”/sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/$name”, RESULT==”360003ff44dc75adc8479b2efc6d42b45”, NAM
  11. E=”asm-diskb”, OWNER=”grid”, GROUP=”asmadmin”, MODE=”0660”
  12. start_udev会自动加载/etc/udev/rules.d/99-oracle-asmdevices.rules
  13. On SLES10:
  14. # /etc/init.d/boot.udev stop

/etc/init.d/boot.udev start


  1. On RHEL5/OEL5/OL5:
  2. # /sbin/udevcontrol reload_rules

/sbin/start_udev

  1. On RHEL6/OL6:
  2. #/sbin/udevadm control –reload-rules

/sbin/start_udev


    1. ls -al /dev/asm* //验证udev是否正确
  1. brw-rw—-. 1 grid asmadmin 8, 64 Apr 25 09:00 /dev/asm-diskb
  2. brw-rw—-. 1 grid asmadmin 8, 80 Apr 25 09:00 /dev/asm-diskc
  3. brw-rw—-. 1 grid asmadmin 8, 96 Apr 25 09:00 /dev/asm-diskd
  4. 自此udev绑定磁盘完毕!!
    如果ORACLE不提供相应的asmlib包,那么我们需要使用raw裸盘来创建asmdiskgroup
    oracle asmlib
    第三种方案:
    oracle asmlib:
    7.1 ASMlib驱动包安装:
    7.1.1 :确定
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值