博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

如何在虚拟机中Linux+Oracle10gRAC安装

Posted on 2012-10-17 18:09  徐正柱-  阅读(1992)  评论(0编辑  收藏  举报
 

1        前期准备

vmware workstation中安装redhat enterprise linux as 4.8,使用vmware Converter转换上传

两台linuxvmware ESXI4.0 虚拟服务器上,如果是个人练习,推荐本地使用vmware server

    官方下载10201_clusterware_linux_x86.zip10201_database_linux_x86.zip

2        ESXI下创建共享磁盘

Ø         开启ESXI远程SSH的功能,参加<< Vmware ESXI4.0安装及配置说明文档>>,在虚拟服务器

上使用如下命令创建三个共享磁盘。

vmkfstools -c 200M -a lsilogic -d eagerzeroedthick orcdisk.vmdk

vmkfstools -c 100M -a lsilogic -d eagerzeroedthick votingdisk.vmdk

vmkfstools -c 50G -a lsilogic -d eagerzeroedthick asm.vmdk

Ø         VMware vSphere Client图形界面下配置之前上传的两台linux,将三个磁盘依次添加到linux中,注意:总线不能与linux本地磁盘位于同一总线。比如:linux本地磁盘如果是SCSI0:0,那这三个磁盘可以是SCSI1:0SCSI1:1SCSI1:2

Ø         编辑两台linux的配置文件***.vmx文件,添加disk.locking = "FALSE",将scsi1.sharedBus = "none"改为scsi1.sharedBus = "VIRTUAL"

Ø         打开两台linux,使用fdisk –l查看磁盘。在第一台linux中使用fdisk /dev/sd**代表具体的盘符,依次创建三个磁盘分区。 分区完以后,我们以sdb1,sdc1,sdd1为例。在第二台linux中使用partprobe扫描分区,然后fdisk –l 再次查看,即可看到sdb1,sdc1,sdd1

3        修改主机名

vi /etc/hosts

vi /etc/sysconfig/network

在两台linux中将这两个文件中相应的主机名分别改为rac1rac2。为了使配置生效,reboot.

 

 

 

并在/etc/hosts文件中添加节点IP地址,如:

10.10.5.101 rac1

10.10.5.103 rac1-vip

20.20.20.10 rac-priv

10.10.5.102 rac2

10.10.5.104 rac2-vip

20.20.20.11 rac2-priv

vip地址必须和真实ip地址同一网段,priv私有IP地址只要两台机器在同一网段即可。

4        Linux网络配置

给每台linux再添加一块网卡。安装RAC每台机器至少需要两块网卡。

vi /etc/sysconfig/network-scripts/ifcfg-eth0  设置为真实IP地址

vi /etc/sysconfig/network-scripts/ifcfg-eth1  设置为私有IP地址

service network restart

网卡中的内容类似如下:

DEVICE=eth0

BOOTPROTO=none

ONBOOT=yes

TYPE=Ethernet

NETMASK=255.255.255.0

IPADDR=10.10.5.101

USERCTL=no

IPV6INIT=no

PEERDNS=yes

GATEWAY=10.10.5.232

5        linux中安装oracle所需软件包

查阅官方文档,根据linux版本可确定需要安装的软件包,软件包可从linux系统安装光盘或镜像文件中获得。在两台linux中通过rpm –ivh 命令分别安装如下软件包。

Redhat 4.8所需软件包列表如下:

binutils-2.15.92.0.2-13.EL4

compat-db-4.1.25-9

compat-libstdc++-296-2.96-132.7.2

control-center-2.8.0-12

gcc-3.4.3-22.1.EL4

gcc-c++-3.4.3-22.1.EL44

glibc-2.3.4-2.9

glibc-common-2.3.4-2.9

gnome-libs-1.4.1.2.90-44.1

libstdc++-3.4.3-22.1

libstdc++-devel-3.4.3-22.1

make-3.80-5

pdksh-5.2.14-30

sysstat-5.0.5-1

xscreensaver-4.18-5.rhel4.2

setarch-1.6-1

为了后续我们能够配置ASM磁盘,还需要下载ASM驱动包,下载地址为:

http://www.oracle.com/technetwork/topics/linux/downloads/rhel4-092650.html

根据linux版本号选择下载,共三个:

oracleasm-2.6.9-89.ELsmp-2.0.5-1.el4.i686.rpm

oracleasmlib-2.0.4-1.el4.i386.rpm

oracleasm-support-2.1.3-1.el4.i386.rpm

查看linux版本号uname –r

6        修改Linux内核参数

在两台linux中分别修改:

Ø         vi /etc/sysctl.conf

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default = 1048576

net.core.rmem_max = 1048576

net.core.wmem_default = 262144

net.core.wmem_max = 262144

使用sysctl -p 使之生效。

Ø         vi /etc/security/limits.conf

oracle              soft    nproc   2047

oracle              hard    nproc   16384

oracle              soft    nofile  1024

oracle              hard    nofile  65536

Ø         vi /etc/pam.d/login

session    required     /lib/security/pam_limits.so

session    required     pam_limits.so

Ø         vi /etc/rc.local

modprobe hangcheck-timer hangcheck-tick=30 hangcheck_margin=180

7        创建oracle用户、组

在两台linux中分别执行:

groupadd oinstall

groupadd dba

useradd -d /home/oracle -g oinstall -G dba oracle

passwd oracle

8        修改oracle环境变量

vi /home/oracle/.bash_profile

添加如下内容:

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_BASE=/oracle

export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1

export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs

export ORACLE_SID=oradb10

export ORACLE_TERM=xterm

export PATH=/usr/sbin:$PATH

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

export LD_LIBRARY_PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin/

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

$ORACLE_HOME/rdbms/jlib

ulimit -u 16384 -n 65536

umask 022

使用source .bash_profile使之生效。

mkdir /oracle

chown oracle.oinstall /oracle

9        建立时间同步

Ø         在两台linux中开启时间同步服务器:

chkconfig ntpd on  --设置随机启动

service ntpd status –查看启动状态

service ntpd start  --启动

 

 

Ø         在第二台linux中编辑/etc/ntp/conf

vi  /etc/ntp/conf

使用#号注释掉:

#server 0.rhel.pool.ntp.org

#server 1.rhel.pool.ntp.org

#server 2.rhel.pool.ntp.org

添加

server 0.10.10.5.101

将第一台linux作为时间同步服务器

Ø         定时矫正时间

vi /etc/rc.local

添加

while [1]; do ntpdate rac1 1>/dev/null 2>&1; sleep 2; done &

Ø         使用

date -s 11:13:00

clock –w

将第一台linux时间调整正确,重启第二台linux后即可看到时间同步了。

10  建立SSH等效性

Ø         在两台linux中依次执行:

[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

Ø         在第一台linux中执行:

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

[oracle@rac1 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.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@rac1 ~]$ scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys

Ø         验证ssh等效性 ( 必须都执行,否则后续集群环境检查不通过 )

[oracle@rac1 ~]$ ssh rac1 date

[oracle@rac1 ~]$ ssh rac2 date

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

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

 

 [oracle@rac2 ~]$ ssh rac1 date

[oracle@rac2 ~]$ ssh rac2 date

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

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

11  配置裸设备

在两台linux上依次执行:

Ø         vi /etc/sysconfig/rawdevices

/dev/raw/raw1  /dev/sdb1

/dev/raw/raw2  /dev/sdc1

Ø         修改裸设备权限:

vi /etc/udev/permissions.d/50-udev.permissions

/etc/udev/permissions.d/50-udev.permissions113

raw/*:root:disk:0660

修改为

raw/*:oracle:oinstall:0660

Ø         service rawdevices restart

 

12  配置ASM

Ø         在两台Linux中依次执行:

[root@rac1 ~] /etc/init.d/oracleasm configure

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

Fix permissions of Oracle ASM disks on boot (y/n) [y]: y

 

[root@rac2 ~] /etc/init.d/oracleasm configure

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

Fix permissions of Oracle ASM disks on boot (y/n) [y]: y

 

Ø         在第一台linux中执行:

[root@rac1 ~] /etc/init.d/oracleasm createdisk VOL1 /dev/sdd1

Ø         在两台linux中依次执行:

[root@rac1 ~]/etc/init.d/oracleasm scandisks

[root@rac1 ~]/etc/init.d/oracleasm listdisks

 

[root@rac2 ~]/etc/init.d/oracleasm scandisks

[root@rac2 ~]/etc/init.d/oracleasm listdisks

13  上传安装介质

将下载好的集群软件和数据库软件通过工具使用stp二进制方式上传至第一台linux。建议上传用

户为oracle。推荐工具winscp

    解压:

    [oracle@rac1 ~]unzip 10201_clusterware_linux_x86.zip

    [oracle@rac1 ~]unzip 10201_database_linux_x86.zip

解压后会看到两个文件夹clusterwaredatabase

14  RAC环境检查

[oracle@rac1 ~]cd clusterware/cluvfy

[oracle@rac1 cluvfy]./runcluvfy.sh stage -pre crsinst -n rac1,rac2 –verbose

根据检查结果安装修正未通过的选项。

注意:redhat4.8中有如下四个软件包提示缺失,是一个bug,只要确保安装了compat-***相应软件包版本即可。

compat-gcc-7.3-2.96.128

compat-gcc-c++-7.3-2.96.128

compat-libstdc++-7.3-2.96.128

compat-libstdc++-devel-7.3-2.96.128

15  安装集群软件cluterware

linux图形界面中操作或者使用xmanager软件将图形界面传回本地操作。

ocr存储位置我们填写 /dev/raw/raw1

votingdisk存储位置我们填写 /dev/raw/raw2

以上存储是我们配置的裸设备。

16  安装数据库

安装数据库我们建议只安装软件,建库单独执行。

17  运行dbca建库

选择创建集群数据库,存储选择ASM,会提示你创建监听和配置ASM磁盘组。之后操作与常规

建库操作类似。当然也可以是裸设备。

18  结束语

Oracle RAC的安装比较费力。中途一个小小的失误都可能导致安装失败。因此,对于初次安装的人来说,要想安装成功,都会经历好多次失败。当然,成功的喜悦也只有自己能体会。我个人在学习RAC的过程中,仅安装就历时一周,经历了八次失败!第九次开始成功。另外,在windows下安装oracle RAC可参加我的另一篇文档<<虚拟机中Win2003+Oracle10gRAC安装指南>>

Oracle RAC的安装仅是一个开始,更艰巨的任务是后续的RAC管理!