oracle rac 静默安装

ORACLE RAC静默安装+手动建库

  (2013-06-24 13:23:35)
标签: 

oracle

 

rac

 

静默安装

 

手动建库

 

it

分类: oracle
前言
我相信大多数的dba们都是习惯使用图形界面来进行安装,或许有的DBA都不知道可以静默安装,或者知道但不知从何下手,的确使用图形界面点点就可以了,有方便的方法安装干嘛还要用复杂的方法,但是由于现在很多重要的行业、重要的系统中,比如银行、电信等,为了安全的考虑,在网络环境里都是禁止一切不必要的端口开放,在系统层面一方面为了减少不必要的服务对操作系统产生的负担以及尽量减少不必要的端口的开放以增加安全性,所以很多生产环境都是将系统的图形界面关闭不允许使用的,而其很多这种企业各部门分工很细,各部门之间都有自己的立场,若要申请特例开图形界面可能要牵涉到2、3个部门,一个流程走下来可能得等半个月都不一定,如果没了图形界面就不知如何是好了,本文的目的就是解决在无图形界面的情况下使用应答文件和手动建库来安装ORACLE RAC,从此不再受图形界面的限制。

1.环境规划
操作系统版本:Oracle Enterprise Linux 6.3
Clusterware版本:Oracle Grid Infrastructure 11.2.0.3
Database版本:Oracle Database Enterprise Edition 11.2.0.3
节点数:2个节点
GNS:不使用,使用hosts进行解析
存储:采用ASM
网络:使用4块网卡,俩俩绑定做failover

********************************************************************************
*            配置            *                node 1                *                node 2                *
********************************************************************************
* hostname                *                  ora1                  *                  ora2                  *
********************************************************************************
* Vipname                  *               ora1-vip               *               ora2-vip               *
********************************************************************************
* Privatename            *               ora1-priv             *               ora2-priv             *
********************************************************************************
* instance_name         *                  prod1                *                  prod2                *
********************************************************************************
* sid                        *                  prod1                *                  prod2                *
********************************************************************************
* db name                  *                  prod                  *                  prod                  *
********************************************************************************
* public ip               *          192.168.192.200         *          192.168.192.201         *
********************************************************************************
* private ip             *             10.10.10.2             *               10.10.10.3            *
********************************************************************************
* virtual ip             *          192.168.192.220         *          192.168.192.221         *
********************************************************************************
* scan-ip                  *                                 192.168.192.230                              *
********************************************************************************
* cluster name          *                                        crs                                        *
********************************************************************************
* SCAN name               *                                     scan-ip                                     *
********************************************************************************
* ocr locate             *                                    +GRIDDATA                                    *
********************************************************************************
* votedisk                *   /dev/raw/raw1、/dev/raw/raw2、/dev/raw/raw3 [GRIDDATA] *
********************************************************************************
* 数据磁盘组             *                                    +PRODDATA                                    *
******************************************************************************** 

2.安装Oracle Enterprise Linux 6.3操作系统
针对用来安装ORACLE数据库的OEL,只需要安装base中的组建即可,如果需要用到图形界面可安装desktop和X window

2.1添加共享磁盘
安装RAC必须使用共享存储,RAC可支持共享文件系统、ASM、裸设备,裸设备从11G开始已不推荐使用,从图形界面安装时已不做支持
但手动建库是可以使用裸设备的,ASM是ORACLE要大力推行的,在这里我们使用ASM作为存储

VMWARE添加共享存储方法如下:
1)创建两块分别为6G和9G的磁盘
进入vmware安装目录执行如下操作:
vmware-vdiskmanager.exe -c -s 6gb -a lsilogic -t 2 e:\sharedisk\sdisk1.vmdk
vmware-vdiskmanager.exe -c -s 9gb -a lsilogic -t 2 e:\sharedisk\sdisk2.vmdk
存放路径可根据自身情况设置

2)在虚拟机关闭的状态下分别编辑两台虚拟机安装目录下的xxx.vmx文件
在文件的最后添加如下内容:
disk.locking = "FALSE"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSiz e = "0"
diskLib.dataCacheMinReadAheadSiz e = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"

scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsi1.sharedBus = "VIRTUAL"

