关闭

在VMWare ESX4.1/Sever 2中以 CentOS5.5 安装 Oracle 11.2 RAC

2733人阅读 评论(0) 收藏 举报

 

VMWare ESX4/Sever 2 中以 CentOS5.5 安装 Oracle 11.2 RAC

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

 

1. 规划 IP

RAC1 IP 10.1.1.201

RAC1 VIP 10.1.1.211

RAC1 Priv-IP 10.0.0.1

 

RAC2 IP 10.1.1.202

RAC2 VIP 10.1.1.212

RAC1 Priv-IP 10.0.0.2

 

SCAN IP 10.1.1.254

 

2. 设置一个新的虚拟机,设置内存为 2G ,硬盘为 20G ,增加一个网卡后安装 CentOS55 ,全部默认安装。关闭 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 中连接上 CentOS55 DVD

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

 

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

cd /media/CentOS

rpm -ivh compat-libstdc++-33-3.2.3-61.i386.rpm

rpm -ivh elfutils-libelf-devel-0.137-3.el5.i386.rpm elfutils-libelf-devel-static-0.137-3.el5.i386.rpm

rpm -ivh libstdc++-devel-4.1.2-48.el5.i386.rpm

rpm -ivh kernel-headers-2.6.18-194.el5.i386.rpm

rpm -ivh glibc-headers-2.5-49.i386.rpm

rpm -ivh glibc-devel-2.5-49.i386.rpm

rpm -ivh libgomp-4.4.0-6.el5.i386.rpm

rpm -ivh glibc-devel-2.5-49.i386.rpm

rpm -ivh gcc-4.1.2-48.el5.i386.rpm

rpm -ivh gcc-c++-4.1.2-48.el5.i386.rpm

rpm -ivh libaio-devel-0.3.106-5.i386.rpm

rpm -ivh sysstat-7.0.2-3.el5.i386.rpm

rpm -ivh unixODBC-2.2.11-7.1.i386.rpm

rpm -ivh unixODBC-devel-2.2.11-7.1.i386.rpm

rpm -ivh pdksh-5.2.14-36.el5.i386.rpm

 

安装 Oracle asm 包,可在 Oracle 网站上下载

rpm -ivh oracleasm-2.6.18-194.el5-2.0.5-1.el5.i686.rpm /

oracleasm-support-2.1.4-1.el5.i386.rpm /

oracleasmlib-2.0.4-1.el5.i386.rpm

 

进入 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 .201   rac1.localdomain        rac1

10.1.1 .202   rac2.localdomain        rac2

#Private Network -(eht1)

10.0.0 .1   rac1-priv.localdomain   rac1-priv

10.0.0 .2   rac2-priv.localdomain    rac2-priv

#Public Virtual IP -(eth0:1)

10.1.1 .211   rac1-vip.localdomain    rac1-vip

10.1.1 .212   rac2-vip.localdomain    rac2-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 .254    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. 在图形界面下运行

./usr/bin/vmware-toolbox

在时间同步位置上打勾

 

12. 关机,建立共享磁盘

VMWare Server 2.X 的设置

scsi 1

Allocate all disk space now

"Independent" and "Persistent"

 

asm1.vmdk

Virtual Device Node: SCSI 1:0

Mode: Independent and Persistent

 

asm2.vmdk

Virtual Device Node: SCSI 1:1

Mode: Independent and Persistent

 

asm3.vmdk

Virtual Device Node: SCSI 1:2

Mode: Independent and Persistent

 

asm4.vmdk

Virtual Device Node: SCSI 1:3

Mode: Independent and Persistent

 

asm5.vmdk

Virtual Device Node: SCSI 1:4

Mode: Independent and Persistent

 

编辑 VM 的配置文件如: RAC1.vmx

在每个 scsiX:X 配置中增加以下内容:(如 scsi1:5 中)

 

scsi1:5.redo = ""

 

并在最后加上

disk.locking = "false" 

diskLib.dataCacheMaxSize = "0" 

diskLib.dataCacheMaxReadAheadSize = "0" 

diskLib.DataCacheMinReadAheadSize = "0" 

diskLib.dataCachePageSize = "4096" 

diskLib.maxUnsyncedWrites = "0" 

 

ESX 4.1 的设置 -----------------------------------

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

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

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

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

 

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

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

 

13. 起动后,为新增的磁盘分区

fdisk /dev/sdb

...fdisk /dev/sdc sdf

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

 

chown oracle:oinstall /dev/sdb1

chown oracle:oinstall /dev/sdc1

chown oracle:oinstall /dev/sdd1

chown oracle:oinstall /dev/sde1

chown oracle:oinstall /dev/sdf1

chmod 600 /dev/sdb1

chmod 600 /dev/sdc1

chmod 600 /dev/sdd1

chmod 600 /dev/sde1

chmod 600 /dev/sdf1

 

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 createdisk DISK3 /dev/sdd1

/usr/sbin/oracleasm createdisk DISK4 /dev/sde1

/usr/sbin/oracleasm createdisk DISK5 /dev/sdf1

 

检查 asm 磁盘(非必要)

/usr/sbin/oracleasm scandisks

 

显示所有 asm 磁盘 ( 非必要)

/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 VM 网卡设置,将 RAC1 RAC2 eth0 配在同一虚拟交换机上,将两者的 eth1 配在另一交换机上

 

17. 检查网络是否准备好

ping -c 3 rac1

ping -c 3 rac1-priv

ping -c 3 rac2

ping -c 3 rac2-priv

 

18. 配置 SSH 用户等效性

 

第一步:

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

 

su - oracle

mkdir ~/.ssh

chmod 700 ~/.ssh

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

 

第二步:

RAC1 上运行

 

su - oracle

cd ~/.ssh

cat id_rsa.pub >> authorized_keys

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

 

RAC2 上运行

su - oracle

cd ~/.ssh

cat id_rsa.pub >> authorized_keys

scp authorized_keys rac1:/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

 

第三步

在各台机上逐一运行

ssh rac1 date

ssh rac2 date

ssh rac1.localdomain date

ssh rac2.localdomain date

ssh rac1-priv date

ssh rac2-priv date

ssh rac1-priv.localdomain date

ssh rac2-priv.localdomain date

 

exec /usr/bin/ssh-agent $SHELL

/usr/bin/ssh-add

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

 

 

验证:

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

ssh rac1 date

ssh rac2 date

ssh rac1.localdomain date

ssh rac2.localdomain date

ssh rac1-priv date

ssh rac2-priv date

ssh rac1-priv.localdomain date

ssh rac2-priv.localdomain date

 

 

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

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

 

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

 

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

 

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

oracle 用户登录,运行

./runInstaller

 

一路选下去,选择典型,

 

下一页

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

添加一个 rac 节点

主机名: rac2.localdomain

虚拟主机名: rac2-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

 

3.

https://10.1.1.201:1152/em

https://10.1.1.211:1152/em

https://10.1.1.212:1152/em

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:173351次
    • 积分:2769
    • 等级:
    • 排名:第13408名
    • 原创:92篇
    • 转载:11篇
    • 译文:0篇
    • 评论:75条
    最新评论