|
- To Build Share Disk For rac1 and Rac2
在Windows的cmd DOS運行命令窗口運行
C:\Program Files (x86)\VMware\VMware Workstation>
vmware-vdiskmanager.exe -c -s 1000Mb -a lsilogic -t 2 E:\VMware\RAC\Sharedisk\ocr.vmdk
vmware-vdiskmanager.exe -c -s 1000Mb -a lsilogic -t 2 E:\VMware\RAC\Sharedisk\ocr2.vmdk
vmware-vdiskmanager.exe -c -s 1000Mb -a lsilogic -t 2 E:\VMware\RAC\Sharedisk\votingdisk.vmdk
vmware-vdiskmanager.exe -c -s 20000Mb -a lsilogic -t 2 E:\VMware\RAC\Sharedisk\data.vmdk
vmware-vdiskmanager.exe -c -s 10000Mb -a lsilogic -t 2 E:\VMware\RAC\Sharedisk\backup.vmdk
2. Installing Linux
1).新建虚拟机并添加一张host_noly网卡
2).存储空间
/boot 200M
/home 30000M
/swap 5000M
/ 40000M
3)Linux安装时的选项
Base System > Base
Base System > Client management tools
Base System > Compatibility libraries
Base System > Hardware monitoring utilities
Base System > Large Systems Performance
Base System > Network file system client
Base System > Performance Tools
Base System > Perl Support
Servers > Server Platform
Servers > System administration tools
Desktops > Desktop
Desktops > Desktop Platform
Desktops > Fonts
Desktops > General Purpose Desktop
Desktops > Graphical Administration Tools
Desktops > Input Methods
Desktops > X Window System
Development > Additional Development
Development > Development Tools
Applications > Internet Browser
4).配置虚拟机RAC1 RAC2目录下的vmx虚拟机配置文件,在行最后添加如下:
是否安裝成功可以在下方進行分區的時候只需要一個節點進行分區,重啟之後,所有節點的磁盤分區階已經分好
scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsi1.sharedBus = "virtual"
scsi1:1.present = "TRUE"
scsi1:1.mode = "independent-persistent"
scsi1:1.filename = "E:\VMDisk\Sharedisk\ocr.vmdk"
scsi1:1.deviceType = "Disk"
scsi1:2.present = "TRUE"
scsi1:2.mode = "independent-persistent"
scsi1:2.filename = "E:\VMDisk\Sharedisk\votingdisk.vmdk"
scsi1:2.deviceType = "Disk"
scsi1:3.present = "TRUE"
scsi1:3.mode = "independent-persistent"
scsi1:3.filename = "E:\VMDisk\Sharedisk\data.vmdk"
scsi1:3.deviceType = "Disk"
scsi1:4.present = "TRUE"
scsi1:4.mode = "independent-persistent"
scsi1:4.filename = "E:\VMDisk\Sharedisk\backup.vmdk"
scsi1:4.deviceType = "Disk"
scsi1:5.present = "TRUE"
scsi1:5.mode = "independent-persistent"
scsi1:5.filename = "E:\VMDisk\Sharedisk\ocr2.vmdk"
scsi1:5.deviceType = "Disk"
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
5).reboot the system.
[root@rac1 ~]#reboot
[root@rac2 ~]#reboot
6).配置ip
//这里的网关有vmware中网络设置决定,eth0为连接外网,eth0内网心跳
//rac1主机下:
[root@rac1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.248.101
PREFIX=24
GATEWAY=192.168.248.2
DNS1=114.114.114.114
[root@rac1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
IPADDR=192.168.109.101
PREFIX=24
//rac2主机下
[root@rac2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.248.102
PREFIX=24
GATEWAY=192.168.248.2
DNS1=114.114.114.114
[root@rac2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
IPADDR=192.168.109.102
PREFIX=24
(2)配置hostname
//rac1主机下
[root@rac1 ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=rac1
GATEWAY=192.168.248.2
NOZEROCONF=yes
//rac2主机下
[root@rac2 ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=rac2
GATEWAY=192.168.248.2
NOZEROCONF=yes
(3)配置hosts
rac1和rac2均要添加:
[root@rac1 ~]# vi /etc/hosts
192.168.248.101 rac1
192.168.248.201 rac1-vip
192.168.109.101 rac1-priv
192.168.248.102 rac2
192.168.248.202 rac2-vip
192.168.109.102 rac2-priv
192.168.248.110 scan-ip
[root@rac2 ~]# vi /etc/hosts
192.168.248.101 rac1
192.168.248.201 rac1-vip
192.168.109.101 rac1-priv
192.168.248.102 rac2
192.168.248.202 rac2-vip
192.168.109.102 rac2-priv
192.168.248.110 scan-ip
重启网络
[root@rac1 ~]# service network restart
重启网络
[root@rac2 ~]# service network restart
3. 安装准备
1).关闭防火墙
[root@rac1 ~]#chkconfig iptables off
[root@rac1 ~]#service iptables stop
[root@rac1 ~]#reboot
[root@rac2 ~]#chkconfig iptables off
[root@rac2 ~]#service iptables stop重启生效
[root@rac2 ~]#reboot
2).修改 /etc/selinux/config
[root@rac1 ~]#vi /etc/selinux/config
SELINUX=disabled
[root@rac2 ~]#vi /etc/selinux/config
SELINUX=disabled
3)指定本地yum源
对/etc/yum.repos.d/rhel-source.repo 进行修改
[root@rac1 ~]# vi /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever -$basearch - Source
baseurl=file:///setup/rhel6Setup/Server
enabled=1
gpgcheck=1
gpgkey=file:///setup/rhel6Setup/RPM-GPG-KEY-redhat-release
[root@rac2 ~]# vi /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever -$basearch - Source
baseurl=file:///setup/rhel6Setup/Server
enabled=1
gpgcheck=1
gpgkey=file:///setup/rhel6Setup/RPM-GPG-KEY-redhat-release
4)添加 /etc/pam.d/login
[root@rac1 ~]#vi /etc/pam.d/login
session required pam_limits.so
[root@rac2 ~]#vi /etc/pam.d/login
session required pam_limits.so
5). 创建必要的用户、组和目录,并授权 (rac1,rac2)
/usr/sbin/groupadd -g 1000 oinstall
/usr/sbin/groupadd -g 1020 asmadmin
/usr/sbin/groupadd -g 1021 asmdba
/usr/sbin/groupadd -g 1022 asmoper
/usr/sbin/groupadd -g 1031 dba
/usr/sbin/groupadd -g 1032 oper
useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
useradd -u 1101 -g oinstall -G dba,asmdba,oper oracle
mkdir -p /u01/app/11.2.0/grid
mkdir -p /u01/app/grid
mkdir /u01/app/oracle
chown -R grid:oinstall /u01
chown oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
[root@rac1 ~]# passwd grid
[root@rac1 ~]# passwd oracle
[root@rac2 ~]# passwd grid
[root@rac2 ~]# passwd oracle
6)内核参数设置:(rac1,rac2)
[root@rac1 ~]# vi /etc/sysctl.conf
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 = 1306910720
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
net.ipv4.tcp_wmem = 262144 262144 262144
net.ipv4.tcp_rmem = 4194304 4194304 4194304
这里后面检测要改
kernel.shmmax = 68719476736
确认修改内核
[root@rac1 ~]# sysctl -p
7).配置oracle、grid用户的shell限制 (rac1,rac2)
[root@rac1 ~]# 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
8).配置oracle用户ssh互信
这是很关键的一步,虽然官方文档中声称安装GI和RAC的时候OUI会自动配置SSH,但为了在安装之前使用CVU检查各项配置,还是手动配置互信更优。
[root@rac1 ~]#su - oracle
[oracle@rac1 ~]$mkdir ~/.ssh
[oracle@rac1 ~]$chmod 700 ~/.ssh
[oracle@rac1 ~]$ssh-keygen -t rsa
[oracle@rac1 ~]$ssh-keygen -t dsa
root@rac2 ~]#su - oracle
[oracle@rac2 ~]$mkdir ~/.ssh
[oracle@rac2 ~]$chmod 700 ~/.ssh
[oracle@rac2 ~]$ssh-keygen -t rsa
[oracle@rac2 ~]$ssh-keygen -t dsa
[oracle@rac1 ~]$
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh rac2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
[oracle@RAC1]$ scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys
[oracle@RAC1]$ssh rac1 date
[oracle@RAC1]$ssh rac2 date
[oracle@RAC1]$ssh rac1-priv date
[oracle@RAC1]$ssh rac2-priv date
切换到rac2执行
[oracle@RAC2]$ssh rac1 date
[oracle@RAC2]$ssh rac2 date
[oracle@RAC2]$ssh rac1-priv date
[oracle@RAC2]$ssh rac2-priv date
给grid重新操作一遍
[root@rac1 ~]#su - grid
[grid@rac1 ~]$mkdir ~/.ssh
[grid@rac1 ~]$chmod 700 ~/.ssh
[grid@rac1 ~]$ssh-keygen -t rsa
[grid@rac1 ~]$ssh-keygen -t dsa
root@rac2 ~]#su - oracle
[grid@rac2 ~]$mkdir ~/.ssh
[grid@rac2 ~]$chmod 700 ~/.ssh
[grid@rac2 ~]$ssh-keygen -t rsa
[grid@rac2 ~]$ssh-keygen -t dsa
[grid@rac1 ~]$
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh rac2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
[grid@RAC1]$ scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys
[grid@RAC1]$ssh rac1 date
[grid@RAC1]$ssh rac2 date
[grid@RAC1]$ssh rac1-priv date
[grid@RAC1]$ssh rac2-priv date
切换到rac2执行
[grid@RAC2]$ssh rac1 date
[grid@RAC2]$ssh rac2 date
[grid@RAC2]$ssh rac1-priv date
[grid@RAC2]$ssh rac2-priv date
需要注意的是生成密钥时不设置密码,授权文件权限为600,同时需要两个节点互相ssh通过一次
9).配置grid和oracle用户环境变量(rac1,rac2)
Oracle_sid需要根据节点不同进行修改
[root@rac1 ~]# su - grid
[grid@rac1 ~]$ vi .bash_profile
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=+ASM1
export ORACLE_SID=+ASM2
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_HOME/jlib:$ORACLE_HOME/rdbms/jlib
umask 022
需要注意的是ORACLE_UNQNAME是数据库名,创建数据库时指定多个节点是会创建多个实例,ORACLE_SID指的是数据库实例名
[root@rac1 ~]# su - oracle
[oracle@rac1 ~]$ vi .bash_profile
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=orcl1
export ORACLE_SID=orcl2
export ORACLE_UNQNAME=orcl
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/lib1
$ source .bash_profile使配置文件生效
6).需要添加以下的包,以确保Oracle的正常安装(暂时不添加也可以,在安装Oracle时会详细提示缺少哪个包的)(rac1,rac2)
需在root用户下面安装
[]su - root
rpm -Uvh binutils-2.*
rpm -Uvh compat-libstdc++-33*
rpm -Uvh elfutils-libelf-0.*
rpm -Uvh elfutils-libelf-devel-*
rpm -Uvh gcc-4.*
rpm -Uvh gcc-c++-4.*
rpm -Uvh glibc-2.*
rpm -Uvh glibc-common-2.*
rpm -Uvh glibc-devel-2.*
rpm -Uvh glibc-headers-2.*
rpm -Uvh pdksh-5*
rpm -Uvh libaio-0.*
rpm -Uvh libaio-devel-0.*
rpm -Uvh libgcc-4.*
rpm -Uvh libstdc++-4.*
rpm -Uvh libstdc++-devel-4.*
rpm -Uvh make-3.*
rpm -Uvh sysstat-7.*
rpm -Uvh unixODBC-2.*
rpm -Uvh unixODBC-devel-2.*
8)安装cvuqdisk包
在grid安装包目录下,安装cvuqdisk包
rpm -Uvh cvuqdisk*
9).配置裸盘(rac1)
使用asm管理存储需要裸盘,前面配置了共享硬盘到两台主机上。配置裸盘的方式有两种(1)oracleasm添加(2)/etc/udev/rules.d/60-raw.rules配置文件添加(字符方式帮绑定udev) (3)脚本方式添加(块方式绑定udev,速度比字符方式快,最新的方法,推荐用此方式)
在配置裸盘之前需要先格式化硬盘:
fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
最后 w 命令保存更改1
重复步骤,格式化其他盘,得到如下分区
/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1
Attention:是否安裝成功可以在下方進行分區的時候只需要一個節點進行分區,重啟之後,所有節點的磁盤分區階已經分好
10).REBOOT SYSTEM(rac1,rac2)
[rac1~]reboot
[rac2~]reboot
11)添加裸盘:(rac1,rac2)
[root@rac1 ~]# 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"
KERNEL=="raw[1-5]",OWNER="grid",GROUP="asmadmin",MODE="660"
[root@rac1 ~]# start_udev
Starting udev: [ OK ]
[root@rac1 ~]# ll /dev/raw/
total 0
crw-rw---- 1 grid asmadmin 162, 1 Apr 13 13:51 raw1
crw-rw---- 1 grid asmadmin 162, 2 Apr 13 13:51 raw2
crw-rw---- 1 grid asmadmin 162, 3 Apr 13 13:51 raw3
crw-rw---- 1 grid asmadmin 162, 4 Apr 13 13:51 raw4
crw-rw---- 1 grid asmadmin 162, 5 Apr 13 13:51 raw5
crw-rw---- 1 root disk 162, 0 Apr 13 13:51 rawctl
这里需要注意的是配置的,前后都不能有空格,否则会报错。最后看到的raw盘权限必须是grid:asmadmin用户。
12).手动运行cvu使用验证程序验证Oracle集群件要求(所有节点都执行)(rac1,rac2)
rac1到grid软件目录下执行runcluvfy.sh命令:
这里可能出现问题
wait ...[grid@rac1 grid]$ Exception in thread "main" java.lang.NoClassDefFoundError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at java.awt.Toolkit$2.run(Toolkit.java:821)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:804)
at com.jgoodies.looks.LookUtils.isLowResolution(Unknown Source)
at com.jgoodies.looks.LookUtils.<clinit>(Unknown Source)
需要直接登录grid用户,而不是su - 切换
[root@rac1 ~]#chown -R grid:oinstall /u01
给grid用户分配u01的安装权限
[root@rac1 ~]#chmod -R 775 /u01
[root@rac1 ~]# su - grid
[grid@rac1 ~]$ cd db/grid/
[grid@rac1 grid]$ ls
doc readme.html rpm runInstaller stage
install response runcluvfy.sh sshsetup welcome.html
[grid@rac1 grid]$ ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -verbose
解决NTP时间不一致的问题
mv /etc/ntp.conf /etc/ntp.conf.bak
安装Grid Infrastructure
1.安装流程
选择自定义安装
选择语言为English
定义集群名字,SCAN Name 为hosts中定义的scan-ip,取消GNS
界面只有第一个节点rac1,点击“Add”把第二个节点rac2加上
选择网卡
配置ASM,这里选择前面配置的裸盘raw1,raw2,raw3,冗余方式为External即不冗余。因为是不用于,所以也可以只选一个设备。这里的设备是用来做OCR注册盘和votingdisk投票盘的。
配置ASM实例需要为具有sysasm权限的sys用户,具有sysdba权限的asmsnmp用户设置密码,这里设置统一密码为oracle,会提示密码不符合标准,点击OK即可
不选择智能管理
检查ASM实例权限分组情况
选择grid软件安装路径和base目录
选择grid安装清单目录
环境检测出现resolv.conf错误,是因为没有配置DNS,可以忽略
安装grid概要
开始安装
复制安装到其他节点
安装grid完成,提示需要root用户依次执行脚本orainstRoot.sh ,root.sh (一定要先在rac1执行完脚本后,才能在其他节点执行)
在rac1中执行脚本
[root@rac1 rpm]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@rac1 rpm]# /u01/app/
11.2.0/ grid/ oracle/ oraInventory/
[root@rac1 rpm]# /u01/app/11.2.0/grid/root.sh
Performing root user operation for Oracle 11g
The following environment variables are set as: ORACLE_OWNER= grid ORACLE_HOME= /u01/app/11.2.0/gridEnter the full pathname of the local bin directory: [/usr/local/bin]: Copying dbhome to /usr/local/bin ... Copying oraenv to /usr/local/bin ... Copying coraenv to /usr/local/bin ...Creating /etc/oratab file...Entries will be added to the /etc/oratab file as needed byDatabase Configuration Assistant when a database is createdFinished running generic part of root script.Now product-specific root actions will be performed.Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_paramsCreating trace directoryUser ignored Prerequisites during installationOLR initialization - successful root wallet root wallet cert root cert export peer wallet profile reader wallet pa wallet peer wallet keys pa wallet keys peer cert request pa cert request peer cert pa cert peer root cert TP profile reader root cert TP pa root cert TP peer pa cert TP pa peer cert TP profile reader pa cert TP profile reader peer cert TP peer user cert pa user certAdding Clusterware entries to upstartCRS-2672: Attempting to start 'ora.mdnsd' on 'rac1'CRS-2676: Start of 'ora.mdnsd' on 'rac1' succeededCRS-2672: Attempting to start 'ora.gpnpd' on 'rac1'CRS-2676: Start of 'ora.gpnpd' on 'rac1' succeededCRS-2672: Attempting to start 'ora.cssdmonitor' on 'rac1'CRS-2672: Attempting to start 'ora.gipcd' on 'rac1'CRS-2676: Start of 'ora.cssdmonitor' on 'rac1' succeededCRS-2676: Start of 'ora.gipcd' on 'rac1' succeededCRS-2672: Attempting to start 'ora.cssd' on 'rac1'CRS-2672: Attempting to start 'ora.diskmon' on 'rac1'CRS-2676: Start of 'ora.diskmon' on 'rac1' succeededCRS-2676: Start of 'ora.cssd' on 'rac1' succeededASM created and started successfully.Disk Group OCR created successfully.clscfg: -install mode specifiedSuccessfully accumulated necessary OCR keys.Creating OCR keys for user 'root', privgrp 'root'..Operation successful.CRS-4256: Updating the profileSuccessful addition of voting disk 496abcfc4e214fc9bf85cf755e0cc8e2.Successfully replaced voting disk group with +OCR.CRS-4256: Updating the profileCRS-4266: Voting file(s) successfully replaced## STATE File Universal Id File Name Disk group-- ----- ----------------- --------- --------- 1. ONLINE 496abcfc4e214fc9bf85cf755e0cc8e2 (/dev/raw/raw1) [OCR]Located 1 voting disk(s).CRS-2672: Attempting to start 'ora.asm' on 'rac1'CRS-2676: Start of 'ora.asm' on 'rac1' succeededCRS-2672: Attempting to start 'ora.OCR.dg' on 'rac1'CRS-2676: Start of 'ora.OCR.dg' on 'rac1' succeededConfigure Oracle Grid Infrastructure for a Cluster ... succeeded |
|