scsi1:1.present = "TRUE"
scsi1:1.mode = "independent-persistent"
scsi1:1.fileName = "e:\sharedisk\sdisk1.vmdk" #创建的共享磁盘的存放路径
scsi1:1.deviceType = "disk"
scsi1:1.redo = ""

scsi1:2.present = "TRUE"
scsi1:2.mode = "independent-persistent"
scsi1:2.fileName = "e:\sharedisk\sdisk2.vmdk" #创建的共享磁盘的存放路径
scsi1:2.deviceType = "disk"
scsi1:2.redo = ""

3)关掉vmware标签栏上的两台虚拟机的标签,重新使用File->open->xxx.vmx打开两台虚拟机并启动系统

4)对共享磁盘进行分区
在两个节点分别使用fdisk -l,可看到新加的共享磁盘
在任意一个节点使用fdisk /dev/sdx 分别将新加的两个磁盘平分3个区,新加的磁盘/dev/sdx设备号视自身情况而定
分区完后在另一个节点执行partprobe 使其识别分区

3.配置操作系统相关内核参数
从OEL6.3开始,OEL提供了一个包oracle-rdbms-server-11gR2-preinstall
使用yum安装该包会将安装ORACLE 11GR2数据库所需要安装的依赖包都安装上去
并且会创建oinstall、dba组和oracle账户,而且会修改安装数据库所需要的内核参数
要注意的是该创建的oracle账户是没有密码的,请及时修改密码

3.1 在各节点配置光驱为yum源
cp /etc/yum.repos.d/public-yum-ol6.repo /etc/yum.repos.d/public-yum-ol6.repo.bak 备份原yum源配置
vi /etc/yum.repos.d/public-yum-ol6.repo 修改yum源配置为以下内容:

[ol6_base_media]
name=Oracle Linux 6 Update 3 Base Media
baseurl=file:///media/Server
gpgcheck=0
enabled=1
[ol6_uek_media]
name=Oracle Linux 6 Update 3 UEK Media
baseurl=file:///media/UEK2
gpgcheck=0
enabled=1

其中baseurl=file:///media/Server和baseurl=file:///media/UEK2为光盘中相应的路径,光盘根目录为/media
可根据自己实际情况设置文件路径

3.2 安装install oracle-rdbms-server-11gR2-preinstall
配置完成后使用yum list 如果有相应得源列出则说明配置正确
分别在各节点使用yum -y install oracle-rdbms-server-11gR2-preinstall安装数据库所需依赖包以及配置相关内核参数

3.3创建oper、asmadmin、asmdba、asmoper组以及grid账户
由于从11GR2开始ORACLE建议将数据库和ASM/CLUSTERWARE的管理账户进行分离,所以我们需要创建grid账户
注意:RAC要求各节点的oracle账户、grid账户以及相应的组的id是必须相同的
可以查看/etc/passwd和/etc/group得知系统为我们自动创建的oinstall、dba组的gid分别为54321何54322,oracle账户的uid为54321
从/etc/group得知gid 54323被系统自动创建的xguest组使用,所以我们可以从54323沿用下去创建相关组,在两个节点分别执行以下操作:

groupadd -g 54324 oper
groupadd -g 54325 asmadmin
groupadd -g 54326 asmdba
groupadd -g 54327 asmoper

从/etc/passwd得知uid 54322被系统自动创建的xguest帐户使用,所以我们可以从54322沿用下去创建grid帐户,在两节点分别执行以下操作:

useradd -m -g oinstall -G dba,oper,asmadmin,asmdba,asmoper -u 54323 grid

3.4修改oracle帐户使其加入oper,asmadmin,asmdba,asmoper组
在两节分别执行以下操作:

usermod -g oinstall -G dba,oper asmadmin,asmdba,asmoper oracle

3.5修改/etc/security/limits.conf添加grid帐户的相关使用限制
由于安装RAC使用grid帐户进行管理,而安装oracle-rdbms-server-11gR2-preinstall包只会修改对应oracle帐户的内核参数限制
所以我们必须手动修改/etc/security/limits.conf文件添加grid帐户的相关限制
分别修改两个节点的/etc/security/limits.conf文件添加以下内容:

grid    soft    nofile      1024
grid    hard    nofile      65536
grid    soft    nproc      2047
grid    hard    nproc      16384
grid    soft    stack      10240
grid    hard    stack      32768

