在VMWare ESX4.1中以Oracle Linux5.5(x64)安装 3 节点 Oracle 11gr2 RAC

VMWare ESX4.1 中以 Oracle Linux5.5(x64) 安装 3 节点 Oracle 11gr2 RAC

(原创: flexitime ,转载请注明出处,谢谢)

 

1. 规划 IP

RAC1 IP 10.1.1.151

RAC1 VIP 10.1.1.161

RAC1 Priv-IP 10.1.0.1

 

RAC2 IP 10.1.1.152

RAC2 VIP 10.1.1.162

RAC2 Priv-IP 10.1.0.2

 

RAC3 IP 10.1.1.153

RAC3 VIP 10.1.1.163

RAC3 Priv-IP 10.1.0.3

 

SCAN IP 10.1.1.170

 

2. 设置一个新的虚拟机,设置内存为 3G (虚拟机最好不要少于 2G 内存,不然可能会出些意想不到的问题),硬盘为 25G ,增加一个网卡后安装 Oracle Linux5.5 ,全部默认安装。关闭 SELinux ,关闭防火墙。

 

3. 增加组及用户

groupadd -g 1000 oinstall

groupadd -g 1200 dba

useradd -u 1100 -g oinstall -G dba oracle

passwd oracle

 

4. 检查 rpm

# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})/n"|/

egrep "binutils|compat-libstdc++|elfutils-libelf|gcc|glibc|kernel-headers|ksh|libaio|libgcc|libgomp|libstdc|make|sysstat|unixODBC|pdksh"|sort

 

安装 rpm 包,在 VM 中连接上 Linux 的安装 DVD

执行以下命令(注,如所缺的不止这些包,请另行再安装,所要的包可以参考 Oracle 的标准安装文档)

 

mount -r -t iso9660 /dev/cdrom /media

cd /media/Server

rpm -Uvh binutils-2.*

rpm -Uvh compat-libstdc++-33*

rpm -Uvh elfutils-libelf-0.*

rpm -Uvh elfutils-libelf-devel-*

rpm -Uvh gcc-4.*

rpm -Uvh gcc-c++-4.*

rpm -Uvh glibc-2.*

rpm -Uvh glibc-common-2.*

rpm -Uvh glibc-devel-2.*

rpm -Uvh glibc-headers-2.*

rpm -Uvh ksh-2*

rpm -Uvh libaio-0.*

rpm -Uvh libaio-devel-0.*

rpm -Uvh libgcc-4.*

rpm -Uvh libstdc++-4.*

rpm -Uvh libstdc++-devel-4.*

rpm -Uvh make-3.*

rpm -Uvh sysstat-7.*

rpm -Uvh unixODBC-2.*

rpm -Uvh unixODBC-devel-2.*

 

rpm -Uvh gcc-4* --nodeps

rpm -Uvh elfutils-libelf-devel-0.137-3.el5.x86_64.rpm --nodeps

rpm -Uvh glibc-devel-2.5* --nodeps

rpm -Uvh glibc-headers-2.5* --nodeps

rpm -Uvh gcc-c++-4.* --nodeps

 

# For OEL, use relevant versions of the following packages from your media.

rpm -Uvh oracleasm-2.6.18-194.el5-2.0.5-1.el5.x86_64.rpm /

         oracleasm-support-2.1.3-1.el5.x86_64.rpm /

oracleasmlib-2.0.4-1.el5.x86_64.rpm   # 必须注意,这个文件在 DVD 中没有,如果没有安装这个文件,会在图形界面上找不到 ASM 盘的。

可以到这个网站上下载:

http://www.oracle.com/technetwork/topics/linux/downloads/rhel5-084877.html

 

进入 grid (在 Oracle 网站上下载)的安装目录,进行 rpm 目录

rpm -Uvh cvuqdisk*

 

5. 编辑 /etc/hosts

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1       localhost.localdomain   localhost

# Public Network -(eth0)

10.1.1 .151   rac1.localdomain        rac1

10.1.1 .152   rac2.localdomain        rac2

10.1.1 .153   rac3.localdomain        rac3

 

#Private Network -(eht1)

10.1.0 .1   rac1-priv.localdomain   rac1-priv

