现在的位置: 首页 > 综合 > 正文

OCFS2+ASM 的RAC安装文档

2013年02月18日 ⁄ 综合 ⁄ 共 6931字 ⁄ 字号 评论关闭

有关RAC 的一些概念性和原理性的知识, 请参考我的blog:

http://blog.csdn.net/tianlesoftware/archive/2010/02/27/5331067.aspx

 

这次实验是 OCFS2+ASM 来实现的,至于裸设备平台的搭建,以后在整理。在生产环境中还是raw + ASM 比较多。 

实验平台:Oracle 10gR2 RAC + RHEL 4.0 +VMWare GSX 3.2.0  

 

安装步骤:

1.安装前准备及OS安装配置 

2.安装Oracle 10gR2 clusterware 

3.安装Oracle 10gR2 database 

4.配置netca 

5.创建ASM 实例

6.配置dbca创建数据库 

7.检查RAC状态

8.RAC 卸载

 

 

一. 安装前准备及OS安装配置 

Host OS 准备 

 

1. 从Oracle OTN下载 oracle 10gR2 for x86 linux,下2个zip, 一个是clusterware zip,一个是database zip, comp CD 可选.

2. 准备的RHEL 5(x86)

3. 搞清楚你的linux的kernel version 

4. 从Oracle OTN下载 ocfs2 , ocfs2 tools, ocfs2 console, ASMLib, ASMLib support , 记住这些都是针对你的kernel的,不要下错 

http://oss.oracle.com/projects/ocfs2/source.html

http://oss.oracle.com/projects/ocfs2/files/

http://oss.oracle.com/projects/ocfs2-tools/files/

注意, ocfs2 tools 和 ocfs2 console 在一个页面下载。

 

http://www.oracle.com/technology/tech/linux/asmlib/index.html

该页面有下载地址,注意选择CPU 类型。 里面有asmlib 和 support。 在同一个页面。

 

5. VMWare GSX 3.2.0 for linux 

   

虚拟机 Workstation,GSX Server ESX之间的区别

http://blog.csdn.net/tianlesoftware/archive/2010/02/22/5316767.aspx

 

 

OS安装 

 

1. 在vmware console 中创建redhat 4 实例,取名rac1. 内存600M, 硬盘12GB。

2. 创建好后vmware OS之后,加上一块NIC网卡

3. 在gsx里vdiskmanager 创建Share Disk。

 

ocfs2 for OCR and voting disk, ASM for Oracle DATA.

 

Dos 下进入vmware 的安装目录,运行一下命令

 

vmware-vdiskmanager 创建 pre-allocated并且是lsi contoller的硬盘 1GB一个 for ocfs2 for OCR + CRS voting 

vmware-vdiskmanager.exe -c -s 500Mb -a lsilogic -t 2 E:/VM/RACShare/ocfs2_ocr_crs.vmdk

 

vmware-vdiskmanager 创建 pre-allocated并且是lsi contoller的硬盘 for Oracle data & flash recovery area

vmware-vdiskmanager.exe -c -s 4096Mb -a lsilogic -t 2 E:/VM/RACShare/asm_data.vmdk

vmware-vdiskmanager.exe -c -s 2048Mb -a lsilogic -t 2 E:/VM/RACShare/asm_recovery.vmdk

 

做好后,share目录就会产生你刚才创建的这些vmdk了. 

 

4. 到 rac1的目录,打开rac1.vmx , 在最后空白处添加这几段内容(一定要最后)

 

scsi1.present = "TRUE" 

scsi1.virtualDev = "lsilogic" 

scsi1.sharedBus = "virtual" 

 

这段是打开 scsi1上的使用,并且设置成virtual, controller设置成lsilogic 

 

然后依次添加 

 

scsi1:1.present = "TRUE" 

scsi1:1.mode = "independent-persistent" 

scsi1:1.filename = "E:/VM/RACShare/ocfs2_ocr_crs.vmdk" 

scsi1:1.deviceType = "plainDisk" 

 

scsi1:2.present = "TRUE" 

scsi1:2.mode = "independent-persistent" 

scsi1:2.filename = "E:/VM/RACShare/asm_data.vmdk" 