4.修改各节点oracle帐户和grid帐户家目录下的.bash_profile文件以及root帐户的环境变量文件/etc/profile,.bash_profile添加如下内容设置环境变量
node 1--grid帐户的.bash_profile文件添加如下内容:
umask 022
export ORACLE_SID=+ASM1
export ORACLE_BASE=/u01/app/grid  
export ORACLE_HOME=/u01/app/11.2/grid 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/lib:/usr/lib:/usr/local/lib 
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib  
export TNS_ADMIN=$ORACLE_HOME/network/admin           
export NLS_LANG=AMERICAN_AMERICA.zhs16gbk
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export ORA_NLS10=$ORACLE_HOME/nls/data
export ORACLE_TERM=xterm
export EDITOR=vi
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp

node 1--oracle帐户的.bash_profile文件添加如下内容:
umask 022
export ORACLE_SID=prod1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export GRID_HOME=/u01/app/11.2/grid
export ORA_NLS10=$GRID_HOME/nls/data
export ORACLE_TERM=xterm
export EDITOR=vi
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp

node2上的grid和oracle帐户的内容只需将ORACLE_SID的1改成2即可,其余同node 1一致

node1和node2上分别修改/etc/profile,添加如下内容
export PATH=$PATH:/u01/app/11.2/grid/bin

5.创建相应安装目录及设置相应权限
分别在各节点使用root用户执行以下操作:
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle

6.分别在各节点修改/etc/hosts文件,添加相关ip与hostname的对应关系,/etc/hosts添加内容如下:
192.168.192.200 ora1
192.168.192.201 ora2

192.168.192.220 ora1-vip
192.168.192.221 ora2-vip

10.10.10.2         ora1-priv
10.10.10.3         ora2-priv

192.168.192.230 scan-ip

7.分别在各节点设置双网卡聚合,实现网卡之间failover

以node1为例,node2修改相应ip即可

7.1创建用作public网卡bond0接口,在接口配置文件的路径下/etc/sysconfig/network-scripts/

#vi /etc/sysconfig/network-scripts/ifcfg-bond0 添加如下内容

DEVICE="bond0"
BOOTPROTO=none
IPADDR=192.168.192.200
NETMASK=255.255.255.0
GATEWAY=192.168.192.2
NM_CONTROLLED=no       —这个参数是networdmanager相关的,可以把个关了
ONBOOT=yes
USERCTL=no
BONDING_OPTS=”mode=1 miimon=100”       ——mode=1为冗余模式。

7.2修改要加入bond0的两个物理口的接口配置文件如下(修改eth0):

# vi /etc/sysconfig/network-scripts/ifcfg-eth0 将原有内容删除,添加以下内容

DEVICE="eth0"
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
USERCTL=no

7.3修改要加入bond0的两个物理口的接口配置文件如下(修改eth1):

# vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE="eth1"
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
USERCTL=no

7.4创建用作private网卡bond1接口,在接口配置文件的路径下/etc/sysconfig/network-scripts/

#vi /etc/sysconfig/network-scripts/ifcfg-bond1 添加如下内容

DEVICE="bond1"
BOOTPROTO=none
IPADDR=10.10.10.2
NETMASK=255.255.255.0
NM_CONTROLLED=no       —这个参数是networdmanager相关的,可以把个关了
ONBOOT=yes
USERCTL=no
BONDING_OPTS=”mode=1 miimon=100”       ——mode=1为冗余模式。

注:用于private网卡的接口bond1不用设置GATAWAY

7.5修改要加入bond1的两个物理口的接口配置文件如下(修改eth2):

# vi /etc/sysconfig/network-scripts/ifcfg-eth2 将原有内容删除,添加以下内容

DEVICE="eth2"
BOOTPROTO=none
MASTER=bond1
SLAVE=yes
ONBOOT=yes
USERCTL=no

7.6修改要加入bond的两个物理口的接口配置文件如下(修改eth3):

# vi /etc/sysconfig/network-scripts/ifcfg-eth3

DEVICE="eth3"
BOOTPROTO=none
MASTER=bond1
SLAVE=yes
ONBOOT=yes
USERCTL=no

7.7关闭NetworkManager服务
service NetworkManager stop
chkconfig NetworkManager off