10.1.0 .2   rac2-priv.localdomain   rac2-priv

10.1.0 .3   rac3-priv.localdomain   rac3-priv

 

#Public Virtual IP -(eth0:1)

10.1.1 .161   rac1-vip.localdomain    rac1-vip

10.1.1 .162   rac2-vip.localdomain    rac2-vip

10.1.1 .163   rac3-vip.localdomain    rac3-vip

 

 

#Note. The SCAN address should not really be defined in the hosts file.

#Instead is should be defined on the DNS to round-robin

#between 3 addresses on the same subnet as the public IPs.

#For this installation, we will compromise and use the hosts file.

#Single Client Access Name(SCAN)

10.1.1 .170    rac-scan.localdomain  rac-scan

 

修改网络设置中的 DNS > HostName 改为 rac1.localdomain

增加 ip priv-ip 地址

 

6. 编辑 /etc/sysctl.conf ,在文件最后加上(下同)

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 1054504960

kernel.shmmni = 4096

# semaphores: semmsl, semmns, semopm, semmni

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

 

 

 

 

加载上述设置

#/sbin/sysctl -p

 

7. 编辑 /etc/security/limits.conf

oracle               soft    nproc   2047

oracle                hard    nproc   16384

oracle               soft    nofile  1024

oracle               hard    nofile  65536

 

编辑 /etc/pam.d/login

 

session    required     pam_limits.so

 

8. 关闭 ntpd 服务,准备使用 Oracle ctssd 服务进行时间的同步

service ntpd stop

chkconfig ntpd off

mv /etc/ntp.conf /etc/ntp.conf.org

rm /var/run/ntpd.pid

 

9. 建立安装目录

mkdir -p  /u01/app/11.2.0/grid

mkdir -p /u01/app/oracle/product/11.2.0/db_1

chown -R oracle:oinstall /u01

chmod -R 775 /u01/

 

10. 修改 Oracle 用户配置文件

 

su - oracle

cd ~

nano .bash_profile

 

# Oracle Settings

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

 

ORACLE_HOSTNAME=rac1.localdomain; export ORACLE_HOSTNAME

ORACLE_UNQNAME=RAC; export ORACLE_UNQNAME

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME

ORACLE_SID=RAC1; export ORACLE_SID

ORACLE_TERM=xterm; export ORACLE_TERM

PATH=/usr/sbin:$PATH; export PATH

PATH=$ORACLE_HOME/bin:$PATH; export PATH

 

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

 

if [ $USER = "oracle" ]; then

  if [ $SHELL = "/bin/ksh" ]; then

    ulimit -p 16384

    ulimit -n 65536

  else

    ulimit -u 16384 -n 65536

  fi

fi

 

 

11. 在图形界面下运行

cd /usr/bin

./vmware-toolbox

在时间同步位置上打勾

 

12. 关机,建立共享磁盘

SSH 登录 ESX Server ,如果不知如何打开 ssh 功能,请参考我 blog 上的文章

cd /vmfs  ..,

直到进行 datastore 的目录

mkdir RACShare

cd RACShare

 

1 、创建磁盘

vmkfstools -d eagerzeroedthick -a lsilogic -c 10G asm1.vmdk

vmkfstools -d eagerzeroedthick -a lsilogic -c 10G asm2.vmdk

( 可以增加更多的磁盘,这里只是模拟两个 )

 

2 、添加到需要的 vm 上,选择不同的通道,如 scsi1:0

3 SCSI 控制器选择物理(虚拟磁盘可以在不同 server 上的虚拟机之间共享)。

 

13. 起动后,为新增的磁盘分区(如果是分开机器来完成,那么这个步骤只要执行一次)

fdisk /dev/sdb

...fdisk /dev/sdc 每次进入命令提示时,依次输入 "n", "p", "1", "Return", "Return", "p" and "w".

 

(如果是分开机器来完成,那么这个步骤,每台机都要执行一次)

chown oracle:oinstall /dev/sdb1

chown oracle:oinstall /dev/sdc1

chmod 600 /dev/sdb1

chmod 600 /dev/sdc1

 

14. 设置 oracle asm lib (如果是分开机器来完成,那么这个步骤,每台机都要执行一次)

 

