本文有相应的视频教程:https://edu.51cto.com/sd/07401 【文章免费,视频收费】
一、X86交付件
1.系统资源
IP资源:一套RAC需要申请 7个IP资源:
- 两个节点各使用1个作为物理IP(共2个,需由系统管理员配置)
- 两个节点各使用1个VIP(共2个,由DBA在安装RAC集群的过程中配置)
- SCAN IP(3个,由DBA在安装RAC集群的过程中配置)
- 心跳网络不占用网络IP资源,但需要VLAN隔离
存储资源:10g*3 作为OCR磁盘或OCR共享目录,其它磁盘若干作为DATA盘与ARCH盘。
名称解析:做好SCAN NAME 的解析,配置两个节点的DNS指向。两个节点都要检查确认。
2.准备ASM 磁盘或者集群文件系统
两台主机上都需配置。另外注意,scsi_id命令在RHEL6中于udev包提供,路径为/sbin/scsi_id;在RHEL7中由systemd包提供,路径为/usr/lib/udev/scsi_id。注意修改配置文件中的路径。
方法一:非多路径 + UDEV 规则(开发测试)
配置UDEV规则,示例如下:
# vim /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="sd*", PROGRAM=="/sbin/scsi_id -g -u --device=/dev/$name", RESULT=="36000c292901532aa23467cc495c2cdd0", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sd*", PROGRAM=="/sbin/scsi_id -g -u --device=/dev/$name", RESULT=="36000c299e8efe84ca739ba5fa4439703", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sd*", PROGRAM=="/sbin/scsi_id -g -u --device=/dev/$name", RESULT=="36000c29c52dafed32e399f4e5ab31bfa", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sd*", PROGRAM=="/sbin/scsi_id -g -u --device=/dev/$name", RESULT=="36000c296d6f14076631213b7bee0a918", RUN+="/bin/raw /dev/raw/raw4 %N"
KERNEL=="raw[1-9]",OWNER="grid",GROUP="asmadmin",MODE="660"
KERNEL=="raw1[0-9]",OWNER="grid",GROUP="asmadmin",MODE="660"
执行如下命令生成裸设备文件:
# start_udev; ll /dev/raw/ <-- RHEL6
# udevadm trigger --action=add; ll /dev/raw/ <-- RHEL7
方法二:多路径 + UDEV 规则(生产)
在 multipath.conf 里配置多路径设备 alias 名为 raw*(也可以是其它名字),例如:
multipaths {
multipath {
wwid "36e09796100558030ee59ef1e0000007a"
alias raw1
}
multipath {
wwid "36e09796100558030ee59ef4b0000007b"
alias raw2
}
multipath {
wwid "36e09796100558030ee59efa10000007c"
alias raw3
}
multipath {
wwid "36e09796100558030ed7cbbe900000078"
alias raw4
}
}
编辑UDEV规则,例如:
# vim /etc/udev/rules.d/12-dm-permissions.rules
ACTION!="add|change", GOTO="dm_end"
ENV{DM_UDEV_RULES_VSN}!="?*", GOTO="dm_end"
ENV{DM_UUID}=="mpath-36e09796100558030ee59ef1e0000007a", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
ENV{DM_UUID}=="mpath-36e09796100558030ee59ef4b0000007b", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
ENV{DM_UUID}=="mpath-36e09796100558030ee59efa10000007c", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
ENV{DM_UUID}=="mpath-36e09796100558030ed7cbbe900000078", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
LABEL="dm_end"
执行如下命令使新的UDEV规则生效:
# start_udev; ll /dev/raw/ <-- RHEL6
# udevadm trigger --action=add; ll /dev/raw/ <-- RHEL7
注意:直接在 multipath.conf 中配置 uid, gid, mode 不生效。请使用上面的方法,配置多路径后,设备文件为 /dev/mapper/xxx。
方法三:虚拟机磁盘 UDEV 配置(Oracle Restart 学习)
# vim /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="sda6", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sda7", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sda8", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sda9", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="raw[1-4]",OWNER="oracle",GROUP="oinstall",MODE="660"
方法四:通过 ASMLIB 配置 ASM 磁盘
ASMLib 2.0 是ASM的一个支持库。包含三个文件:
- 库包 oracleasmlib - the Oracle ASM libraries
- 工具包 oracleasm-support - utilities needed to administer ASMLIB
- 内核驱动包 oracleasm(kmod-oracleasm) - a kernel module for the Oracle ASM library
对于 RHEL5 来说,红帽的光盘中含有两个:
oracleasm-support-2.1.3-1.el5.i386.rpm(RHEL5光盘中有)
oracleasm-2.6.18-164.el5-2.0.5-1.el5.i686.rpm(RHEL5光盘中有)
oracleasmlib-2.0.4-1.el5.i386.rpm (需下载)
所有三个文件也都可以从Oracle网址下载:
http://www.oracle.com/technetwork/server-storage/linux/downloads/rhel5-084877.html
对于 RHEL6 来说:
kmod-oracleasm:可以通过RHN或者Oracle的源(http://public-yum.oracle.com/)来安装
oracleasm-support:可以通过Oracle源来安装
oracleasmlib:可以从http://www.oracle.com/technetwork/server-storage/linux/asmlib/rhel6-1940776.html下载,使用rpm安装
对于 Oracle6 来说:
kmod-oracleasm:已经内置在内核中
oracleasm-support:包含在其发行版本包中
oracleasmlib:需要手工下载安装,详情见:http://www.oracle.com/technetwork/server-storage/linux/asmlib/ol6-1709075.html
在两个结点上安装得到的3个软件。安装完成后,建议重启一下系统。
在两个结点上运行 oracleasm 初始化脚本进行配置:
#/usr/sbin/oracleasm configure -i
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets ('[]'). Hitting <ENTER> without typing an
answer will keep that current value. Ctrl-C will abort.
Default user to own the driver interface []: grid <--- 单用户,这儿为oracle
Default group to own the driver interface []: asmadmin <--- 单用户,这儿为 oinstall
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]
在两个结点上加载 oracleasm 内核模块:
# /usr/sbin/oracleasm init
创建ASM磁盘(只在一个节点上创建):
[root@racnode1 ~]# oracleasm createdisk DISK1 /dev/sda1
[root@racnode1 ~]# oracleasm createdisk DISK2 /dev/sda2
[root@racnode1 ~]# oracleasm createdisk DISK3 /dev/sda3
查看有哪此ASM磁盘:
# oracleasm listdisks --- or
# ll /dev/oracleasm/disks/
在节点2上,只需要发现一下磁盘即可:
# oracleasm scandisks
# oracleasm listdisks
查询ASM磁盘对应的物理磁盘
# oracleasm querydisk -d ASMDISK1
Disk "ASMDISK1" is a valid ASM disk on device /dev/vdb1[253,17]
二、安装前准备
1.上传安装介质
将安装介质从介质服务器传输到第1节点即可。
# scp xxxx 172.25.0.10:/data/
2.配置主机hosts文件
注意:两台主机上都需配置。
# vim /etc/hosts
#physical ip
172.25.0.10 cydb1.xuwang.online cydb1
172.25.0.11 cydb2.xuwang.online cydb2
#vip
10.16.1.124 cydb1-vip.xuwang.online cydb1-vip
10.16.1.125 cydb2-vip.xuwang.online cydb2-vip
# private ip
30.30.30.122 cydb1-priv.xuwang.online cydb1-priv
30.30.30.123 cydb2-priv.xuwang.online cydb2-priv
3.配置NTP
注意:两台主机上都需配置。
# vi /etc/sysconfig/ntpd
# Drop root to id 'ntp:ntp' by default.
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid -g"
# service ntpd restart
4.创建组和用户
注意:两台主机上都需配置。
创建组:
# groupadd -g 54321 oinstall;
# groupadd -g 54322 dba;
# groupadd -g 54323 oper;
# groupadd -g 54324 asmadmin;
# groupadd -g 54325 asmdba;
# groupadd -g 54326 asmoper;
如下是12C新增加的组(供oracle用户加入):
# groupadd -g 54327 backupdba;
# groupadd -g 54328 dgdba;
# groupadd -g 54329 kmdba;
# groupadd -g 54330 racdba;
创建用户:
# useradd -u 54321 -g oinstall -G dba,oper,asmdba oracle;
# useradd -u 54322 -g oinstall -G asmadmin,asmdba,asmoper grid
# echo oracle | passwd --stdin oracle;
# echo oracle | passwd --stdin grid;
如下是12C要求oracle新从属的组:
# usermod -a -G backupdba,dgdba,kmdba,racdba oracle
5.验证nobody用户是否存在
注意:两台主机上都需配置。
# id nobody
id nobody 如果不存在,则需要使用命令”useradd nobody”添加。
技巧:上面用户相关命令可使用下面的命令一次完成
11g:# groupadd -g 54321 oinstall; groupadd -g 54322 dba; groupadd -g 54323 oper; groupadd -g 54324 asmadmin; groupadd -g 54325 asmdba; groupadd -g 54326 asmoper; useradd -u 54321 -g oinstall -G dba,oper,asmdba oracle; useradd -u 54322 -g oinstall -G asmadmin,asmdba,asmoper grid; echo oracle | passwd --stdin oracle; echo oracle | passwd --stdin grid; id nobody
12c:
# groupadd -g 54321 oinstall; groupadd -g 54322 dba; groupadd -g 54323 oper; groupadd -g 54324 asmadmin; groupadd -g 54325 asmdba; groupadd -g 54326 asmoper;groupadd -g 54327 backupdba;groupadd -g 54328 dgdba;groupadd -g 54329 kmdba;groupadd -g 54330 racdba; useradd -u 54321 -g oinstall -G dba,oper,asmdba oracle; usermod -a -G backupdba,dgdba,kmdba,racdba oracle; useradd -u 54322 -g oinstall -G asmadmin,asmdba,asmoper grid; echo oracle | passwd --stdin oracle; echo oracle | passwd --stdin grid; id nobody
6.修改grid用户profile
注意:两台主机上都需配置。
# vim /home/grid/.bash_profile
export ORACLE_BASE=/data/app/grid
export ORACLE_HOME=/data/app/11.2.0/grid
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=+ASM1
注意:
在第2个节点上需要将+ASM1修改为+ASM2。
11.2.0 根据实际情况调整,例如 12.1.0、19.3.0。
7.修改oracle用户profile
注意:两台主机上都需配置。
# vim /home/oracle/.bash_profile
export ORACLE_BASE=/data/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin:/data/app/11.2.0/grid/bin:$PATH
export ORACLE_SID=risk1
注意:
在第2个节点上需要将risk1修改为risk2。
11.2.0 根据实际情况调整,例如 12.1.0、19.3.0。
8.创建目录结构
注意:两台主机上都需配置。
# mkdir -p /data/app/grid;
# mkdir -p /data/app/11.2.0/grid;
# chown -R grid.oinstall /data;
# mkdir -p /data/app/oracle/; ----- 如果是12c:mkdir -p /data/app/oracle/product/12.1.0/db_1
# chown -R oracle.oinstall /data/app/oracle;
# chmod -R 775 /data
技巧:上面的命令可使用下面的命令一次完成# mkdir -p /data/app/grid; mkdir -p /data/app/11.2.0/grid; chown -R grid.oinstall /data/app; mkdir -p /data/app/oracle; chown oracle.oinstall /data/app/oracle; chmod -R 775 /data/app
9.安装先决包
注意:两台主机上都需配置。
# yum install -y compat-libstdc++-33 libaio-devel compat-libcap1
注意:尽管先决条件没有说要安装compat-libcap1软件,但是该软件软件必须装,否则,在执行安装过程中的脚本时会出错。
10.配置VNC
只需要在第1个节点上配置。
# vim /etc/sysconfig/vncservers
VNCSERVERS="2:root"
VNCSERVERARGS[2]="-geometry 1024x768"
# vncpasswd
Password:
Verify:
# /etc/init.d/vncserver restart
三、安装集群件
在第1节点上执行:
# cd /data
# unzip p13390677_112040_Linux-x86-64_3of7.zip <--- 如果是12C,还需要解压第4个包,或者解压打包的集合包。
# xhost +
# su - grid
$ /data/grid/runInstaller
- Install and Configure Oracle Grid Infrastructure for a Cluster
- Advanced Installation
- 配置SSH互信时,必须做”Test”,因为有可能提示配置成功,但并不生效。
- 安装快要结束时,会弹出一个提示框,要求运行配置脚本,一个节点一个点地完成,即先在第1节点上运行两个脚本,再在第2节点上运行这两个脚本。另外,请在VNC窗口里运行配置脚本,不要在xshell或者SecureCRT上执行,因为脚本执行时间较长,避免断网风险。
- 在安装快完成的时候,如报错”Oracle Cluster Verification Utility failed”可忽略。
四、安装Oracle软件
在第1节点上执行:
# cd /data
# unzip p13390677_112040_Linux-x86-64_1of7.zip
# unzip p13390677_112040_Linux-x86-64_2of7.zip
# /data/database/runInstaller
- Install database software only
- Oracle Real Application Cluster database installation,勾选两个节点
- 安装后期运行脚本时,先在第1个节点上运行完两个脚本后,再在第2个节点上运行这两个脚本。如果没有要求运行某个脚本,则跳过。
五、创建磁盘组(如果需要的话)
# su - grid
$ asmca
六、DBCA建库
# su - oracle
$ dbca
- Admin-managed
- 参数设置为3000+
- 日志组数量为2g52
七、后期配置
见文