7.8重启服务器测试网卡聚合绑定是否成功
重启完后查看以下文件
cat /proc/net/bonding/bond0
若出现以下内容则表示成功

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:af:b1:8b
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:af:b1:95
Slave queue ID: 0

可ping网关然后拔掉网线,vmware则断开网卡测试是否会故障转移

8.使用udev将分过区的共享磁盘绑定裸设备
分别在两个节点使用vi编辑/etc/udev/rules.d/60-raw.rules,添加如下内容:
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="raw1", OWNER="grid",GROUP="asmadmin",MODE="660"
ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="raw2", OWNER="grid",GROUP="asmadmin",MODE="660"
ACTION=="add", KERNEL=="sdb3", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="raw3", OWNER="grid",GROUP="asmadmin",MODE="660"
ACTION=="add", KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="raw4", OWNER="grid",GROUP="asmadmin",MODE="660"
ACTION=="add", KERNEL=="sdc2", RUN+="/bin/raw /dev/raw/raw5 %N"
ACTION=="add", KERNEL=="raw5", OWNER="grid",GROUP="asmadmin",MODE="660"
ACTION=="add", KERNEL=="sdc3", RUN+="/bin/raw /dev/raw/raw6 %N"
ACTION=="add", KERNEL=="raw6", OWNER="grid",GROUP="asmadmin",MODE="660"

然后分别在两个节点执行如下命令:
start_udev

执行完后查看裸设备是否绑定以及权限是否正确:
ll /dev/raw
total 0
crw-rw---- 1 grid asmadmin 162, 1 Jun 17 15:07 raw1
crw-rw---- 1 grid asmadmin 162, 2 Jun 17 15:07 raw2
crw-rw---- 1 grid asmadmin 162, 3 Jun 17 15:07 raw3
crw-rw---- 1 grid asmadmin 162, 4 Jun 17 15:07 raw4
crw-rw---- 1 grid asmadmin 162, 5 Jun 17 15:07 raw5
crw-rw---- 1 grid asmadmin 162, 6 Jun 17 15:07 raw6
crw-rw---- 1 root disk       162, 0 Jun 17 10:41 rawctl

若为以上内容说明绑定正确

9.关闭ntp服务
在11GR2之前RAC是需要做操作系统的时间同步设置的,但从11GR2开始,RAC自带节点间时间同步,故不再需要设置NTP服务
并且如果有NTP服务存在但是没有设置正确,在安装的预校验过程中会报相关NTP错误

分别在两个节点执行如下操作:
service ntpd stop
chkconfig ntpd off
mv /etc/ntp.conf /etc/ntp.conf.bak

10.添加hangcheck-timer模块
在各节点上以root用户使用vi /etc/modprobe.d/dist.conf编辑,在文件最后添加如下内容:
options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

使用vi 在/etc/rc.local文件最后添加如下内容:
modprobe -v hangcheck-timer

该模块会在系统启动时加载,可重启系统使用lsmod验证hangcheck-timer是否存在,不重启可直接运行modprobe -v hangcheck-timer加载模块

11.设置linux大页内存以使数据库启动时可以将内存锁住
查看大页内存大小
cat /proc/meminfo |grep Huge
AnonHugePages:      161792 kB
HugePages_Total:          0
HugePages_Free:            0
HugePages_Rsvd:            0
HugePages_Surp:            0
Hugepagesize:          2048 k

然后在sysctl.conf中添加参数vm.nr_hugepages=xxx --设置大页内存个数为SGA/大页内存的大小 再+11 或再多一点
修改/etc/security/limits.conf
添加oracle - memlock unlimited

使用sysctl -p使设置生效,但最好能重启系统使之生效。

12.设置节点间oracle和grid帐户信任

1)分别在两个节点执行以下操作:
su - grid
ssh-keygen -t rsa
ssh-keygen -t dsa

2)在node 1以grid帐户执行以下操作:
cd $HOME/.ssh
cat id_dsa.pub >>authorized_keys
cat id_rsa.pub >>authorized_keys
ssh ora2 cat /home/grid/.ssh/id_dsa.pub >>authorized_keys
ssh ora2 cat /home/grid/.ssh/id_rsa.pub >>authorized_keys
scp authorized_keys ora2:/home/grid/.ssh/

scp时会提示是否将ora2加入到信任列表,输入yes即可 然后输入ora2上的grid帐户密码

