RAC比较严格,如果操作系统不纯净,容易失败:
装备第一台VM:
chkconfig sendmail off
chkconfig iptables off
chkconfig ip6talbes off
systemctl stop firewall.service
systemctl disable firewall.service
vi /etc/sysconf.... 关闭selinux
ifconfig
# 有两块网卡
-----------
system-config-network 图形化界面配置网络
---------------
vi /etc/hosts
XXXX网卡1 rac1
XXXX网卡2 rac1-priv
XXXX虚拟网卡1网段 rac1-vip
XXXX网卡1 rac2
XXXX网卡2 rac2-priv
XXXX虚拟网卡1网段 rac2-vip
XXX网卡1网段 scan
----------------------------------------
改主机名:
1、vi /etc/sysocnfig/network
2、hostname XXX
----------------------------------------
创建用户和用户组:
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 oracle
passwd oracle
# 输入密码; Abcd@1234
passwd grid
# 输入密码; Abcd@1234
-------------------------------
准备相关目录:
su - oracle
mkdir /u01
chown -R oracle:oinstall /u01 ???两个都写
chown -R grid:oinstall /u01
su - grid
mkdir /u01/app/oracle -p
mkdir /u01/app/grid -p
---------------------------------------
修改系统配置文件
vi /etc/sysctl.cof
添加:
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 = 1048586
-------------
vi /etc/securitu/limits.conf
添加:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle hard stack 10240
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid hard stack 10240
---------------
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
umask 022
fi
使配置生效:
sysctl -p
-----------------------------------------------------------------
5、安装依存关系系统包:
vi /etc/yum.repos.d/myoel.repo
[dvdinfo]
name=oel
baseurl=file://iso/Server
enable=1
gpgcheck=0
----
mount -o loop /mnt/hgfs/downlond/EnterXXX /iso
-----
yum makecache
yum install -y binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat unixODBC unixODBC-devel
------------------------------
用户环境变量:
vi /home/oracle/.bash_profile
export ORACLE_SID=+ASM1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/grid
export PATH=$ORACLE_HOME/bin:$PATH
让配置生效:
..bash_profile
------------------------------------
关掉ntp的服务:
su - root
service ntpd stop
mv /etc/ntp.conf /etc/ntp.conf.bak
--------------------------------------------------------------
配置完一台VM,直接复制VM,作为VM2,rac2
--------------------------------------------------------------
在windows下,创建一个目录,叫 shard_disks
--------------------------------------------------------------
因为我们用的是虚拟机,所以共享磁盘也得用虚拟机配置出来,方法如下:
打开vmware station:
创建共享磁盘:
rac1 ---编辑--添加硬盘(模式选择独立---下一步大小1G,选择立刻分配所有磁盘空间---下一步浏览选择shared_disks,命名为orc1)
在rac1再创建另外2个磁盘: D:VMshared_disksocr2,D:VMshared_disksocr3
暂时不要开机,在rac1 VM所在目录,找到vmx后缀的文件,编辑:
把scsi设备的位置,添加内容:
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:0.present = "TRUE"
scsi1:0.fileName = "D:VMshared_disksocr1"
scsi1:0.writeThrough = "TRUE"
scsi1:0.mode = "independent-persistent"
scsi1:0.deviceType = "disk"
scsi1:1.present = "TRUE"
scsi1:1.fileName = "D:VMshared_disksocr2"
scsi1:1.writeThrough = "TRUE"
scsi1:1.mode = "independent-persistent"
scsi1:1.deviceType = "disk"
scsi1:2.present = "TRUE"
scsi1:2.fileName = "D:VMshared_disksocr3"
scsi1:2.writeThrough = "TRUE"
scsi1:2.mode = "independent-persistent"
scsi1:2.deviceType = "disk"
在rac2的rac.vmx中添加同样的内容。
然后开机;
检查rac1和rac2 的IP和主机名
----------------------------------------
在rac2中,
su - grid
vi .bash_profile
修改为:
export ORACLE_SID=+ASM2
..bash_profile
--------------------------------
建立两台服务器之间grid用户和oracle用户的ssh等效性认证:
通讯确认心跳等,建立无密码的通讯
grid用户的ssh等效性认证:
rac1和rac2都配置:
su - grid
mkdir .ssh # 加. ,表示隐藏目录,正常情况不显示
chmod 700 .ssh
cd .ssh
ssh-keygen -t dsa
#一直回车
ssh-keygen -t rsa
#一直回车,一个rsa,接受的,一个是dsa,发送的
在任何一个节点上操作,以在rac1上为例:
cat id_rsa.pub >>authorized_keys
cat id_dsa.pub >>authorized_keys
# 把生成的两个密钥文件,加载到指定文件中
ssh rac2 cat ~/.ssh/id_rsa.pub >>authorized_keys
# 输入密码
ssh rac2 cat ~/.ssh/id_dsa.pub >>authorized_keys
# 同时把rac2的密钥文件也要加载到指定文件
more authorized_keys # 可以看到所有密钥
把这个密钥文件复制到rac2的目录中:
scp authorized_keys rac2:~/.ssh/.
--------------------------------------
测试
ssh rac1 data # 发现可以直接访问,不需要密码
ssh rac2 data
ssh rac2-priv data # 两个网卡都试一下
-------------------------------------------------------
准备磁盘:
添加3快磁盘,
先创建物理分区
在任何一个节点上,如在rac1上:
fdisk -l
# 看到3块磁盘
fdisk /dev/sdb
n
p
1
w
同理:
fdisk /dev/sdc
fdisk /dev/sdd
fdisk -l
在rac2上,fdisk -l
# 都可以看到分配好的分区,因为这些分区信息是写在磁盘里的,而不是系统上的,访问这个磁盘,就能看到这个分区信息。
----------------
准备裸设备
rac1和rac2上配置:
vi /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=="raw[1]", OWNER="grid", GROUP="oinstall", MODE="0660"
KERNEL=="raw[2]", OWNER="grid", GROUP="oinstall", MODE="0660"
KERNEL=="raw[3]", OWNER="grid", GROUP="oinstall", MODE="0660"
然后:
start_udev
raw -qa
# 能看到3个裸设备
到此基本准备完成
--------------------------------
15、安装前的检查:
su - grid
在grid解压目录下运行(那个共享目录,如果重新加载,用mount -a,自动加载);
cd /mnt/hgfs/download/grid
./runcluvfy.sh stage -post hwos -n rac1,rac2 -verbose ----检查两个节点
# runcluvfy.sh也就是oracle安装文件中,解压出来的一个脚本
---如果出现Could not get the type of storage 之类的错误,请检查有没有安装cvuqdisk-1.0.9-1.rpm,该包在目录grid/rpm目录下
检查是否有错误的地方,仔细核对,直到测试成功
----------------------------------------------------
在rac1
xhost + # 回到桌面环境
su - grid
cd /mnt/hgfs/download/grid
./runInstaller # 开始安装
----------------------------
图像化安装oracle:
第一步,选择第一个 安装cluster
第二步,对初学,选择typical
第三步,scan name,填入/etc/hosts中定义的scan name
添加rac1和rac2
第四步:要填目录,不过之前环境变量都设置好了
cluter registory,选Automasic storage managment(ASM)
设置ASM密码
第五步,磁盘组,命名OCR,冗余度选normal,勾选所有disk
下一步,安装,安装完成,会提示执行脚本,再点击OK
crs_stat -t ,查看群集状态,大部分显示online,
------------------------------
之前的三块磁盘是个RAC用的,
再准备磁盘,给数据库用
关闭集群中所有服务:
在rac1:
/u01/app/grid/product/11.2.0/grid/bin/crs_stop -all
没完全停服务,可以多执行几次
rac1,rac2 关机。
在rac1上,
直接添加磁盘,在shared_disks目录下,叫data01,改成scsi2,不让造成拥挤。
编辑配置文件 rac1.vmx
修改为:
scsi2.present = "TRUE"
scsi2.sharedBus = "VIRTUAL"
scsi2.virtualDev = "lsilogic"
scsi2.deviceType = "disk"
scsi2:0.present = "TRUE"
scsi2:0.fileName = "D:VMshared_disksdata01"
scsi2:0.writeThrough = "TRUE"
scsi2:0.mode = "independent-persistent"
scsi2:0.deviceType = "disk"
scsi2:1.present = "TRUE"
scsi2:1.fileName = "D:VMshared_disksdata02"
scsi2:1.writeThrough = "TRUE"
scsi2:1.mode = "independent-persistent"
scsi2:1.deviceType = "disk"
scsi2:2.present = "TRUE"
scsi2:2.fileName = "D:VMshared_disksdata03"
scsi2:2.writeThrough = "TRUE"
scsi2:2.mode = "independent-persistent"
scsi2:2.deviceType = "disk"
同时编辑rac2的配置文件,rac.vmx
参考之前的配置,
创建分区,配置裸设备
ACTION=="add", KERNEL=="sde1", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="sdf1", RUN+="/bin/raw /dev/raw/raw5 %N"
ACTION=="add", KERNEL=="sdg1", RUN+="/bin/raw /dev/raw/raw6 %N"
KERNEL=="raw[4]", OWNER="grid", GROUP="oinstall", MODE="0660"
KERNEL=="raw[5]", OWNER="grid", GROUP="oinstall", MODE="0660"
KERNEL=="raw[6]", OWNER="grid", GROUP="oinstall", MODE="0660"
开机,
查看群集状态:
crs_stat -t
如果没有起来:
/u01/app/grid/product/11.2.0/grid/bin/crs_start -all
--------------------------
使用ASMCA创建数据库使用的ASM磁盘组
在rac1上
xhost +
su - grid
asmca
弹出图像化窗口:
create
命名data,冗余normal,勾选所以disk。
--------------------------
20、安装oracle数据库软件,现在还没开始安装oracle,之前配置的是rac
创建目录;
在rac1和rac2上都执行:
su - root
mkdir -p /u02
chown -R oralce:oinstall /u02
su - oracle
mkdir -p /u02/app/oracle
--------------------------------------
准备oracle环境变量
rac1上:
su - oracle
vi .bash_profile
添加:
export ORACLE_SID=racdb1
export ORACLE_BASE=/u02/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH # 把oracle的路径加进入,再递归下PATH
生效:
..bash_profile
rac2上:
su - oracle
vi .bash_profile
添加:
export ORACLE_SID=racdb2
export ORACLE_BASE=/u02/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH # 把oracle的路径加进入,再递归下PATH
生效:
..bash_profile
-----------------------
在oracle安装文件目录下,
在rac1上
xhost +
su - oracle
./runInstaller
安装过程一样;
到94%,提示每个节点执行脚本,输入yyyy
------------------------
任意节点上,如在rac1,创建数据库
su - oracle
dbca
弹出图形化界面:
第一步: 选择 oracle rac database
第二步,create,之后就一样了。命名racdb,选择节点 rac1,rac2