决心好好写个搭建RAC的文档 –2016/7/8 01:44
前提1:在虚拟机上搭建RAC,大概需要70G左右的全部硬盘空间。就是说,你全部加起来大概能有70G就肯定够了。
前提2:有虚拟机软件。我的是VM workstation pro12
前提3:有足够大的内存,如果要完全按照我的文档装,起码得8G内存。
暂时就这么多。
规划:主机1,主机名为xiaoxy1.IP为192.168.191.201
主机2,主机名为xiaoxy2 IP为192.168.191.202
存储为虚拟的硬盘6个。
OCR01.vmdk 1G
OCR02.vmdk 1G
VOTING01.vmdk 1G
DATA01.vmdk 10G
FRA01.vmdk 10G
ARC01.vmdk 7G
下面讲述如何创建这些盘:
首先我在C盘根目录下创建了一个名为Virtual_disk的文件夹,用来放我的这些虚拟硬盘
路径为c:\Virtual_disk
然后
1:打开cmd(win+r然后输入cmd)
2:进入vmware安装目录 ->(目录可以在vmware那个软件的图标上右键,然后属性。如下图
复制红色框里的东西,大概如下
"C:\Program Files (x86)\VMware\VMware Workstation\vmware.exe"
删除双引号,去掉最后一个vmware.exe
如下
C:\Program Files (x86)\VMware\VMware Workstation\
)
然后再cmd的命令行输入如下命令,然后回车
cd C:\Program Files (x86)\VMware\VMware Workstation\
结果如图:
接下来执行命令创建以上列出的虚拟硬盘:
vmware-vdiskmanager.exe -c -s 1000MB -a lsilogic -t 2 c:\Virtual_disk\ocr01.vmdk
结果如图:
继续创建其他盘。以下是命令:
vmware-vdiskmanager.exe -c -s 1000MB -a lsilogic -t 2 c:\Virtual_disk\ocr02.vmdk
vmware-vdiskmanager.exe -c -s 1000MB -a lsilogic -t 2 c:\Virtual_disk\voting01.vmdk vmware-vdiskmanager.exe -c -s 10000MB -a lsilogic -t 2 c:\Virtual_disk\data01.vmdk
vmware-vdiskmanager.exe -c -s 10000MB -a lsilogic -t 2 c:\Virtual_disk\fra01.vmdk
vmware-vdiskmanager.exe -c -s 7000MB -a lsilogic -t 2 c:\Virtual_disk\arc01.vmdk
创建完成结果如图:(创建过程会比较缓慢,不要着急。慢慢来。)
再去Virtual_disk那个文件夹看是这样的
关掉cmd。创建虚拟硬盘,基本到此结束。
接着我又在c盘下创建了一个Virtual_machine的文件夹,然后在Virtual_machine的文件夹里创建了xiaoxy1和xiaoxy2文件夹。准备用来放虚拟机。
如图:
创建虚拟机:
打开vmware,点左上角的文件>>新建虚拟机>>然后跟着图做
我错了,3102输入不了,因为不是4的倍数,我输入了3100.
最后是这样,如上图。
另外一台机,基本照做就好。
注意的地方有:
创建完以后,大概能看到这样
然后关闭vmware。睡觉。
继续。。。2016/07/0818:34
为虚拟机挂载硬盘和系统
进入虚拟机所在路径,我的是C:\Virtual_machine\xiaoxy1
鼠标单击选中红框的以vmx的文件。然后按如下图操作:
在文件后面添加以下内容
scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsi1.sharedBus = "virtual"
scsi1:1.present = "TRUE"
scsi1:1.mode = "independent-persistent"
scsi1:1.filename = "C:\Virtual_disk\ocr01.vmdk"
scsi1:1.deviceType = "Disk"
scsi1:2.present = "TRUE"
scsi1:2.mode = "independent-persistent"
scsi1:2.filename = "C:\Virtual_disk\ocr02.vmdk"
scsi1:2.deviceType = "Disk"
scsi1:3.present = "TRUE"
scsi1:3.mode = "independent-persistent"
scsi1:3.filename = "C:\Virtual_disk\voting01.vmdk"
scsi1:3.deviceType = "Disk"
scsi1:4.present = "TRUE"
scsi1:4.mode = "independent-persistent"
scsi1:4.filename = "C:\Virtual_disk\data01.vmdk"
scsi1:4.deviceType = "Disk"
scsi1:5.present = "TRUE"
scsi1:5.mode = "independent-persistent"
scsi1:5.filename = "C:\Virtual_disk\fra01.vmdk"
scsi1:5.deviceType = "Disk"
scsi1:6.present = "TRUE"
scsi1:6.mode = "independent-persistent"
scsi1:6.filename = "C:\Virtual_disk\arc01.vmdk"
scsi1:6.deviceType = "Disk"
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
在filename里面。一个个写自己创建磁盘时候所在的路径和磁盘名称。
打开虚拟机,可以看见如下内容
重复此步骤,添加xiaoxy2虚拟机的硬盘
记得。。关vmware后再操作。
如下:
开虚拟机之前。执行如下操作
然后点确定。
然后开启虚拟机
这个地方我觉得主要桌面要选,其他比较次要。然后下一步。
等待安装就好。
Xiaoxy1也是同样过程,除了主机名有点不同,其他都一样。
安装完选重新引导,然后会重启到这样的界面。
后面随便弄吧,基本下一步就可以
看来RAC安装一步步的确挺麻烦的。这样看起来也挺多步骤的。
先不管了,下一步,搭建环境。
首先,确认ip,主机名
Root用户登录操作系统
查看IP,使用敲入 ifconfig然后enter 就可以有如下图显示。
输入命令 vi /etc/sysconfig/network-scripts/ifcfg-eth0 如下图 ENTER
修改后如上图
修改说明:
onboot=yes 设置网卡在开机时候自启动
bootproto=static 设置静态IP..dhcp为自动获取ip
IPADDR=192.168.191.201 设置IP为192.169.191.201
按esc 然后按shift+q (在大写状态直接按q就可以)
然后输入wqetnter(保存退出)
输入service network restart(重启网络)
输入ifconfig eth0 查看eth0网卡的状态。可以看到成功修改ip。准备换putty连接了。
没有putty的可以继续在虚拟机里进行操作,我只是为了截图方便。
敲以下命令 setenforce 0
然后是 vi /etc/sysconfig/selinux
如图
然后退出保存。不会退出保存,看上面的。一个个重复实在太累了
然后禁用iptables
service iptables stop
chkconfig iptables off
如下图
禁用ntp服务,等下RAC是采用的内部同步ctssd
service ntpd stop
chkconfig ntpd off (让它没有机会启动)
把ntp服务的配置文件改名
mv /etc/ntp.conf /etc/ntp.conf.bak
创建用户组
groupadd -g 1100 oinstall
groupadd -g 1200 asmadmin
groupadd -g 1201 asmdba
groupadd -g 1202 asmoper
groupadd -g 1300 dba
groupadd -g 1301 oper
如图
创建oracle用户和grid用户
useradd -u 501 -g oinstall -G dba,asmdba,oper -d /home/oracle -m oracle
useradd -u 502 -g oinstall -G dba,asmadmin,asmdba,asmoper -d /home/grid -m grid
设置这个两个用户的密码
passwd grid
passwd oracle
本来要验证nobody用户是否存在的。忽略了。验证命令为 id nobody
创建文件夹,并赋予相关权限,命令如下
mkdir -p /u01/app/oracle
mkdir -p /u01/app/grid
mkdir -p /u01/app/11.2.0/grid
mkdir -p /u01/app/oracle/product/11.2.0/db_1
chmod -R 775 /u01/
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
然后是设置一些内核参数
vi /etc/sysctl.conf
即以下内容为添加的
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.aio-max-nr = 3145728
fs.file-max = 6815744
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
如下图
修改grid oracle用户的shell 限制
敲如下命令
vi /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
保存退出
我是如何快速的定位到最下面一行,并编辑的呢?
Shift+g (快速到最后一行) o (下一行开始编辑)
编辑登录文件
vi /etc/pam.d/login
添加如下行
session required pam_limits.so
设置用户环境
vi /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
fi
如下图
大概就这样了
以上就是操作系统内核,服务等方面的设置
以下是oracle用户和grid用户的配置
先
su – oracle
vi .bash_profile
添加如下内容
export PATH
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=node1
export ORACLE_UNQNAME=xiaoxy
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
如下图
接着配置grid用户
su – grid(需要密码)
vi .bash_profile
添加如下行
export PATH
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=+ASM1
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
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_HOM E/jlib:$ORACLE_HOME/rdbms/jlib
umask 022
基本就到这了,互信不配置了,等oracle去配置吧。
配置一下共享磁盘吧,用的udev方式绑定raw盘
su – root
先使用fdisk格式化裸设备
先查看一下设备情况吧
fdisk -l |grep /dev/sd
结果如下
fdisk /dev/sdb剩下过程如下
fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde
fdisk /dev/sdf
fdisk /dev/sdg
最终效果如下:
vi /etc/udev/rules.d/60-raw.rules
添加如下行
ACTION=="add",KERNEL=="/dev/sdb1",RUN+='/bin/raw /dev/raw/raw1 %N"
ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="17",RUN+="/bin/raw /dev/raw/raw1 %M %m"
ACTION=="add",KERNEL=="/dev/sdc1",RUN+='/bin/raw /dev/raw/raw2 %N"
ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="33",RUN+="/bin/raw /dev/raw/raw2 %M %m"
ACTION=="add",KERNEL=="/dev/sdd1",RUN+='/bin/raw /dev/raw/raw3 %N"
ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="49",RUN+="/bin/raw /dev/raw/raw3 %M %m"
ACTION=="add",KERNEL=="/dev/sde1",RUN+='/bin/raw /dev/raw/raw4 %N"
ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="65",RUN+="/bin/raw /dev/raw/raw4 %M %m"
ACTION=="add",KERNEL=="/dev/sdf1",RUN+='/bin/raw /dev/raw/raw5 %N"
ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="81",RUN+="/bin/raw /dev/raw/raw5 %M %m"
ACTION=="add",KERNEL=="/dev/sdg1",RUN+='/bin/raw /dev/raw/raw6 %N"
ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="97",RUN+="/bin/raw /dev/raw/raw6 %M %m"
KERNEL=="raw[1-6]",OWNER="grid",GROUP="asmadmin",MODE="660"
保存退出
start_udev
过程及结果如下
好了。存储就到这了。
现在再来弄一下ip
有了公网IP,现在来搞一下私网
其实就是以下命令
vi /etc/sysconfig/network-scripts/ifcfg-eth1
激活下eth1
service network restart
在xiaoxy2上也执行以上步骤。
这里是不同的
另外在xiaoxy2上不用敲fdisk命令来进行格式化磁盘了,因为在1上已经格式过了,这是共享的。直接编辑raw-60命令输入就好了。。然后重启一下
到这里。。环境已经基本搭建好了。。
现在准备安装的东西,分别是
我习惯在本机上先解压好这些东西
直接全部右键,解压到当前目录就好。
解压的时间有点长。
在想要不要配置互信。。
算了,先配置/etc/hosts/文件。Hosts文件的作用是解析名称和IP地址之间的对应关系的
在root用户下修改(su – root)
vi /etc/hosts
添加以下内容
192.168.191.201 xiaoxy1 #this ip on eth0
192.168.191.211 xiaoxy1-vip #this virtual ip for public
192.168.190.201 xiaoxy1-priv #this private ip for rac
192.168.191.202 xiaoxy2
192.168.191.212 xiaoxy2-vip
192.168.190.202 xiaoxy2-priv
192.168.191.203 scan-ip
如图
Scan-ip是为了提供负载均衡设置的,理论上外面接进来都是接scan-ip这个地址。
以上还有理论,暂时不谈
在xiaoxy2上重复此操作
保存退出。
这时候发现文件已经解压好了。
对grid文件夹右键>共享>特定用户
然后获取一下本机IP。。用cmd,,也可以在图形界面找,,我习惯cmd
如何进cmd,,前面有介绍,,输入ipconfig
我现在用的是wifi,所以我在wlan这里找到了我现在使用的ip。
然后在虚拟机xiaoxy1创建一个目录来挂载这个文件夹
mkdir /oracle
然后输入以下命令
mount -t cifs -o username=Xiaojie,password="oracle" //192.168.191.1/grid /oracle
cd /oracle
ls
就能看到已经成功挂载。准备安装
因为我这边还是命令提示符界面。。所以要转到桌面,,要去虚拟机里安装。。比较头疼的地方
在虚拟机里面以grid用户登录
调出命令行
cd /oracle
ls (查看一下挂载是否成功)
xhost +
然后
./runInstaller
出现以下内容
出现乱码,是因为安装程序对中文支持不好。
点x 退出来,,设置一下就可以解决
输入 export LANG=en
然后再./runInstaller
点ADD。。
点SSH
现在再看,一些警告已经改变,每个人可能还会有些差异,看着自己的错误,一个个修就好了。
如何创建本地yum源
先挂载CD到linux:mount -t auto /dev/cdrom /mnt/
然后把/etc/yum.repos.d/下的.repo的文件改名,然后自己创建一个以.repo结尾的文件
命令如下
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/*.repo.bak
vi /etc/yum.repos.d/myyum.repo
添加内容如下:
[local_server](库名称)
name=Thisis a local repo (名称描述)
baseurl=file:///media(yum源目录,源地址)
enabled=1(是否启用该yum源,0为禁用)
gpgcheck=0 (检查GPG-KEY,0为不检查,1为检查)
如图
保存退出!
[local_yum]
name=yum
baseurl=file:///home
enabled=1
gpgcheck=0
自己弄得
Yum install –y compat*
….类似这样安装省事,,,
安装完一大堆包以后,,剩下的错误可忽略
剩下的忘记截图,直接下一步就好
分别在xiaoxy1和xiaoxy2上执行所列脚本,root用户执行。注意!!!!!!!
先在xiaoxy1上执行完,并成功以后才能在xiaoxy2上执行。
基本这里只要敲enter就可以了。
节点二也安装成功了。
中间会遇到一个错误,,skip跳过
查看了一些,总体运行良好。
查看的命令为
crs_stat -t -v
接下来创建asm磁盘组,为安装database做准备
建议新手用asmca,,有图形好看又方便。
在grid用户下,
asmca
乱码。。export LANG=en上面有说明
退出。
分别创建DATA,FRA,ARC
然后退出
接着挂载oracle database 安装文件,如何挂载windows的资料,上面有说
挂载完成后,转到oracle用户,并查看oracle文件夹是否有挂载成功
命令如下
su – oracle
cd /oracle
ls
如图
这里照例要
export LANG=en
xhost +
./runInstaller
我切了个窗口,,所以这两图有点不一致。。
配置完互信就下一步了
接下来创建数据库
在oracle用户下敲dbca(建议使用刚刚的shell窗口,,环境变量都好的)
点OK。。基本到这里就完成了。。。