scsi1:2.deviceType = "plainDisk" 

 

scsi1:3.present = "TRUE" 

scsi1:3.mode = "independent-persistent" 

scsi1:3.filename = "E:/VM/RACShare/asm_recovery.vmdk" 

scsi1:3.deviceType = "plainDisk" 

 

 

 

最后添加这个 

disk.locking = "false" 

diskLib.dataCacheMaxSize = "0" 

diskLib.dataCacheMaxReadAheadSize = "0" 

diskLib.DataCacheMinReadAheadSize = "0" 

diskLib.dataCachePageSize = "4096" 

diskLib.maxUnsyncedWrites = "0"

 

 

这段是对vmware使用共享硬盘的方式进行定义

 

保存退出之后,重新打开你的vmware-console,你就可以看到2个vmware guest OS的配置中,都有这些硬盘出现了. 

 

 

5. 然后就安装你的vmware  OS, 安装的时候,为了方便,把包全部装上,省得以后麻烦。

 

将rac1结点复制到rac2, 在虚拟机中用新ID打开,修改IP地址,hostname,节点2创建完成。 采用复制就省的安装2次系统,比较方便。

 

6.  配置你的2个网卡的固定IP,hostname, DNS, gateway, time server (NTP)  

/etc/sysconfig/network-script/ifcfg-eth0 

/etc/sysconfig/network-script/ifcfg-eth1 

 

修改机器名,IP和网关 -- 默认网关必须设置,不然 vipca 报错

 

