整理:RAC搭建过程
环境:操作系统:CentOS CentOS release 6.5 (Final) 64bite
kernel:2.6.32-431.el6.x86_64
ORACLE版本:ORACLE 11G R2.0.4 64bite
安装步骤:
1)环境部署
2)共享磁盘
3)克隆节点
4)安装前检测
5)安装grid infrastructure
6)添加ASM设备
7)安装oracle软件前检查
8)安装oracle软件
9)创建集群数据前的检查
10)创建集群数据库
规划方案:
IP规划:
存储规划:
安装过程:
1)环境部署:
方法:先在一个linux虚拟机上配置,等一切就绪了,就复制生成另一个虚拟机,这样就有两个服务器了
修改主机名:/etc/sysconfig/network
添加网卡:/etc/sysconfig/network-scripts/ifcfg-eth0及eth1,这里需要说的public也就是eth0里面必须要有网关才可以,例如:
配置hosts文件:/etc/hosts 内容复制上面的IP规划方案
禁用iptables
关闭防火墙:
禁用NTP: mv /etc/ntp.conf /etc/ntp.conf.bak
搭建本地yum源:挂载CentOS镜像盘,修改cat /etc/yum.repos.d/media.repo 内容如下:
[c6-media]
name=CentOS-$releasever - Media
file:///media/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
安装必备软件包:yum install glibc glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat
unixODBC unixODBC-devel pdksh compat-libcap1 compat-libstdc++ elfutils-libelf-devel gcc-c++
----这里要说一下系统里默认安装了ksh,再安装pdksh的话就会出现冲突,所以得rpm -e ksh,再安装pdksh
安装支持X环境包: yum groupinstall 'X Windows System'
----如果你记不得话就用yum grouplist | grep 'X'查看一下
安装虚拟机tool需要的包: yum install kernel-headers-2.6.32-431.el6.x86_64 gcc
----其它还需要 gcc的,但上面已经安装了
安装虚拟机tool:这个就不用说了吧,把虚拟机安装目录下的linux.iso挂载到media下,安装里面的vmware-tool,一步步回车就行,略
创建用户和组:
groupadd oinstall
groupadd dba
groupadd oper
groupadd asmadmin
groupadd asmdba
groupadd asmoper
useradd -g oinstall -G dba,asmdba,asmadmin,asmoper grid
useradd -g oinstall -G dba,oper,asmdba,asmadmin oracle
echo -n oracle | passwd --stdin grid
echo -n oracle | passwd --stdin oracle
创建目录:
mkdir -p /u01/app/11.2.0/grid ---grid安装目录
mkdir -p /u01/app/grid ---grid的BASE目录,要求不能与上面同一目录的
mkdir -p /u01/app/oracle
chown -R grid:oinstall /u01/app/11.2.0/grid
chown -R grid:oinstall /u01/app/grid
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/
修改grid和oracle的bash_profile文件
2)共享磁盘
因为我们用的是虚拟机,所以共享磁盘也得用虚拟机配置出来,方法如下:
利用虚拟机自带的工具创建硬盘: vmware-vdiskmanager.exe -c -s 10g -a lsilogic -t 2 e:\share\data.vmdk
----生成的文件不要和RAC1的虚拟机文件放在一块了,因为等下要复制RAC1到RAC2的,共享磁盘当然不复制了,按照上面的方法添加三块
修改虚拟机配置文件RAC1.vmx,后面添加如下内容:
磁盘分区:fdisk /dev/sdb
利用udev工具绑定裸设备:
[root@RAC1 ~]# cat /etc/udev/rules.d/60-raw.rules
3)克隆节点
4)安装前的检查:
配置两节点互信:
以下均以grid和oracle用户执行
以grid用户在grid解压目录下面运行:
./runcluvfy.sh stage -post hwos -n rac01,rac02 -verbose ----检查两个节点
./runcluvfy.sh comp ssa -n rac1,rac2 -s /dev/raw/raw1,/dev/raw/raw2,/dev/raw/raw3 ---检查共享存储
---如果出现Could not get the type of storage 之类的错误,请检查有没有安装cvuqdisk-1.0.9-1.rpm,该包在目录grid/rpm目录下
检查是否有错误的地方,仔细核对,直到测试成功
5)安装grid infrastructure
安装过程比较简单,就不截图了,重点说一下
磁盘组的冗余级别:
高冗余:三块磁盘互为镜像,通过GI来实现
普通冗余:两块磁盘互为镜像,通过GI来实现
外部冗余:通过外部存储设备本身的安全机制来实现冗余,比如RAID
跑脚本的顺序一定要对,先在RAC1执行第一个脚本,再到RAC2执行第一个脚本,然后到RAC1执行第一脚本,最后再去RAC2执行第二个脚本
注:即使是11.2.0.4这样的版本也会在节点2上运行root.sh脚本时出错的,我是删除了一次GI再重装才成功的
留下删除的过程:
以root身份运行 /u01/app/11.2.0/grid/crs/install/root.crs -deconfig -force ---这个命令相信新手都见过,也用过不少次吧
完了,再执行 /u01/app/11.2.0/grid/deinstall/deinstall 过程中会让输入一些信息,不清楚的可以百度
再然后就是清除共享存储上已经写入的文件了
dd if=/dev/zero of=/dev/raw/raw1 bs=1024 count=10240000 其它两个也是这样执行就行了
最后删除目录
rm /etc/ora*
rm /u01/app/11.2.0/grid/*
rm /usr/local/bin/dbhome
rm /usr/local/bin/oraenv
rm /usr/local/bin/coraenv
rm /u01/app/oraInventory
OK.
6)添加ASM设备
7)安装ORACLE前的检查
8)安装ORACLE软件
9)创建集群数据库前的检查
10)创建集群数据库
OK,打完收工,前的征程才刚开始
最后,做个广告,我个人的网站http://51zhujie.top/article/37&dissertation
环境:操作系统:CentOS CentOS release 6.5 (Final) 64bite
kernel:2.6.32-431.el6.x86_64
ORACLE版本:ORACLE 11G R2.0.4 64bite
注:请大家一定不要用11.2.0.1版的ORACLE,没打补丁,问题很多,特别是运行root.sh脚本时报错。。。伤不起
在执行./root.sh 时会出现
Adding daemon to inittab字样,此时在另一个窗口开始执行不停的执行以下命令,直到可以执行为止
/bin/ddif=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
哈哈,这个办法可以保你过一关,但是下一关在哪里就不知道了,你装好了,再重启一下试试。。。。不说了,你猜不到结尾的
安装步骤:
1)环境部署
2)共享磁盘
3)克隆节点
4)安装前检测
5)安装grid infrastructure
6)添加ASM设备
7)安装oracle软件前检查
8)安装oracle软件
9)创建集群数据前的检查
10)创建集群数据库
规划方案:
IP规划:
#public
192.168.137.101 rac1.localdomain rac1
192.168.137.102 rac2.localdomain rac2
#private
10.0.0.1 rac1-priv.localdomain rac1-priv
10.0.0.2 rac2-priv.lcoaldomain rac2-priv
#virtaul
192.168.137.10 rac1-vip.localdomain rac1-vip
192.168.137.20 rac2-vip.localdomain rac2-vip
#scan
192.168.137.100 rac-scan.localdomain rac-scan
192.168.137.200 rac-scan.localdomain rac-scan
192.168.137.300 rac-scan.localdomain rac-scan
存储规划:
sdb1 raw1 10G DATA 存放数据文件
sdc1 raw2 5G ARCH 归档日志
sdd1 ra3 2G OCR 存放ocr和voting
---还可以加更多,但没必要这个时候配置这么多,搭建grid完后就可以利用ASMCA创建更多磁盘了
安装过程:
1)环境部署:
方法:先在一个linux虚拟机上配置,等一切就绪了,就复制生成另一个虚拟机,这样就有两个服务器了
修改主机名:/etc/sysconfig/network
添加网卡:/etc/sysconfig/network-scripts/ifcfg-eth0及eth1,这里需要说的public也就是eth0里面必须要有网关才可以,例如:
DEVICE=eth0
TYPE=Ethernet
UUID=6adac61d-587c-4669-9778-a3f7261e2a7d
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.137.102
NETMASK=255.255.255.0
GATEWAY=192.168.137.1
配置hosts文件:/etc/hosts 内容复制上面的IP规划方案
禁用iptables
关闭防火墙:
禁用NTP: mv /etc/ntp.conf /etc/ntp.conf.bak
搭建本地yum源:挂载CentOS镜像盘,修改cat /etc/yum.repos.d/media.repo 内容如下:
[c6-media]
name=CentOS-$releasever - Media
file:///media/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
安装必备软件包:yum install glibc glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat
unixODBC unixODBC-devel pdksh compat-libcap1 compat-libstdc++ elfutils-libelf-devel gcc-c++
----这里要说一下系统里默认安装了ksh,再安装pdksh的话就会出现冲突,所以得rpm -e ksh,再安装pdksh
安装支持X环境包: yum groupinstall 'X Windows System'
----如果你记不得话就用yum grouplist | grep 'X'查看一下
安装虚拟机tool需要的包: yum install kernel-headers-2.6.32-431.el6.x86_64 gcc
----其它还需要 gcc的,但上面已经安装了
安装虚拟机tool:这个就不用说了吧,把虚拟机安装目录下的linux.iso挂载到media下,安装里面的vmware-tool,一步步回车就行,略
创建用户和组:
groupadd oinstall
groupadd dba
groupadd oper
groupadd asmadmin
groupadd asmdba
groupadd asmoper
useradd -g oinstall -G dba,asmdba,asmadmin,asmoper grid
useradd -g oinstall -G dba,oper,asmdba,asmadmin oracle
echo -n oracle | passwd --stdin grid
echo -n oracle | passwd --stdin oracle
创建目录:
mkdir -p /u01/app/11.2.0/grid ---grid安装目录
mkdir -p /u01/app/grid ---grid的BASE目录,要求不能与上面同一目录的
mkdir -p /u01/app/oracle
chown -R grid:oinstall /u01/app/11.2.0/grid
chown -R grid:oinstall /u01/app/grid
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/
修改grid和oracle的bash_profile文件
cat>> /home/grid/.bash_profile<< EOF修改内核参数/etc/sysctl.conf
export TMP=/tmp;
export TMPDIR=\$TMP;
export ORACLE_HOSTNAME=rac1;
export ORACLE_SID=+ASM1;
export ORACLE_BASE=/u01/app/grid;
export ORACLE_HOME=/u01/app/11.2.0/grid;
export NLS_DATE_FORMAT="yy-mm-dd HH24:MI:SS";
export PATH=\$ORACLE_HOME/BIN:\$PATH;
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;
EOF
cat>> /home/oracle/.bash_profile<< EOF
export TMP=/tmp;
export TMPDIR=\$TMP;
export ORACLE_HOSTNAME=rac1;
export ORACLE_BASE=/u01/app/oracle;
exportORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1;
export ORACLE_UNQNAME=prod;
export ORACLE_SID=prod1;
export ORACLE_TERM=xterm;
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_DATE_FORMAT="yy-mm-dd HH24:MI:SS";
exportNLS_LANG=AMERICAN_AMERICA.ZHS16GBK;
EOF
sed -i 's/kernel.shmmax/#kernel.shmmax/g' /etc/sysctl.conf修改oracle用户限制
sed -i 's/kernel.shmall/#kernel.shmall/g' /etc/sysctl.conf
cat>> /etc/sysctl.conf< fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
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 = 1048586
EOF
cat>> /etc/security/limits.conf< oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
EOF
配置/etc/profile
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
aliasgrep='grep --color=auto'
export PATH=$PATH:/u01/app/11.2.0/grid/bin
----以上已经很多事情了,不过你还可能做下面这些事情增加swap空间
1.检查swap大小和硬盘空间 free -m查看内存和swap | df -h查看硬盘空间 ,得有2.7G的空间才可以为xmanager准备,最好是在root的.bash_profile里面添加上下面内容
2.添加交换文件
mkdir -p /opt/temp
dd if=/dev/zero of=/opt/temp/swap bs=1024 count=2048000 --这个是2G
3.创建交换空间
mkswap /opt/temp/swap
4.启动新增加的2G交换空间
swapon /opt/temp/swap
5.修改/etc/fstab,使新加的2G交换空间在系统重新启动后自动生效
echo "/opt/temp/swap swap swap defaults 0 0" >>/etc/fstab
6.重启生效
export DISPLAY=192.168.137.1:0.0
----在后面运行runInstall之前,先打开Xmanager - Passive工具,细节就不讲了,不懂的回复我,然后在root下面执行xhost +
再回到grid下面运行runInstall,就可以在window下看到虚拟机中的grid安装界面了
2)共享磁盘
因为我们用的是虚拟机,所以共享磁盘也得用虚拟机配置出来,方法如下:
利用虚拟机自带的工具创建硬盘: vmware-vdiskmanager.exe -c -s 10g -a lsilogic -t 2 e:\share\data.vmdk
----生成的文件不要和RAC1的虚拟机文件放在一块了,因为等下要复制RAC1到RAC2的,共享磁盘当然不复制了,按照上面的方法添加三块
修改虚拟机配置文件RAC1.vmx,后面添加如下内容:
disk.locking = "FALSE"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
scsi1.present = "TRUE"
scsi1.sharedBus = "VIRTUAL"
scsi1.virtualDev = "lsilogic"
scsi1:1.present = "TRUE"
scsi1:1.fileName = "E:\Share\RAC1-1.vmdk"
scsi1:1.writeThrough = "TRUE"
scsi1:1.mode = "independent-persistent"
scsi1:1.deviceType = "disk"
scsi1:1.redo = ""
scsi1:2.present = "TRUE"
scsi1:2.fileName = "E:\Share\RAC1-2.vmdk"
scsi1:2.writeThrough = "TRUE"
scsi1:2.mode = "independent-persistent"
scsi1:2.deviceType = "disk"
scsi1:2.redo = ""
scsi1:3.present = "TRUE"
scsi1:3.fileName = "E:\Share\RAC1-3.vmdk"
scsi1:3.writeThrough = "TRUE"
scsi1:3.mode = "independent-persistent"
scsi1:3.deviceType = "disk"
scsi1:3.redo = ""
---OK,重启一下,这样就添加好了
磁盘分区:fdisk /dev/sdb
fdisk /dev/sdc
fdisk /dev/sdd
利用udev工具绑定裸设备:
[root@RAC1 ~]# cat /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"ACTION=="add", KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw2 %N"ACTION=="add", KERNEL=="sdd1", RUN+="/bin/raw /dev/raw/raw3 %N"KERNEL=="raw1", OWNER="grid", GROUP="asmadmin", MODE="660"KERNEL=="raw2", OWNER="grid", GROUP="asmadmin", MODE="660"KERNEL=="raw3", OWNER="grid", GROUP="asmadmin", MODE="660"[root@RAC1 ~]# start_udevStarting udev: [ OK ][grid@RAC1 ~]$ ll /dev/rawtotal 0crw-rw---- 1 grid asmadmin 162, 1 Mar 21 02:58 raw1crw-rw---- 1 grid asmadmin 162, 2 Mar 21 02:58 raw2crw-rw---- 1 grid asmadmin 162, 3 Mar 21 02:58 raw3crw-rw---- 1 root disk 162, 0 Mar 21 02:58 rawctl----OK,绑定裸设备成功
注: 这里没有提到安装ASMLIB,而且用的是CENTOS6.5的系统,内核里面也没有ASMLIB,当然不能运行ORACLEASM LISTDISKS这样的命令。有很多新手认为ASM与ASMLIB有关系,为什么RHEL 6上没有ASMLIB?,建议大家看看这篇文章就了然了 http://www.oracledatabase12g.com/archives/why-no-asmlib-redhat-linux6.html
3)克隆节点
直接复制RAC1的虚拟机的目录为RAC2,打开RAC2虚拟机,点击“I Copied It”
此时,只需要修改三个地方即可:主机名、.bash_profile配置的实例名等、IP地址
4)安装前的检查:
配置两节点互信:
以下均以grid和oracle用户执行
Rac1和Rac2分别执行:
ssh-keygen–t rsa
ssh-keygen–t dsa
Rac1
cat ~/.ssh/ *.pub >>~ /.ssh/authorized_keys
ssh oracle@rac2 cat ~/.ssh/*.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys
Rac1和Rac2双节点执行
ssh rac1 date
ssh rac1-priv date
ssh rac2 date
ssh rac2-priv date
以grid用户在grid解压目录下面运行:
./runcluvfy.sh stage -post hwos -n rac01,rac02 -verbose ----检查两个节点
./runcluvfy.sh comp ssa -n rac1,rac2 -s /dev/raw/raw1,/dev/raw/raw2,/dev/raw/raw3 ---检查共享存储
---如果出现Could not get the type of storage 之类的错误,请检查有没有安装cvuqdisk-1.0.9-1.rpm,该包在目录grid/rpm目录下
检查是否有错误的地方,仔细核对,直到测试成功
5)安装grid infrastructure
安装过程比较简单,就不截图了,重点说一下
磁盘组的冗余级别:
高冗余:三块磁盘互为镜像,通过GI来实现
普通冗余:两块磁盘互为镜像,通过GI来实现
外部冗余:通过外部存储设备本身的安全机制来实现冗余,比如RAID
跑脚本的顺序一定要对,先在RAC1执行第一个脚本,再到RAC2执行第一个脚本,然后到RAC1执行第一脚本,最后再去RAC2执行第二个脚本
注:即使是11.2.0.4这样的版本也会在节点2上运行root.sh脚本时出错的,我是删除了一次GI再重装才成功的
留下删除的过程:
以root身份运行 /u01/app/11.2.0/grid/crs/install/root.crs -deconfig -force ---这个命令相信新手都见过,也用过不少次吧
完了,再执行 /u01/app/11.2.0/grid/deinstall/deinstall 过程中会让输入一些信息,不清楚的可以百度
再然后就是清除共享存储上已经写入的文件了
dd if=/dev/zero of=/dev/raw/raw1 bs=1024 count=10240000 其它两个也是这样执行就行了
最后删除目录
rm /etc/ora*
rm /u01/app/11.2.0/grid/*
rm /usr/local/bin/dbhome
rm /usr/local/bin/oraenv
rm /usr/local/bin/coraenv
rm /u01/app/oraInventory
OK.
6)添加ASM设备
su - grid
ASMCA
接着就是图形化界面配置了
我配置了又配置了两个磁盘组DATA和FRA,分别用来保存数据文件和闪回日志
在ASMCA界面会看到节点2上的设备没有mount,我们可以执行以下命令
$sqlplus / as sysasm
>alter diskgroup DATA mount;
7)安装ORACLE前的检查
./cluvfy stage -pre dbinst -fixup -n rac1,rac2 -osdba dba -verbose
如果出现/etc/resolv.conf未配置之类的错误,是因为没有指定DNS地址。但我们这里用的是hosts文件解析,所以可以忽略。
8)安装ORACLE软件
su - oracle
然后运行database目录下的./install 就很简单了
9)创建集群数据库前的检查
./cluvfy stage -pre dbcfg -n rac1,rac2 -d $ORACLE_HOME -verbose
10)创建集群数据库
DBCA
这里就描述一下,我这里面的数据库名叫orcl,在填写的时候不必担心不要区分orcl1还是orcl2,只需要把数据库名和SID都写为orcl就行,剩下分1和2的事
就交给oracle了
OK,打完收工,前的征程才刚开始
最后,做个广告,我个人的网站http://51zhujie.top/article/37&dissertation
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25960404/viewspace-1127317/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25960404/viewspace-1127317/