3)验证两个节点间SSH通信是否还需要密码
在node 1上以grid帐户执行如下内容:
ssh ora1 date
ssh ora2 date
ssh ora1-priv date
ssh ora2-priv date

在node 2上以grid帐户执行同样内容,在第一次通信时会提示是否将该节点加入到信任列表,输入yes即可
两节点互相使用SSH通信无需密码即表示成功

4)切换到oracle帐户执行grid用户同样的操作,使两节点互相使用SSH通信无需密码即表示成功

13.在各节点上安装cvuqdisk-1.0.9-1.rpm包
该程序包是ORACLE GRID提供的,使节点间都能识别共享存储,不安装该包会报错,其在grid程序的安装介质的rpm目录下
进入安装介质目录执行 rpm -ivh cvuqdisk-1.0.9-1.rpm

14.开始安装Oracle Grid Infrastructure 11.2.0.3
ORACLE 从11.2.0.3开始是不需要像之前那样必须先安装基础版本再进行版本升级,11.2.0.3的补丁可以直接作为完整的安装包使用
11.2.0.3的PSU分为7个包,我们只需要前三个就可以了,第一和第二个包是DB,第三个包是GRID

由于是静默安装,所以在安装时安装程序需要找应答文件,根据应答文件里的内容来进行安装
应答文件可以通过一次图形界面安装的配置来生成,那种方式需要至少有过一次图形界面的安装
另一种方式可以直接使用ORACLE安装介质中提供的标准的应答文件来进行相应修改,该应答文件在安装介质的response目录下名叫grid_install.rsp

在此我们在node 1上切换到grid用户进入到安装介质目录使用本文附件中提供的grid_install.rsp执行以下操作:
./runInstaller -showProgress -ignorePrereq -silent -responseFile /home/grid/grid_install.rsp

-showProgress 显示安装进度
-ignorePrereq 忽略预检测,由于我们没有使用DNS来解析SCAN所以会报一个SCAN的错误,因为使用udev绑定裸设备而没有使用ASMLIB来使用ASM,所以会报一个ASM的错误,这两个错误都是可以忽略的,但静默安装在检测到错误后就会停止安装,不能像图形界面那样点一下忽略跳过,所以我们使用这个参数来绕过预检
-silent 静默安装
-responseFile 后面跟应答文件路径

注:本文提供的应答文件可根据各自需要进行相应修改,主要需要修改的是一些NAME和IP等内容

在安装的过程中会要求分别在各node上以root帐户执行/u01/app/oraInventory/orainstRoot.sh和/u01/app/11.2/grid/root.sh
另开会话分别在各节点上依次执行这两个脚本,执行完后会要求在运行安装程序的节点上以root帐户执行/u01/app/11.2/grid/cfgtoollogs/configToolAllCommands
安要求执行完即可

分别在两个节点上以grid用户执行crs_stat -t查看各RAC资源情况,除了3个gsd资源不在线以外其他均在线则表示正常
GSD资源是用来对ORACLE 9i的相关命令做支持的,11G后已不再使用,所以不必在线。

使用root用户执行ocrcheck,检查OCR出现以下内容则表示正常:
Status of Oracle Cluster Registry is as follows :
              Version                           :               3
              Total space (kbytes)       :       262120
              Used space (kbytes)         :          3164
              Available space (kbytes) :       258956
              ID                                  : 1650223969
              Device/File Name             :   +griddata
                                                      Device/File integrity check succeeded

                                                      Device/File not configured

                                                      Device/File not configured

                                                      Device/File not configured

                                                      Device/File not configured

              Cluster registry integrity check succeeded

              Logical corruption check succeeded
             
使用root用户执行crsctl query css votedisk 检查voting disk,出现以下内容则表示正常
##   STATE      File Universal Id                        File Name Disk group
--   -----      -----------------                        --------- ---------
  1. ONLINE    26fb4a5e954f4f50bf90b7e7 a67d08de (/dev/raw/raw1) [GRIDDATA]
  2. ONLINE    a26c90bdc0ce4f5fbf2a1d01 7bfb7d46 (/dev/raw/raw2) [GRIDDATA]
  3. ONLINE    6b9bc309dbad4ff4bf62de14 a1c2892d (/dev/raw/raw3) [GRIDDATA]

15.创建PRODDATA磁盘组
su - grid
sqlplus / as sysasm

create diskgroup proddata external redundancy disk '/dev/raw/raw4';
alter diskgroup proddata add disk '/dev/raw/raw5';
alter diskgroup proddata add disk '/dev/raw/raw6';
查看全局磁盘组情况
select INST_ID,name,free_mb,state from gv$asm_diskgroup;
在添加了磁盘组后在另一个节点是处于unmount的状态,所以到另一个节点将磁盘组mount
在另一个节点执行如下操作:
su - grid
sqlplus / as sysasm
alter diskgroup proddata mount;
再查看全局磁盘组情况
select INST_ID,name,free_mb,state from gv$asm_diskgroup;
各节点均为mount即可

16.安装DB SOFT
在node 1使用oracle帐户进入DB的安装介质,同样用本文附件提供的应答文件db_install.rsp以静默的方式进行数据库软件的安装,相应配置可根据自己实际情况进行修改
./runInstaller -showProgress -ignorePrereq -silent -responseFile /home/oracle/db_install.rsp

在安装过程最后会要求分别在两个节点上以root用户执行/u01/app/oracle/product/11.2/db_1/root.sh

至此ORACLE数据库软件安装完毕

17.手动建库
在node1进行如下操作:
su - oracle

1)使用vi init11grac.ora创建pifle,内容如下:

*.audit_file_dest='/u01/app/oracle/admin/prod/adump'
*.audit_trail='db'
*.control_files='+proddata/prod/controlfile/control01.ctl','+proddata/prod/controlfile/control02.ctl','+proddata/prod/controlfile/control03.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='prod'
*.db_recovery_file_dest_size=32212254720
*.db_recovery_file_dest='+proddata'
*.diagnostic_dest='/u01/app/oracle'
*.log_archive_dest_1='location=+proddata'
*.open_cursors=500
*.optimizer_mode='FIRST_ROWS_100'
*.PGA_AGGREGATE_TARGET=100m
*.processes=500
*.remote_login_passwordfile='EXCLUSIVE'
*.sec_case_sensitive_logon=FALSE
*.sga_target=280m
*.undo_management='auto'
*.undo_retention=10800
*.lock_sga=true
prod1.undo_tablespace='UNDOTBS1'
prod2.undo_tablespace='UNDOTBS2'
prod1.thread=1
prod2.thread=2
prod1.instance_number=1
prod2.instance_number=2
*.cluster_database=false
*.CLUSTER_DATABASE_INSTANCES=2

相关参数可根据自己需要修改
若有*.audit_file_dest='/u01/app/oracle/admin/prod/adump'   *.audit_trail='db'参数则根据需要分别在两个节点创建相应目录
使用本文附件提供的pfile文件init11grac.ora将数据库启动到nomount状态
sqlplus / as sysdba
startup nomount pfile='/home/oracle/init11grac.ora'

2)使用vi crtdbrac.sql创建建库脚本,脚本内容如下,可根据自己需要进行修改:

create database prod
user sys identified by oracle
user system identified by oracle
controlfile reuse
maxdatafiles 3000
maxinstances 8
character set AL32UTF8
national character set AL16UTF16
set time_zone='+8:00'
datafile '+proddata/prod/datafile/system01.dbf' size 300m autoextend on next 10m maxsize unlimited extent management local
sysaux datafile '+proddata/prod/datafile/sysaux01.dbf' size 300m autoextend on next 10m maxsize unlimited 
undo tablespace undotbs1 datafile '+proddata/prod/datafile/undotbs1_01.dbf' size 100m autoextend on next 10m maxsize unlimited
default temporary tablespace temp tempfile '+proddata/prod/tempfile/temp01.dbf' size 100m autoextend on next 10m maxsize unlimited
maxlogfiles 30
maxlogmembers 5
maxloghistory 1000
logfile
group 1 ('+proddata/prod/onlinelog/redo1_1.rdo','+proddata/prod/onlinelog/redo1_2.rdo') size 50m,
group 2 ('+proddata/prod/onlinelog/redo2_1.rdo','+proddata/prod/onlinelog/redo2_2.rdo') size 50m,
group 3 ('+proddata/prod/onlinelog/redo3_1.rdo','+proddata/prod/onlinelog/redo3_2.rdo') size 50m;