[root@rac1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=10.85.10.119

NETMASK=255.255.255.0

GATEWAY=10.85.10.253

 

修改主机名
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=rac1

修改完之后重启生效:
/etc/rc.d/init.d/network restart 重新启动

查看DNS
cat /etc/resolv.conf 

 

同步时间:

1. rac1上用root用户执行

#chkconfig time on     #在系统引导的时候自动启动

 

2. 在rac2 上添加任务,每一分钟和rac1进行一次时间同步。

[root@rac2 ~]# crontab -l

*/1 * * * * rdate -s 10.85.10.119

 

rac 对节点间时间较敏感,如果不同步在安装clusterware 时后会报错,而且在安装vipca 的时候也会报错。 具体时间同步参考我的blog:

Linux 时间同步配置

http://blog.csdn.net/tianlesoftware/archive/2010/02/21/5315587.aspx

 

linux 下修改日期和时间

http://blog.csdn.net/tianlesoftware/archive/2009/11/13/4808096.aspx

 

 

7. 安装结束后,进入 OS, 修改解析文件: /etc/hosts 

 

如下 

注:机器名和public名要一样

 

127.0.0.1 localhost (必须要这样) 

 

10.85.10.119 rac1

10.85.10.121 rac2

 

192.168.1.119 rac1-priv

192.168.1.121 rac2-priv

 

10.85.10.122 rac1-vip

10.85.10.123 rac2-vip

 

两个node都要一样. 

 

修改后要确认这个hosts 都正确 (ping) 

 

 

8. 建立用户等效性

  建立等效用户之后,2个结点直接Oracle 用户互相访问就不在需要密码了, 这样就为RAC管理提供了可能性,如果等效性没有配好, RAC 肯定是装不起来的。 

 

group add dba oinstall 组在两个node上, 创建oracle 用户, 主组oinstall, 附加组是dba和disk 

 

#groupadd oinstall 

#groupadd dba 

#useradd -g oinstall -G dba oracle 

#passwd oracle 

 

建立等效用户

 

rac1:

[root@rac1 opt]# su - oracle

[oracle@rac1 ~]$ mkdir ~/.ssh

[oracle@rac1 ~]$ chmod 700 ~/.ssh

[oracle@rac1 ~]$ ssh-keygen -t rsa

[oracle@rac1 ~]$ ssh-keygen -t dsa

 

rac2

[root@rac2 opt]# su - oracle

[oracle@rac2 ~]$ mkdir ~/.ssh

[oracle@rac2 ~]$ chmod 700 ~/.ssh

[oracle@rac2 ~]$ ssh-keygen -t rsa

[oracle@rac2 ~]$ ssh-keygen -t dsa

 

切换回rac1,接着执行:

[oracle@rac1 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

[oracle@rac1 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

 

提示:下列命令会提示你输入rac2 的oracle 密码,按照提示输入即可,如果失败可重新尝试执行命

令。

[oracle@rac1 ~]$ scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys

[oracle@rac1 ~]$ ssh rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

[oracle@rac1 ~]$ ssh rac2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

[oracle@rac2 ~]$ scp ~/.ssh/authorized_keys rac1:~/.ssh/authorized_keys

 

确保2个node都有相互的结点信息。

 

两机相互执行,看看是否还需要输入密码

[oracle@rac1 ~]$ ssh rac1 date

[oracle@rac1 ~]$ ssh rac2 date

[oracle@rac1 ~]$ ssh rac1-priv date

[oracle@rac1 ~]$ ssh rac2-priv date

切换至rac2 执行

[oracle@rac2 ~]$ ssh rac1 date

[oracle@rac2 ~]$ ssh rac2 date

[oracle@rac2 ~]$ ssh rac1-priv date

[oracle@rac2 ~]$ ssh rac2-priv date

 

 

9. 在每个结点上创建目录

 

 

[root@rac2 ~]# mkdir -p /u01/app/oracle

[root@rac2 ~]# chown -R oracle:oinstall /u01

[root@rac2 ~]# chmod -R 777 /u01

这个目录给oracle和clusterware系统的 

 

[root@rac2 ~]# mkdir -p /u02/oradata/orcl

[root@rac2 ~]# chown -R oracle:oinstall /u02

[root@rac2 ~]# chmod -R 777 /u02

这个目录给 ocfs2用来装OCR, CRS voting 的 

 

10. 修改你的 /etc/sysctl.conf ,添加这些kernel 参数  

net.core.rmem_default=262144 

net.core.wmem_default=262144 

net.core.rmem_max=262144 

net.core.wmem_max=262144 

 

kernel.shmall = 78643200 

kernel.shmmax = 314572800 

kernel.shmmni = 4096 

kernel.sem = 250 32000 100 128 

fs.file-max = 65536 

net.ipv4.ip_local_port_range = 1024 65000 

 

 # sysctl -p 立刻生效

 

kernel.shmall为物理内存除以pagesize;

kernel.shmmax为物理内存的一半;

fs.file-max为512 乘以 processes (如128个process则为 65536);

net.ipv4.ip_local_port_range/net.core.rmem_default/net.core.rmem_max三个参数设置和官方文档不一样, 这是根据metalink 343431.1 最新要求更改的;

net.ipv4.tcp_rmem/net.ipv4.tcp_wmem两个参数一般情况下无需设置, 除非是在Dataguard/Streams等需很多网络传输情况下;

其它参数根据官方文档要求设置即可.

 

具体内容参考我的blog:

 

Linux 内核参数及Oracle相关参数调整

http://blog.csdn.net/tianlesoftware/archive/2009/10/15/4668741.aspx

 

 

11. 设置用户资源限制

因为所有的进程都是以Oracle 身份来运行的,因此需要定义Oracle 用户能够使用的系统资源数量。

 

vi /etc/sysconfig/limits.conf 

--使用HugePage 内存技术,添加下面2行

Oracle soft memlock 5242880

Oracle hard memlock 524280

--进程句柄数量

oracle soft nproc 2047 

oracle hard nproc 16384

-- 文件句柄

oracle soft nofile 65536 

oracle hard nofile 65536 

 

将下面一行添加到/etc/pam.d/login文件中:
session required /lib/security/pam_limits.so 

 

 

12. 配置 hangcheck-timer 模块

Hangcheck-timer 是Linux 提供的一个内核级的IO-Fencing 模块, 这个模块会监控Linux 内核运行状态, 如果长时间挂起, 这个模块会自动重启系统。 这个模块在Linux 内核空间运行, 不会受系统负载的影响。 这个模块会使用CPU的Time Stamp Counter(TSC) 寄存器,这个寄存器的值会在每个时钟周期自动增加, 因此使用的是硬件时间,所以精度更高。

抱歉!评论已关闭.