# oracleasm configure -i

Configuring the Oracle ASM library driver.

Default user to own the driver interface []: oracle

Default group to own the driver interface []: dba

Start Oracle ASM library driver on boot (y/n) [n]: y

Scan for Oracle ASM disks on boot (y/n) [y]: y

 

加载 asm 模块

/usr/sbin/oracleasm init

 

15. 创建 asm 磁盘 (如果是分开机器来完成,那么这个步骤,每台机都要执行一次)

/usr/sbin/oracleasm createdisk DISK1 /dev/sdb1

/usr/sbin/oracleasm createdisk DISK2 /dev/sdc1

 

(删除可用: /usr/sbin/oracleasm deletedisk -v DISK5

 

检查 asm 磁盘(非必要)

/usr/sbin/oracleasm scandisks

 

显示所有 asm 磁盘 ( 非必要),必须要保证在每个节点上能显示 Disk1, Disk2….

/usr/sbin/oracleasm listdisks

 

16. 复制虚拟机

RAC1 关机,将 RAC1 的内容复制到 RAC2 中,并加载此虚拟机,加载后,进入图形界面,注意要更新网卡的 MAC 地址。

加载 x window ,更新 mac ,修改 ip priv-ip dns ->hostname 名字: rac2.localdomain

 

进入 提示符

su - oracle

cd ~

nano .bash_profile

修改

ORACLE_SID=RAC2; export ORACLE_SID

ORACLE_HOSTNAME=rac2.localdomain; export ORACLE_HOSTNAME

 

修改 RAC1 RAC2 RAC3 VM 网卡设置,将 RAC1 RAC2 RAC3 eth0 配在同一虚拟交换机上,将两者的 eth1 配在另一交换机上

 

17. 检查网络是否准备好

ping -c 3 rac1

ping -c 3 rac1-priv

ping -c 3 rac2

ping -c 3 rac2-priv

ping -c 3 rac3

ping -c 3 rac3-priv

 

18. 配置 SSH 用户等效性

 

第一步:

在每一台机上用 root 登录,运行以下脚本

 

su - oracle

mkdir ~/.ssh

chmod 700 ~/.ssh

/usr/bin/ssh-keygen -t rsa  # 使用默认值就行了

 

第二步:

RAC1 上运行

 

cd ~/.ssh

cat id_rsa.pub >> authorized_keys

scp authorized_keys rac2:/home/oracle/.ssh/

 

RAC2 上运行

cd ~/.ssh

cat id_rsa.pub >> authorized_keys

scp authorized_keys rac3:/home/oracle/.ssh/

 

RAC3 上运行

cd ~/.ssh

cat id_rsa.pub >> authorized_keys

scp authorized_keys rac1:/home/oracle/.ssh/

scp authorized_keys rac2:/home/oracle/.ssh/

 

注:以上的解释

比如要从 node A 上的 abc 用户, ssh host B 上的 def 用户

那就要在 A 上的 abc 用户下面

#ssh-keygen -t rsa

把生成的 id_rsa.pub  放到 B def 下的 authorized_keys

最好是 >> 而不是 cp ,这样不会抹掉之前的记录

 

在这里其实就是在 RAC1 上先产生一个 pub rsa 密钥,并将其放在 RAC2 上,这样 RAC1 的用户登录到 RAC2 上时就不需要认证了,接着, RAC2 也产生一个 pub rsa 密钥并 追加 RAC1 刚刚传过来的 authorized_keys 文件中,同时又将此密钥放到 RAC1 中。如果用 nano 打开这个文件,就会看到有两条记录了,如果要做多个的认证,步骤就有点复杂了,但必须保证所有机器上的 authorized_keys 内容都一样,且此文件包括所有机的 prsa pub key

 

第三步

RAC1

su ~

nano v.sh

#!/bin/bash

ssh rac1 date

ssh rac2 date

ssh rac3 date

ssh rac1.localdomain date

ssh rac2.localdomain date

ssh rac3.localdomain date

ssh rac1-priv date

ssh rac2-priv date

ssh rac3-priv date

ssh rac1-priv.localdomain date

ssh rac2-priv.localdomain date

ssh rac3-priv.localdomain date

scp authorized_keys rac2:/home/oracle/

scp authorized_keys rac3:/home/oracle/

 

在每台机上运行

bash v.sh

exec /usr/bin/ssh-agent $SHELL

/usr/bin/ssh-add

这时会在 ~/.ssh 目录中产生一个 known_hosts 的文件,里面会有主机的加密串

 

 

验证:

重新开机后(最好是这样),在各节点上能够连续运行以下命令的(不提示输入密码)就算安装成功了

bash v.sh

 

 

19. 检查 Clusterware 的安装环境是否准备好

下载 Oracle 11R2 Grid 软件包,解压后运行

 

./runcluvfy.sh stage -pre crsinst -n rac1,rac2,rac3 -verbose

 

运行上述包时,必须用 oracle 用户,不能用 root ,同时,运行时可能会报一个 /tmp/bootstrap 不能被删除的错误,用 root 账号将此目录删除或改名即可。

 

20. 下载 11G grid 安装包,准备安装

oracle 用户登录,运行

./runInstaller

 

一路选下去,选择典型,

 

下一页

scan 名称那里要填 rac-scan( /etc/hosts 文件中对应)

添加一个 rac 节点

主机名: rac2.localdomain

虚拟主机名: rac2-vip.localdomain

主机名: rac3.localdomain

虚拟主机名: rac3-vip.localdomain

 

下一页

集群注册表储存类型:自动储存管理 (ASM)

软件位置: /u01/app/11.2.0/grid

集群注册表位置:

sysasm 口令: 123456

osasm 组: dba

 

下一页

redunancy (冗余) : external

选全部的磁盘

 

下一页

清单目录: /u01/app/oraInventory

 

下一页

检测等,自行决定修复错误,然后安装

 

安装最后一步后,分别在两台上运行以下脚本

按提示分别在两节点上依次执行脚本

rac1

cd /u01/app/oraInventory/

./orainstRoot.sh

 

rac2

cd /u01/app/oraInventory/

./orainstRoot.sh

 

rac1

cd /u01/app/11.2.0/grid/

./root.sh

 

rac2

cd /u01/app/11.2.0/grid/

./root.sh

 

最后点击 OK

// 安装完成后,可能会报错,先不用管它

 

检查 crs

su - oracle

cd /u01/app/11.2.0/grid/bin

 

检查 crs 状态:

./crsctl check crs

 

检查 Clusterware 资源 :

./crs_stat -t -v

 

检查集群节点:

./olsnodes -n

 

检查两个节点上的 ORACLE TNS 监听器进程:

./srvctl status listener

 

使用下面的命令语法来确认当前正在运行已安装的 Oracle ASM

./srvctl status asm -a

 

检查 集群注册表

./ocrcheck

 

检查表决磁盘

./crsctl query css votedisk

 

重启,重新再检查一次是否正常

 

21. 安装 Oracle 软件

用典型,选服务器类,选 RAC

典型安装配置 页:

软件位置 /u01/app/oracle/product/11.2.0/db_1

gobal database name ( 全局数据库名) : RAC.localdomain

storage type Automatic Storage Manager

 

最后需要再用 root 身份运行脚本

cd /u01/app/oracle/product/11.2.0/db_1/

./root.sh

 

22. 检查 RAC

在任一节点上以 oracle 用户登录

 

1. 运行:

srvctl config database -d RAC

 

数据库唯一名称 : RAC

数据库名 : RAC

Oracle 主目录 : /u01/app/oracle/product/11.2.0/db_1

Oracle 用户 : oracle

Spfile: +DATA/RAC/spfileRAC.ora

: localdomain

启动选项 : open

停止选项 : immediate

数据库角色 : PRIMARY

管理策略 : AUTOMATIC

服务器池 : RAC

数据库实例 : RAC1,RAC2

磁盘组 : DATA

服务 :

数据库是管理员管理的

 

2.

$ sqlplus / as sysdba

SQL> SELECT inst_name FROM v$active_instances;

 

INST_NAME

--------------------------------------------------------------------------------

rac1.localdomain:RAC1

rac2.localdomain:RAC2

rac3.localdomain:RAC3

 

3.

https://10.1.1.170:1152/em

https://10.1.1.152:1152/em

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值