您的位置:首页 > 运维架构 > Linux

linux下搭建rac11g详解

2013-11-28 15:56 399 查看
操作系统:redhat-rhel-server-5.5-x86_64;

数据库版本:oracle11gR2;

平台:vbox虚拟机;

河北网络发票数据迁移模拟环境:fpdb1(172.17.32.180),fpdb2(172.17.32.181);

此文档不涉及操作系统的安装。



一、网络配置:(以下内容以fpdb1为例子)

#Public IP

#/etc/sysconfig/network-scripts/ifcfg-eth0

#(必须大写)

DEVICE=eth0

BOOTPROTO=none

ONBOOT=yes

NETMASK=255.255.0.0

IPADDR=172.17.32.180(fpdb2必须改的)

GATEWAY=172.17.0.1

TYPE=Ethernet

#Private IP

#/etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

BOOTPROTO=none

ONBOOT=yes

HOTPLUG=no

TYPE=Ethernet

IPADDR=10.10.0.2(fpdb2必须改的)

NETMASK=255.255.255.0

GATEWAY=10.10.0.1

#/etc/hosts(fpdb2不用改的)

#Public IP

172.17.32.180 fpdb1

172.17.32.181 fpdb2

#Private IP

10.10.0.2 fpdb1-priv

10.10.0.3 fpdb2-priv

#Virtual IP

172.17.32.182 fpdb1-vip

172.17.32.183 fpdb2-vip

#Scan IP

172.17.32.184 scan-ip

###-------------以上内容两个节点中都需要做

二、修改hostname(两个节点都需要修改)

1:#hostname fpdb1(即时生效,不然又要重启系统)

2:修改/etc/sysconfig/network中的hostname (永久修改)

3:修改/etc/hosts文件

三、新建组与用户并创建相关目录(两个节点)

/usr/sbin/groupadd -g 501 oinstall

/usr/sbin/groupadd -g 502 dba

/usr/sbin/groupadd -g 504 asmadmin

/usr/sbin/groupadd -g 506 asmdba

/usr/sbin/groupadd -g 507 asmoper

/usr/sbin/useradd -u 501 -g oinstall -G asmadmin,asmdba,asmoper grid

/usr/sbin/useradd -u 502 -g oinstall -G dba,asmdba oracle

创建用户密码:

passwd oracle

oracle

passwd grid

oracle

/usr/sbin/groupadd -g 501 oinstall

/usr/sbin/groupadd -g 502 dba

/usr/sbin/groupadd -g 504 asmadmin

/usr/sbin/groupadd -g 506 asmdba

/usr/sbin/groupadd -g 507 asmoper

/usr/sbin/useradd -u 501 -g oinstall -G asmadmin,asmdba,asmoper grid

/usr/sbin/useradd -u 502 -g oinstall -G dba,asmdba oracle

创建用户密码:

passwd oracle

oracle

passwd grid

oracle

四、修改环境变量与系统参数

#在/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=1048576

#执行:

#/sbin/sysctl –p

#编辑/etc/security/limits.conf文件添加如下行:

grid soft nproc 2047

grid hard nproc 16384

grid soft nofile 1024

grid hard nofile 65536

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

#编辑/etc/profile文件添加如下行:

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then

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

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

umask 022

fi

#两个节点的grid用户的 .bash_profile文件

#fpdb1

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/11.2.0/grid

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_SID=+ASM1;

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export DISPLAY=172.17.32.171:0.0

umask 022

######################

#fpdb2

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/11.2.0/grid

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_SID=+ASM2;

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export DISPLAY=172.17.32.171:0.0

umask 022

#两个节点的oracle用户的 .bash_profile文件

#fpdb1

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

export ORACLE_SID=hdwkxt1

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 NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

umask 022

######################

#fpdb2

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

export ORACLE_SID=hdwkxt2

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 NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

umask 022

五、配置ntp时间同步服务(以fpdb1作为时间服务器)

配置NTP服务器之前,确认服务器已装好NTP包

[root@tip01 ~]# rpm -qa | grep ntp

ntp-4.2.2p1-9.el5_4.1

chkfontpath-1.10.1-1.1

编辑fpdb1节点的配置文件

# vi /etc/ntp.conf

restrict default kod nomodify notrap nopeer noquery

restrict -6 default kod nomodify notrap nopeer noquery

restrict 127.0.0.1

restrict -6 ::1

server 127.127.1.0 #local clock

fudge 127.127.1.0 stratum 11

driftfile /var/lib/ntp/drift

keys /etc/ntp/keys

编辑fpdb2节点ntp.conf文件

# vi /etc/ntp.conf

server fpdb1

restrict fpdb1 mask 255.255.255.255 nomodify notrap noquery

分别在fpdb1,fpdb2上修改NTPD参数文件

#vi /etc/sysconfig/ntpd

#添加 -x 参数

SYNC_HWCLOCK=yes

OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"

#RAC安装时需要检测的-x参

在两个节点上执行 chkconfig ntpd on 使得ntp服务开机启动

[root@fpdb1 ~]# service ntpd restart

关闭 ntpd:[确定]

ntpd: 同步时间服务器:[失败]

启动 ntpd:[确定]

查看ntp状态

[root@fpdb1 ~]# ntpstat

synchronised to local net at stratum 11

time correct to within 11 ms

polling server every 1024 s

在fpdb2节点启动ntp服务

[root@fpdb2 ~]# service ntpd start

ntpd: 同步时间服务器:[确定]

同步硬件时钟到系统时钟 [确定]

启动 ntpd:[确定]

在节点fpdb2 上执行ntpq -p就可以看到结果。

六、rpm包的安装与检查

在两个节点上执行一下命令就可以看到还需要安装哪些包。

rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils \

>compat-libstdc++-33 \

elfutils-libelf \

elfutils-libelf-devel \

gcc \

gcc-c++ \

glibc \

glibc-common \

glibc-devel \

glibc-headers \

ksh \

libaio \

libaio-devel \

libgcc \

libstdc++ \

libstdc++-devel \

make \

sysstat \

unixODBC \

unixODBC-devel

此外我的系统一下三个包没有检测出来但是在安装的时候报错,需要安装以下三个包sysstat-7.0.2-3.el5.x86_64.rpm,unixODBC-devel-2.2.11-7.1.i386.rpm,libaio-devel-0.3.106-5.i386.rpm。

七、ssh互信配置

在两个节点上的两个用户(grid和oracle)下分别执行下面的操作

su - grid

mkdir ~/.ssh

chmod 700 ~/.ssh

ssh-keygen -t rsa

ssh-keygen -t dsa

su - oracle

mkdir ~/.ssh

chmod 700 ~/.ssh

ssh-keygen -t rsa

ssh-keygen -t dsa

在一个节点上的两个用户(grid和oracle)下分别执行下面的操作

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # -----两个节点都做

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys # -----两个节点都做

ssh fpdb2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ssh fpdb2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

scp ~/.ssh/authorized_keys fpdb2:~/.ssh/authorized_keys

互信建立完成后进行检查。

两个节点的两个用户(grid和oracle)都要进行ssh自己的和另一个节点的公有和私有ip,把密码都保存上,不然ssh检查不通过

ssh fpdb1 date

ssh fpdb1-priv date

ssh fpdb2 date

ssh fpdb2-priv date

八、存储配置

使用 fdisk /dev/sd* 进行分区之后给分区相应的权限

#(两个节点)

chown grid:asmadmin /dev/sdb1

chown grid:asmadmin /dev/sdc1

chown grid:asmadmin /dev/sdd1

chown grid:asmadmin /dev/sde1

chown grid:asmadmin /dev/sdf1

#(两个节点)

chmod 660 /dev/sdb1

chmod 660 /dev/sdc1

chmod 660 /dev/sdd1

chmod 660 /dev/sde1

chmod 660 /dev/sdf1

安装ASM (两个节点)

[root@grid02 asm]# ls

oracleasm-2.6.18-308.el5-2.0.5-1.el5.i686.rpm oracleasmlib-2.0.4-1.el5.i386.rpm oracleasm-support-2.1.7-1.el5.i386.rpm

[root@grid02 asm]# rpm -ivh oracleasm-support-2.1.7-1.el5.i386.rpm

warning: oracleasm-support-2.1.7-1.el5.i386.rpm:Header V3 DSA signature: NOKEY, key ID 1e5e0159

Preparing... ########################################### [100%]

1:oracleasm-support ########################################### [100%]

[root@grid02 asm]# rpm -ivh oracleasm-2.6.18-308.el5-2.0.5-1.el5.i686.rpm

warning:oracleasm-2.6.18-308.el5-2.0.5-1.el5.i686.rpm: Header V3 DSA signature: NOKEY,key ID 1e5e0159

Preparing... ########################################### [100%]

1:oracleasm-2.6.18-308.el###########################################[100%]

[root@grid02 asm]# rpm -ivh oracleasmlib-2.0.4-1.el5.i386.rpm

warning: oracleasmlib-2.0.4-1.el5.i386.rpm: HeaderV3 DSA signature: NOKEY, key ID 1e5e0159

Preparing... ###########################################[100%]

1:oracleasmlib ########################################### [100%]

配置ASMLib (两个节点)

[root@grid01 grid]# /etc/init.d/oracleasm configure

Configuring the Oracle ASM library driver.



This will configure the on-boot properties of theOracle ASM library

driver. Thefollowing questions will determine whether the driver is

loaded on boot and what permissions it willhave. The current values

will be shown in brackets ('[]'). Hitting <ENTER> without typing an

answer will keep that current value. Ctrl-C will abort.



Default user to own the driver interface []: grid

Default group to own the driver interface []: asmadmin

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

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

Writing Oracle ASM library driver configuration:done

Initializing the Oracle ASMLib driver: [ OK ]

Scanning the system for Oracle ASMLib disks: [ OK ]

建立ASM磁盘(一个节点fpdb1)

/usr/sbin/oracleasm createdisk OCR_VOTE1 /dev/sdb1

/usr/sbin/oracleasm createdisk OCR_VOTE2 /dev/sdc1

/usr/sbin/oracleasm createdisk OCR_VOTE3 /dev/sdd1

/usr/sbin/oracleasm createdisk ASM_DATA1 /dev/sde1

/usr/sbin/oracleasm createdisk ASM_DATA2 /dev/sdf1

另一节点执行发现磁盘

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

Scanning the system for Oracle ASMLib disks: [ OK ]

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

ARC001

DATA001

FRA001

OCR_VOTE1

OCR_VOTE2

OCR_VOTE3

九、验证安装前的检查,使用grid用户:

#如果检查后提示需要执行脚本则执行。

./runcluvfy.sh stage -pre crsinst -n fpdb1,fpdb2 -fixup -verbose

./runcluvfy.sh stage -post hwos -n fpdb1,fpdb2 -verbose

执行安装grid(如果你使用了xmanager,则使用grid用户执行 export DISPLAY=172.17.32.24:0,(此处的iP为我笔记本ip),xhost +)

完成之后执行root脚本,在两个节点按次序依次执行。

十、asmca创建数据磁盘组

十一、安装数据库软件

十二、创建数据库实例。

----------------未完待续,具体安装图解等心情好了之后在上图吧,很关键的,觉得不错就点个赞吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: