一. centos安装
1. 选择安装镜像文件时注意勾选启动时连接。
2. 网络配置
Eth0:
Ip地址:192.168.48.50
子网掩码:255.255.255.0
网关:192.168.48.255
Eth1:
Ip地址:10.0.0.10
子网掩码:255.255.255.0
网关10.0.0.255
3. 存储规划
Swap:4096
Boot:100
/:剩余空间
4. 安装完成后修改主机名
[root@prod1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.48.50 prod1
[root@prod1 ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=prod1
GATEWAY=192.168.48.1
二. Oracle rac环境配置
1. 关闭防火墙,ntpd时间同步
[root@prod1 ~]# vim /etc/selinux/config
SELINUX=disabled
[root@prod1 ~]# service iptables stop
[root@prod1 ~]# chkconfig iptables off
[root@prod1 ~]# chkconfig --list |grepiptables
[root@prod1 ~]# service ntpd stop
[root@prod1 ~]# chkconfig ntpd off
[root@prod1 ~]# rm -rf /etc/ntpd.conf
[root@prod1 ~]# rm -rf /etc/run/ntpd.pid
2.配置yum源
[root@prod1 cdrom]# mount /dev/cdrom/mnt/cdrom
mount: block device /dev/sr0 iswrite-protected, mounting read-only
[root@prod1 mnt]# mkdir centosyum
[root@prod1 mnt]# cp -r cdrom/mnt/centosyum/cdrom
[root@prod1 yum.repos.d]# mvCentOS-Base.repo CentOS-Base.repo.bak
[root@prod1 yum.repos.d]# mvCentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
[root@prod1 yum.repos.d]# mv CentOS-Vault.repoCentOS-Vault.repo.bak
[root@prod1 yum.repos.d]# vimCentOS-Media.repo
baseurl=file:///mnt/centosyum/cdrom/
file:///mnt/cdrom/
file:///media/cdrecorder/
gpgcheck=1
enabled=1 #允许使用本地yum源
3. 安装软件包
yum install glibc glibc-devel glibc-headerslibaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBCunixODBC-devel pdksh compat-libcap1 compat-libstdc++ elfutils-libelf-develgcc-c++
[root@prod1 scripts]# yum installpdksh-5.2.14-37.el5_8.1.x86_64.rpm
4. 安装图形软件包(非必选)
[root@prod1 ~]# yum grouplist |grep 'X'; #不记得具体的包名可以用此查看
[root@prod1 ~]# yum groupinstall 'X Window System';
5. 安装vmtools
点击虚拟菜单下的安装虚拟机工具子菜单. 菜单:VM->Install VMware tools....(虚拟机->安装VMwareTools...)
[root@prod1 mnt]# mount /dev/cdrom/mnt/cdrom
[root@prod1 mnt]# mkdir vmtools
[root@prod1 cdrom]# cpVMwareTools-10.0.6-3595377.tar.gz ../vmtools/VMwareTools-10.0.6-3595377.tar.gz
[root@prod1 vmtools]# tar -xzvfVMwareTools-10.0.6-3595377.tar.gz
[root@prod1 vmware-tools-distrib]#./vmware-install.pl
三. Oracle相关环境配置
1. 创建用户和组
[root@prod1 ~]# groupadd oinstall
[root@prod1 ~]# groupadd dba
[root@prod1 ~]# groupadd oper
[root@prod1 ~]# groupadd asmadmin
[root@prod1 ~]# groupadd asmdba
[root@prod1 ~]# groupadd asmoper
[root@prod1 ~]# useradd -g oinstall -Gdba,asmdba,asmadmin,asmoper grid
[root@prod1 ~]# useradd -g oinstall -Gdba,oper,asmdba,asmadmin oracle
[root@prod1 ~]# echo -n oracle | passwd--stdin grid
Changing password for user grid.
passwd: all authentication tokens updatedsuccessfully.
[root@prod1 ~]# echo -n oracle | passwd--stdin oracle
Changing password for user oracle.
passwd: all authentication tokens updatedsuccessfully.
2. 创建目录
[root@prod1 ~]# mkdir -p/u01/app/11.2.0/grid
[root@prod1 ~]# mkdir -p /u01/app/grid
[root@prod1 ~]# mkdir -p /u01/app/oracle
[root@prod1 ~]# chown -R grid:oinstall/u01/app/11.2.0/grid
[root@prod1 ~]# chown -R grid:oinstall/u01/app/grid
[root@prod1 ~]# chown -R oracle:oinstall/u01/app/oracle
[root@prod1 ~]# chmod -R 775 /u01/
3. 修改grid和Oracle用户的环境变量配置
[root@prod1 ~]# vim/home/grid/.bash_profile
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=prod1; exportORACLE_HOSTNAME
ORACLE_SID=+ASM1; export ORACLE_SID
ORACLE_BASE=/u01/app/grid; exportORACLE_BASE
ORACLE_HOME=/u01/app/11.2.0/grid; exportORACLE_HOME
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;export CLASSPATH
[root@prod1 ~]# vim/home/oracle/.bash_profile
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=prod1; exportORACLE_HOSTNAME
ORACLE_UNQNAME=prod;export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; exportORACLE_BASE
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1;export ORACLE_HOME
ORACLE_SID=prod1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;export CLASSPATH
4. 修改内核参数
[root@prod1 ~]# vim /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
5. 修改oracle用户限制
[root@prod1 ~]# vim/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
6. 配置 /etc/profile
[root@prod1 ~]# vim /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
7. 创建共享磁盘
vmware-vdiskmanager.exe -c -s 10g -alsilogic -t 2 d:\RAC_PROD\share\rac1-1.vmdk
vmware-vdiskmanager.exe -c -s 5g -alsilogic -t 2 d:\RAC_PROD\share\rac1-2.vmdk
vmware-vdiskmanager.exe -c -s 2g -alsilogic -t 2 d:\RAC_PROD\share\rac1-3.vmdk
C:\Program Files (x86)\VMware\VMwareWorkstation>vmware-vdiskmanager.exe -c -s 10g -a lsilogic -t 2d:\RAC_PROD\share\rac1-1.vmdk
Creating disk'd:\RAC_PROD\share\rac1-1.vmdk'
Create: 100% done.
Virtual disk creation successful.
C:\Program Files (x86)\VMware\VMwareWorkstation>vmware-vdiskmanager.exe -c -s 5g -a lsilogic -t 2d:\RAC_PROD\share\rac1-2.vmdk
Creating disk'd:\RAC_PROD\share\rac1-2.vmdk'
Create: 100% done.
Virtual disk creation successful.
C:\Program Files (x86)\VMware\VMware Workstation>
C:\Program Files (x86)\VMware\VMwareWorkstation>vmware-vdiskmanager.exe -c -s 2g -a lsilogic -t 2d:\RAC_PROD\share\rac1-3.vmdk
Creating disk'd:\RAC_PROD\share\rac1-3.vmdk'
Create: 100% done.
Virtual disk creation successful.
(注意在虚拟机关闭时修改)修改虚拟机配置文件rac_prod1.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 ="D:\RAC_PROD\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 ="D:\RAC_PROD\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 = "D:\RAC_PROD\Share\RAC1-3.vmdk"
scsi1:3.writeThrough = "TRUE"
scsi1:3.mode ="independent-persistent"
scsi1:3.deviceType = "disk"
scsi1:3.redo = ""
重启即可看到共享磁盘
8. 磁盘分区
[root@prod1 ~]# fdisk –l #查看刚才添加的磁盘
fdisk /dev/sdb>u>n>p>1>default>default>w
fdisk /dev/sdc >u>n>p>1>default>default>w
fdisk /dev/sdd >u>n>p>1>default>default>w
9. 使用udev绑定裸设备
[root@prod1 ~]# vim/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@prod1 ~]# start_udev
Starting udev: [ OK ]
[root@prod1 ~]# ll /dev/raw #查看是否绑定成功
total 0
crw-rw---- 1 grid asmadmin 162, 1 Feb 1018:35 raw1
crw-rw---- 1 grid asmadmin 162, 2 Feb 1018:35 raw2
crw-rw---- 1 grid asmadmin 162, 3 Feb 1018:35 raw3
crw-rw---- 1 root disk 162, 0 Feb 10 18:35 rawctl
至此,安装前的环境配置完成。
四. 克隆节点
1. 复制文件夹,’I copy it’
2. 克隆后网络配置
a.
vi /etc/udev/rules.d/70-persistent-net.rules #删除掉关于eth0,eth1的信息,修改eth2,eth3网卡的名字为eth0,eth1
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net",ACTION=="add", DRIVERS=="?*",ATTR{address}=="00:0c:29:d3:92:70", ATTR{type}=="1",KERNEL=="eth*", NAME="eth0"
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net",ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:d3:92:7a",ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
b. vi/etc/sysconfig/network-scripts/ifcfg-eth0 #分别修改eth0和eth1的mac地址为a中修改后对应的mac,Ip地址按照规划也相应修改
[root@prod1 ~]# cat/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
UUID=737a179a-7a75-47ca-bc19-768deff0407f
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=00:0c:29:d3:92:70
IPADDR=192.168.48.60
PREFIX=24
GATEWAY=192.168.48.255
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
修改完成后,执行serice network restart检查网络配置情况。
3. 修改prod2主机名配置
vi /etc/hosts
vi /etc/sysconfig/network
4. 修改prod2环境变量配置:hostname和SID
vi/home/grid/.bash_profile
vi/home/oracle/.bash_profile
五. 配置节点互信(注意修改主机名)
1.为ssh何scp创建连接(rac1和rac2都要执行)
ls -l /usr/local/bin/ssh
ls -l /usr/local/bin/scp
不存在则创建
[root@rac1 ~]# /bin/ln -s /usr/bin/ssh /usr/local/bin/ssh
[root@rac1 ~]# /bin/ln -s /usr/bin/scp /usr/local/bin/scp
2.为grid用户配置SSH
在每个节点上
[root@rac1 ~]# su - grid
[grid@rac1 ~]$ mkdir ~/.ssh
[grid@rac1 ~]$ cd .ssh
[grid@rac1 .ssh]$ ssh-keygen -t rsa
[grid@rac1 .ssh]$ ssh-keygen -t dsa
在节点1上:
[grid@rac1 .ssh]$ touch authorized_keys
[grid@rac1 .ssh]$ ssh rac1 cat /home/grid/.ssh/id_rsa.pub >>authorized_keys
[grid@rac1 .ssh]$ ssh rac2 cat /home/grid/.ssh/id_rsa.pub >>authorized_keys
[grid@rac1 .ssh]$ ssh rac1 cat /home/grid/.ssh/id_dsa.pub >>authorized_keys
[grid@rac1 .ssh]$ ssh rac2 cat /home/grid/.ssh/id_dsa.pub >>authorized_keys
[grid@rac1 .ssh]$ scp authorized_keys rac2:/home/grid/.ssh/
分别在每个节点上
[grid@rac1 .ssh]$ ssh rac1 date
[grid@rac1 .ssh]$ ssh rac2 date
[grid@rac1 .ssh]$ ssh-agent $SHELL
[grid@rac1 .ssh]$ ssh-add
3.为oracle用户配置SSH
在每个节点上
[grid@rac1 .ssh]$ su - oracle
[oracle@rac1 ~]$ mkdir ~/.ssh
[oracle@rac1 ~]$ cd .ssh
[oracle@rac1 .ssh]$ ssh-keygen -t rsa
[oracle@rac1 .ssh]$ ssh-keygen -t dsa
在节点1上
[oracle@rac1 .ssh]$ touch authorized_keys
[oracle@rac1 .ssh]$ ssh rac1 cat /home/oracle/.ssh/id_rsa.pub >>authorized_keys
[oracle@rac1 .ssh]$ ssh rac2 cat /home/oracle/.ssh/id_rsa.pub >>authorized_keys
[oracle@rac1 .ssh]$ ssh rac1 cat /home/oracle/.ssh/id_dsa.pub >>authorized_keys
[oracle@rac1 .ssh]$ ssh rac2 cat /home/oracle/.ssh/id_dsa.pub >>authorized_keys
[oracle@rac1 .ssh]$ scp authorized_keys rac2:/home/oracle/.ssh/
分别在每个节点上
[oracle@rac1 .ssh]$ ssh rac1 date
[oracle@rac1 .ssh]$ ssh rac2 date
[oracle@rac1 .ssh]$ ssh-agent $SHELL
[oracle@rac1 .ssh]$ ssh-add
六. 安装前环境检查(gi为第三个安装包)
以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 ---检查共享存储
如果出现共享存储的问题,可以忽略掉,因为oracle不支持vm的共享存储。
七. 安装gi
su - grid
cd /software/grid/
./runInstaller #启动安装程序
<1>Skip sofware updates #跳过软件更新
<2>Install and Configure Oracle Grid Infrastructurs for a Cluster #安装集群件
<3>Advanced Installation #高级安装
<4>Simplifies Chinese/Traditional Chinese #支持简体/繁体中文
<5>oradbrac/oradbrac-scan/1521 #集群件参数
注意:1.集群名自己取,如rac-cluster
2.SCAN名需要和/etc/hosts中的scan ip别名一致(rac-scan),端口默认,不选GNS,next
<6>点 add 输入 oradbrac2/oradbrac2-vip #添加第二个节点信息
选择ssh连接测试,输入密码后,点击setup,建立成功后可以test
<7>确认回显信息,点next即可!
<8>选择Oracle Automatic Storage Management(Oracle ASM)
<9>Disk Group Name OCR #设置集群件存储名
Redundancy External #外部磁盘冗余
选择 OCR(2G) #选择共享存储
<10>Do not use Intelligent Management Interface(IPMI) #不使用IPMI
<11>确认回显信息(ASM磁盘用户及组),点next
<12>确认安装路径,点next
<13>确认安装路径,点next
注意:此处可能会碰到一些路径是之前没有创建的,在两个节点建立即可,并确保有写入的权限
<14>依赖包检测,对于缺失的包,请:
1、rpm -qa|grep 关键字查看系统是否安装高版本包,如果已安装可忽略
2、缺失的包使用 rpm -ivh 或者 yum install 安装,可以用yum list compat* 来检测可用的包(如果提示缺少cvuqdisk,可以直接在grid安装包rpm里面直接安装)
3、Network Time Protocol(NTP),Task resolv.conf Intergrity 检测忽略
点 next 下一步
<15>确认回显信息,点 Install 开始安装
<16>等待弹出root.sh用户执行脚本窗口时执行:
跑脚本的顺序一定要对,先在RAC1执行第一个脚本,再到RAC2执行第一个脚本,然后到RAC1执行第一脚本,最后再去RAC2执行第二个脚本
oradbrac1(root用户): /u01/app/oraInventory/orainstRoot.sh
oradbrac2(root用户): /u01/app/oraInventory/orainstRoot.sh
oradbrac1(root用户): /u01/app/11.2.0/grid/root.sh
出现Adding daemon toinittab时,需要不停地执行命令:
/bin/ddif=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1 直到 Addingdaemon to inittab 成功
oradbrac2(root用户): /u01/app/11.2.0/grid/root.sh
出现Adding daemon toinittab时,需要不停地执行命令:
/bin/ddif=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1 直到 Addingdaemon to inittab 成功
注意:以上四个脚本必须没有错误才可以,否则请铲掉重来(两个节点一样):
1、rm -fr/u01/*
2、rm -fr/etc/oracle/*
3、mkdir/u01/app/oracle -p
chown -Roracle.oinstall /u01/app/oracle/
chown -Rgrid.oinstall /u01
chmod -R775 /u01
su - grid
mkdir -p$ORACLE_BASE
mkdir -p$ORACLE_HOME
exit
su -oracle
mkdir -p$ORACLE_HOME
exit
<17>点 OK 继续安装。
[INS-10014]...暂时不知道什么原因,也暂时忽略掉
出现 [INS-20802]Oracle Cluster Verification Utility Failed. 点 OK 忽略即可!
<18>点Close完成 Grid Infrastructure 的安装
八. 安装Oracle软件
安装前检查
su - grid
crs_stat -t -v #查看CRS状态
可以看到oradbrac1和oradbrac2两个节点都处于ONLINE状态即可
安装DataBase
exit
su - oracle
cd /software/database
./runInstaller #启动安装程序
<1>不选 I wish to recelvesecurity updates via My Oracle Support
<2>Skip sofware updates
<3>Install database software only #如果是学习,建议只安装databasesoftware,如果同时建库
<4>Oracle Real Application Clusters databaseinstallation
默认会勾选两个节点,如果只显示一个节点,应该是CRS有问题,建议重装 Grid Infrastructure!
<5>Simplifies Chinese/Traditional Chinese #支持简体/繁体中文
<6>Enterprise Edition(4.7GB) #选择标准数据库还是企业数据库,一般选企业数据库
<7>确认回显信息(数据库软件安装路径),点next即可!
<8>确认回显信息(数据库用户),点next即可!
<9>依赖包检测,点 next 下一步(报错信息应该与安装Grid Infrastructure 最终检查结果一致)
<10>点击Install开始安装
<11>等待弹出root.sh用户执行脚本窗口时执行:
oradbrac1(root用户): /u01/app/oraInventory/orainstRoot.sh
oradbrac2(root用户): /u01/app/oraInventory/orainstRoot.sh
oradbrac1(root用户): /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
oradbrac2(root用户): /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
<12>点Close完成 OracleDataBase 的安装
九、在开始建库之前,需要配置存储数据库数据文件的ASM磁盘组
su- grid
asmca #asmca的图形化界面,分别创建Data和Backup磁盘组
Create #创建磁盘组
Disk Group Name : Data
Redundancy :External(None)
勾选 **data
点OK
等会儿会有回显"GiskGroup Data created successfully."
相同方法创建Backup
点 Mount All
点 Yes
确认回显信息正确,点Exit退出!
十、创建实例(建库)
su- oracle
dbca #调出DBCA的图形界面
<1>Oracle Real Application Cluster(RAC) database
<2>Create a Database
<3>General Purpose or Transaction Processing #一般用户数据库,除非用作数据仓库,否则建议选此项
<4>Global Database Name:oradbrac
SID Prefix (会随着 Global Database Name 变化,不需要修改)
确认oradbrac1和oradbrac2都被勾选
点next
<5>不勾选 Configure Enterprise Manager ,点 next
<6>Use the Same Administrative Password for All Accounts
输入密码,点 next
<7>Use Oracle-Managed Files
+Data #存储数据文件
<8>Fast Recovery Area
+Backup #存储闪存文件和备份文件,在线日志等
<9>不勾选 Sample Schemas #数据库自带样例
<10>点标签 Character Sets 设置数据库字符集后点 next
一般勾选 ZHS16GBK-GBK 16-bit Simplified Chinese
<11>点 next
<12>确认信息后点 ok 开始建库
<13>弹出回显窗口点 Exit 完成建库