OS: CentOS release 6.6 (final)
DB: Oracle 11.2.0.4
**************************************************************************
1.配置ip
**************************************************************************
注释: ①每个节点都需要2个网卡第一个网卡为public ip 第二个为private ip
②修改IP后 使生效命令: service network restart
③修改IP方法:服务端 setup进入图形界面配置,也可修改ifcfg-eth0文件
修改主机名: vi /etc/sysconfig/network
修改rac01test主机名
[root@ rac01test ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=rac01test
修改rac02test主机名
[root@ rac02test ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME= rac02test
使主机名生效
[root@ rac01test ~] hostname rac01test
[root@ rac02test ~] hostname rac02test
配置NTP时间同步:
rac01test:
[root@ rac01test /] cd etc
[root@ rac01test etc/] mv npt.conf npt.conf.bak
rac02test:
[root@ rac02test /]# cd /etc
[root@ rac02test etc]# mv ntp.conf ntp.conf.bak
**************************************************************************
2.关闭防火墙
**************************************************************************
[root@ rac01test /] vi /etc/selinux/config
S ---修改成disabled
SELINUXTYPE=targeted
#setenforce 0
注意:两个节点都要修改
两节点关闭防火墙另一种方式:
chkconfig --list|grep ip
chkconfig ip6tables off
chkconfig iptables off
service ip6tables stop
service iptables stop
**************************************************************************
3.修改hosts文件
**************************************************************************
rac01test
[root@rac01test/]# vi /etc/hosts
192.168.26.180 rac01test
192.168.26.181 rac02test
192.168.26.182 rac01testvip
192.168.26.183 rac02testvip
192.168.26.184 scanip
172.16.1.180 rac01testpriv
172.16.1.181 rac02testpriv
rac02test
[root@rac02test /]# vi /etc/hosts
192.168.26.180 rac01test
192.168.26.181 rac02test
192.168.26.182 rac01testvip
192.168.26.183 rac02testvip
192.168.26.184 scanip
172.16.1.180 rac01testpriv
172.16.1.181 rac02testpriv
**************************************************************************
4.配置yum
**************************************************************************
以下配置操作两个节点都要配置
[root@rac01test etc]# cd /etc/yum.repos.d
[root@ rac01test yum.repos.d]# vi rhel-debuginfo.repo
修改成以下配置
[rhel-debuginfo]
name=Red Hat Enterprise Linux $releasever - $basearch - Debug
baseurl=file:///mnt/Server
enabled=1
gpgcheck=0
[root@ rac01test yum.repos.d]# yum clean all
Loaded plugins: rhnplugin, security
Cleaning up Everything
注意:以上挂载方式是,未联网用光盘里面的包;如果系统联网可以直接在yum
挂载磁盘, 如果连接YUM就不需要挂载磁盘
[root@ rac01test yum.repos.d]# mount /dev/hdc /mnt
mount: block device /dev/hdc is write-protected, mounting read-only
CentOS 6.6 版本需要安装以下的系统包
glibc-2.12-1.7.el6 (i686)
glibc-2.12-1.7.el6 (x86_)
glibc-devel-2.12-1.7.el6 (x86_)
glibc-devel-2.12-1.7.el6.i686
ksh
libgcc-4.4.4-13.el6 (i686)
libgcc-4.4.4-13.el6 (x86_)
libstdc++-4.4.4-13.el6 (x86_)
libstdc++-4.4.4-13.el6.i686
libstdc++-devel-4.4.4-13.el6 (x86_)
libstdc++-devel-4.4.4-13.el6.i686
libaio-0.3.107-10.el6 (x86_)
libaio-0.3.107-10.el6.i686
libaio-devel-0.3.107-10.el6 (x86_)
libaio-devel-0.3.107-10.el6.i686
make-3.81-19.el6
sysstat-9.0.4-11.el6 (x86_)
unixODBC-2.2.14-11.el6 (x86_) or later
unixODBC-2.2.14-11.el6.i686 or later
unixODBC-devel-2.2.14-11.el6 (x86_) or later
unixODBC-devel-2.2.14-11.el6.i686 or later
执行以下命令就可把需要的包装上:
yum install -y binutils-* libXp* compat-libstdc++-33-* elfutils-libelf-* elfutils-libelf-devel-* gcc-* gcc-c++-* glibc-* glibc-common-* glibc-devel-* glibc-headers-* ksh-* libaio-* libgcc-* libstdc++-* make-* sysstat-* unixODBC-* unixODBC-devel-*s
*******************************************************************************
5.创建oracle用户组
*******************************************************************************
rac01test:
[root@rac01test /]# groupadd -g 501 oinstall
[root@ rac01test /]# groupadd -g 502 dba
[root@ rac01test /]# groupadd -g 503 asmadmin
[root@ rac01test /]# groupadd -g 504 asmdba
[root@ rac01test /]# groupadd -g 505 asmoper
[root@ rac01test /]# useradd -u 501 -g oinstall -G asmadmin,asmdba,asmoper grid
[root@ rac01test /]# useradd -u 502 -g oinstall -G dba,asmdba oracle
[root@ rac01test /]# passwd oracle
[root@ rac01test /]# passwd grid
rac02test:
[root@ rac02test yum.repos.d]# cd /
[root@ rac02test /]# groupadd -g 501 oinstall
[root@ rac02test /]# groupadd -g 502 dba
[root@ rac02test /]# groupadd -g 503 asmadmin
[root@ rac02test /]# groupadd -g 504 asmdba
[root@ rac02test /]# groupadd -g 505 asmoper
[root@ rac02test /]# useradd -u 501 -g oinstall -G asmadmin,asmdba,asmoper grid
[root@ rac02test /]# useradd -u 502 -g oinstall -G dba,asmdba oracle
[root@ rac02test /]# passwd oracle
[root@ rac02test /]# passwd grid
*******************************************************************************
6.修改内核参数
*******************************************************************************
rac01test:
[root@ rac01test /]# vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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
rac02test:
[root@ rac01test /]# vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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
sysctl -p 查看内核参数,以下是修改后的内核参数
[root@ rac01test /]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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
*******************************************************************************
7.修改oracle 用户能用的进程最大数量
*******************************************************************************
注意:记得rac01test和rac01test都要修改
rac01test
[root@ rac01test /]# vi /etc/security/limits.conf
oracle soft
oracle hard
oracle soft nofile 1024
oracle hard 65536
rac02test
[root@ rac02test /]# vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
8.新建oracle的安装目录
注意:两个节点都要创建
mkdir -p /u01/app/oraInventory
chown -R grid:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app/oraInventory
mkdir -p /u01/11.2.0/grid
mkdir -p /u01/app/grid
chown -R grid:oinstall /u01/app/grid
chown -R grid:oinstall /u01/11.2.0/grid
chmod -R 775 /u01/11.2.0/grid
mkdir -p /u01/app/oracle
mkdir /u01/app/oracle/cfgtoollogs
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle
mkdir -p /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1
chmod -R 775 /u01/app/oracle/product/11.2.0/db_1
*****************************************************************************
9.创建分区
*****************************************************************************
单节点执行即可
[root@rac01test ~]# fdisk -l
Disk /dev/sdb doesn't contain a valid partition table
给/dev/sdb 磁盘分区
[root@node1 ~]# fdisk /dev/sdb
m 帮助菜单
p 打印分区表
n 创建分区
p 创建主分区
d 删除一个主分区
e 创建扩展分区 扩展分区不能直接使用 不能建文件系统和映射裸设备 通过逻辑分区使用
w 保存退出
q 不保存退出
创建完成后刷新一下
[root@ rac01test ~]partprobe
[root@ rac02test ~]partprobe
查看刚分区的磁盘,下面sdb1到sdb5是刚分区的
[root@ rac01test ~]# fdisk -l
Disk /dev/sda: 21.4 GB, 214748380 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 131 1052226 83 Linux
/dev/sda2 132 653 4192965 82 Linux swap / Solaris
/dev/sda3 654 2610 15719602+ 83 Linux
Disk /dev/sdb: 21.4 GB, 214748380 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 244 19598+ 83 Linux
/dev/sdb2 245 488 1959930 83 Linux
/dev/sdb3 4 732 1959930 83 Linux
/dev/sdb4 733 976 1959930 5 Extended
/dev/sdb5 733 976 19598+ 83 Linux
磁盘映射,注意sdb4是扩展分区,不能使用
节点1
[root@ rac01test rules.d]# vi /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdb3", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sdb5", RUN+="/bin/raw /dev/raw/raw5 %N"
KERNEL=="raw*", OWNER="grid" GROUP="asmadmin", MODE="660"
节点2
[root@ rac02test rules.d]# vi /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdb3", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sdb5", RUN+="/bin/raw /dev/raw/raw5 %N"
KERNEL=="raw*", OWNER="grid" GROUP="asmadmin", MODE="660"
[root@ rac01test rules.d]# start_udev
[root@ rac02test ~]# start_udev
分别查看,可以看到5块盘
[root@rac01test rules.d]# raw -qa
/dev/raw/raw1:
/dev/raw/raw2:
/dev/raw/raw3:
/dev/raw/raw4:
/dev/raw/raw5:
[root@ rac02test ~]# raw -qa
/dev/raw/raw1:
/dev/raw/raw2:
/dev/raw/raw3:
/dev/raw/raw4:
/dev/raw/raw5:
*****************************************************************************
10.配置互信
*******************************************************************************
互信 oracle 用户和grid用户都要 执行 (只在一个节点执行即可)
脚本在 /soft/grid/sshsetup目录下,第一个脚本用grid用户执行,第二个脚本用oracle用户执行
./sshUserSetup.sh -user grid -hosts " rac01test rac01test " -advanced -noPromptPassphrase
./sshUserSetup.sh -user oracle -hosts "node3 node4" -advanced -noPromptPassphrase
*******************************************************************************
11.检测互信
*******************************************************************************
请注意,当您使用 ssh 第一次访问远程主机时,其 RSA 密钥将是未知的,从而将提示您确认是否希望连接该主机。
SSH 将记录该远程主机的 RSA 密钥,并在以后连接该主机时不再做出相关提示。
在第rac01test上,以 oracle 用户身份登录执行
ssh node3 date
ssh node4priv date
ssh node4priv date
在第rac01test 上,以 grid用户身份登录
ssh node1 date
ssh node1priv date
ssh node2priv date
注意:在两个节点的grid 和 oracle 用户都要执行,中间遇到的需要输入的直接回车
*******************************************************************************
12.设置环境变量
*******************************************************************************
注意两个节点的grid和oracle用户都要设置
grid 用户
su - grid
vi .bash_profile
export ORACLE_SID=+ASM1
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/11.2.0/grid
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=+ASM2
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/11.2.0/grid
export PATH=$ORACLE_HOME/bin:$PATH
oracle用户
su - oracle
vi .bash_profile
export ORACLE_SID=rac1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export ORACLE_SID=rac2
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
注意:安装的节点环境变量为主节点,grid 的ORACLE_SID=+ASM1 oracle 用户为rac1 如果设置反了就会无效。
到此为止,前面的准备工作已经做完,下面开始正式安装
*******************************************************************************
13.安装 GRID
*******************************************************************************
p13390677_112040_Linux-x86-_1of7.zip
p13390677_112040_Linux-x86-_2of7.zip
p13390677_112040_Linux-x86-_3of7.zip
前面两个是oracle数据库软件,直接解压到一起;
第三个软件是grid软件
解压:unzip p13390677_112040_Linux-x86-_3of7.zip
开始安装 :
[grid@rac02test grid]$ ./runInstaller -ignoreSysPrereqs
1.sikp software updates
2. 选择安装集群
3.选择高级安装
4.默认English 直接下一步
5.san name要和hosts里面scanip名称一样
6.这里主意:添加两个节点的主机名和vip,要和hosts里面配置的完全一样
7.名称和hosts里面配置的要一样
8.这里要和public和private的ip在一个网段上
9.选择使用ASM
10. 创建一个磁盘组,由于这里磁盘比较少,我选了一个。
11.设置密码,这里警告的是密码太简单,可以忽略掉
13.这里警告密码太简单,直接yes
14.不适用只能平台管理接口
15.这里默认
16.这里路径是根据环境变量来的
17.这里oraInventory也是环境变量设置的
18.这里有很多警告
package: pdksh-5.2.14
下载 pdksh-5.2.14 包:
wget http://mirror.centos.org/centos/5/os/i386/CentOS/pdksh-5.2.14-37.el5_8.1.i386.rpm
安装: yum install pdksh-5.2.14-37.el5_8.1.i386.rpm
报错了 Error: ksh conflicts with pdksh-5.2.14-37.el5_8.1.i386
[root@rac01test network-scripts]# rpm -qa | grep ksh
ksh-20120801-28.el6_7.3.x86_
卸载ksh包: rpm -e ksh-20120801-28.el6_7.3.x86_
安装完成:[root@bidevelop4 Packages]# yum install pdksh-5.2.14-37.el5_8.1.i386.rpm
package: cvuqdisk-1.0.9-1.rpm 这个包在grid软件里面 grid/rpm路径下
cd /tools/grid/rpm
[root@rac02test rpm]# rpm -ivh cvuqdisk-1.0.9-1.rpm
19.还有swap 和一些内核参数可以忽略
swap空间设置,当物理内存小于等于4G时swap大小可以设置为物理内存的2倍;
当物理内存大于4G时swap空间大小等于物理内存即可
20.忽略swap和参数的警告
21.选install
22.等待安装
23.执行以下两个脚本,root用户执行
24. 执行脚本: 记住单个节点执行完,再换另外一个节点
执行第一个脚本
25.执行第二个脚本,[/usr/local/bin] 停在这里直接回车
26.安装完这里报了一个错,这个错误是hosts里面设置了scanip,如果scaip可以ping通可以忽略
27.看一下,可以看到集群起来了!
14.安装数据库软件
登陆到oracle 用户
[oracle@rac02test database]# ./runInstaller -ignoreSysPrereqs
1. 关闭电子邮件接收
2.这里直接确定
3.跳过软件更新
4.选择仅安装数据库软件
5.选择安装rac数据库软件,把两个节点都选上
6.这里就默认
7.这里选择企业版
8.这里是环境变量设置的,可以对一下相关目录
9.这里默认的就行
10.swap和内核参数忽略,最下面是DNS问题也可直接忽略
11.直接忽略,选确定
12.执行脚本,root用户执行,两个节点都要执行
15.创建磁盘组
[grid@rac02test ~]$ asmca
2.填写名字,加入磁盘
3.选择确定
4.下面是刚创建的磁盘组,用于存放数据文件
16.dbca建库
[oracle@rac02test ~]$ dbca
1.选择rac 数据库
2.选择创建数据库
3.选择自定义
4.设定数据库名
5.这里选择是否按照EM,一般不选,需要的时候单独安装即可
6.这里设置密码
7.提示密码太简单,直接确定
8.选择存放数据文件的磁盘组
9.闪回空间自动管理,不用选
10.这里是一些数据库的组件,大部分都用不上,可以不用选
11.这里进程数改一下
12.选择字符集,通常选择ZHS16BK,注意数据库一旦安装不可修改字符集
13.这里默认专有模式
14.直接next
15.这里创建数据库,下面那个是保存创建数据库脚本
16.直接OK
17.直接OK
18.安装完成