在sqlplus中运行该建库脚本
SQL>@crtdbrac.sql

库建完后创建相应视图
SQL>@?/rdbms/admin/catalog
SQL>@?/rdbms/admin/catproc
SQL>@?/rdbms/admin/owminst.plb
SQL>@?/rdbms/admin/catclust.sql
切换到system用户运行以下脚本
SQL>conn system/oracle
SQL>@?/sqlplus/admin/pupbld
SQL>@?/sqlplus/admin/help/hlpbld.sql helpus.sql

3)创建SPFILE
SQL>create spfile='+PRODDATA/prod/PARAMETERFILE/spfileprod.ora' from pfile='/home/oracle/init11grac.ora'
分别在两个节点的$ORACLE_HOME/dbs下创建initprod1.ora和initprod2.ora内容为
spfile='+PRODDATA/prod/PARAMETERFILE/spfileprod.ora'

在node1使用默认路径$ORACLE_HOME/dbs下的pfile文件initprod1.ora重启数据库

4)创建数据库默认表空间users
SQL>create tablespace users datafile '+proddata/prod/datafile/users01.dbf' size 100m autoextend on next 10m maxsize unlimited segment space management auto;

SQL>alter database default tablespace users;

5)创建节点2的undo表空间undotbs2
SQL>create undo tablespace undotbs2 datafile '+proddata/prod/datafile/undotbs2_01.dbf' size 100m autoextend on next 10m maxsize unlimited segment space management auto;

6)创建thread 2的3组redo日志组并启用thread 2
SQL>alter database add logfile thread 2 ('+proddata','+proddata') size 50m;
SQL>alter database add logfile thread 2 ('+proddata','+proddata') size 50m;
SQL>alter database add logfile thread 2 ('+proddata','+proddata') size 50m;
SQL>alter database enable thread 2;

7)开启归档和flashback
在node1上将数据库重启到mount状态,然后开启归档和flashback
SQL>alter database archivelog;
SQL>alter database flashback on;

7)node2使用默认路径$ORACLE_HOME/dbs下的pfile文件initprod2.ora启动数据库
SQL>startup

8)将数据库资源添加到CRS管理
在任意节点上以oracle用户执行以下命令
srvctl add database -d prod -o /u01/app/oracle/product/11.2/db_1/ -c RAC -y AUTOMATIC

9)将两个节点的实例资源添加到CRS管理
在任意节点上以ORACLE用户执行以下命令
srvctl add instance -d prod -i prod1 -n ora1
srvctl add instance -d prod -i prod2 -n ora2

10)使用sqlplus关闭两节点实例,使用crs启动数据库
从11GR2开始,instance资源在crs_stat -t中是看不到的,只能看到DB的资源
可以使用srvctl start database -d prod 来检查数据库实例的运行状况

关闭两个节点后,在任意节点以oracle或root帐户使用以下命令启动数据库
srvctl start database -d prod
或者
crs_start ora.prod.db

至此手动建库结束!

18.添加TAF服务
众所周知,RAC的两大优势就是Load balance和failover
ORACLE的Load balance分为服务端和客户端,客户端需要每个都要配置,服务端是通过remote listener参数和各节点的tnsnames.ora里的配置,通过交叉注册监听的方式来处理负载均衡
虽然负载均衡很重要也很有必要,但是在实际的工作和生产环境中并不采用这种方式实现load balance,因为这种方式反而可能会造成大量的GC资源的争用使性能下降
一般更佳的实现load balance的方式是通过程序的合理设计,通过指定相应程序模块所访问的instance主动的进行负载均衡。

TAF分为客户端和服务端,同样的客户端方式需要每台客户端都进行设置,而服务端只要在服务端设置TAF的服务即可
在任意节点以oracle用户执行以下命令添加TAF服务
srvctl add service -d prod -s rac -r "prod1,prod2" -P BASIC -y AUTOMATIC -e SELECT -m BASIC -w 5 -z 180 -q true
各种参数说明可通过srvctl add service -h进行查看
此处设置的为实例prod1和prod2为优先服务,服务策略为basic,failover类型为SELECT,方法为basic,5秒延迟,180次重试,开启通知

至此,静默安装RAC手动建库完毕。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值