安装Oracle RAC数据库

1、 安装前的系统配置需求

安装Oracle Rac数据库需要的组件可以分为软硬件两部分,下面是一个软硬件推荐配置:

为了方便安装RAC数据库,在安装操作系统时,建议选择如下系统包:

l      桌面环境:xwindows system、GNOME desktop environment。

l      开发工具:development tools、x software development、gnome software development、kde software development。

1、 安装前的系统配置需求

更详细的拓扑结构信息,参看下图:

1、 安装前的系统配置需求

Oracle Rac数据库涉及到公用网络和私有网络,因此要做网络划分和IP地址规划,下表列出了要安装的RAC数据库对应的IP地址、主机名以及网络连接类型:

两个节点:两个实例,对应一个数据库。

2、设置数据库安装资源

安装RAC数据库需要的软件包分为三个部分,分别是oracle RAC安装程序包、Oracle ASMLib工具包以及系统补丁包。这里Oracle的安装版本为oracle11g,详细的软件包信息如下:

(1)Oracle 11g Release 1 (11.1.0.6.0)软件包

下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/111060-linuxsoft-085130.html

软件包名称:

linux_11gR1_database_1013.zip

linux_x86_11gR1_clusterware.zip

       软件包说明:总共需要下载两个安装程序,一个是Oracle Rac安装程序包,另一个是Oracle ClusterWare安装程序包。

(2)Oracle ASMLib工具包

下载地址:http://www.oracle.com/technetwork/topics/linux/downloads/rhel5-084877.html

软件包名称:

oracleasmlib-2.0.4-1.el5.i386.rpm

oracleasm-2.6.18-194.11.1.el5-2.0.5-1.el5.i686.rpm

oracleasm-support-2.1.3-1.el5.i386.rpm

软件包说明:这三个软件包是使用ASM存储管理方式必须的驱动工具包。

(3)系统补丁包

下载地址:http://www.idevelopment.info/data/Oracle/DBA_tips/Oracle11gRAC/Install11gR1RACOnCentOS51/RPMS/redhat-release-5-1.0.el5.centos.1.i386.rpm

软件包名称:redhat-release-5-1.0.el5.centos.1.i386.rpm

软件包说明:由于Centos不在Oracle支持平台之列,所以安装检测时无法通过的,通过安装这个软件包,可以使安装检测顺利通过。

3、配置主机解析文件

为了使每个主机间可以正常通信,需要在每个节点上修改本地解析文件,即/etc/hosts文件,在两个节点上添加如下配置信息:

192.168.12.231          node-rac1

192.168.12.232          node-rac2

192.168.12.230          node-vip1

192.168.12.240          node-vip2

10.10.10.1              node-priv1

10.10.10.2              node-priv2

4、检查所需软件包

在每个节点上执行相同的操作:

执行下面的命令:

rpm -q make binutils  libaio-devel libaio elfutils-libelf-develcompat-libstdc++-33 libgcc  gcc gcc-c++glibc sysstat libstdc++ libstdc++-devel unixODBC-devel unixODBC

如果出现某个软件包没有安装,请安装该软件包。

5、配置系统内核参数

由于Linux的内核参数信息都存在内存中,可以通过命令直接修改,并且修改后直接生效,但是,当系统重新启动后,原来设置的参数值就会丢失,而系统每次启动时都会自动去/etc/sysctl.conf文件中读取内核参数,因此将内核的参数配置写入这个文件中,是一个比较好的选择。

Oracle对Linux系统内核参数有严格的要求,如果设置不当,就会导致安装失败,编辑/etc/sysctl.conf文件,修改后的参数配置如下所示:

net.ipv4.ip_forward= 0

net.ipv4.conf.default.rp_filter= 1

net.ipv4.conf.default.accept_source_route= 0

kernel.sysrq = 0

kernel.core_uses_pid= 1

net.ipv4.tcp_syncookies= 1

kernel.msgmnb =65536

kernel.msgmax =65536

net.core.rmem_default= 4194304

net.core.rmem_max= 4194304

net.core.wmem_default= 262144

net.core.wmem_max= 262144

kernel.shmmax =1073741823

kernel.sem = 25032000 100 128

fs.file-max =65536

net.ipv4.ip_local_port_range= 1024 65000

5、配置系统内核参数

下面简单讲述下常用的几个内核参数的含义:

l      kernel.shmmax:表示单个共享内存段的最大值,以字节为单位,此值一般为物理内存一半,不过大一点也没关系,这里设定的为1G。

l      kernel.shmmni:表示单个共享内存段的最小值,一般为4KB,即4096bit

l      kernel.shmall:表示可用共享内存的总量,单位是页,在32位系统上一页等于4k,也就是4096字节。

l      fs.file-max:表示文件句柄的最大数量。文件句柄表示在linux系统中可以打开的文件数量。

l      net.ipv4.ip_local_port_range:表示端口的范围,为指定的内容。

l      kernel.sem:用来设置Linux的信号量。

可以使用以下命令查看:

[root@node-rac1rac]#cat/proc/sys/kernel/sem

250 32000 32 128

对于输出的这四个值的含义,分别介绍如下:

Ø    SEMMSL:此参数用于控制每个信号集的最大信号数,Oracle建议将SEMMNI设置为不小于100。

Ø    SEMMNS:此参数用于控制整个Linux系统中信号(而不是信号集)的最大数量。

Ø    SEMOPM:此参数用于控制每个semop系统调用可以执行的信号操作数,Oracle建议将SEMOPM的值设置为不少于100

Ø    SEMMNI:此内核参数用于控制整个Linux系统中信号集的最大数量,Oracle建议将SEMMNI设置为不小于100。

6、设置 Shell对Oracle用户的限制

以root用户身份,在每个节点上执行相同的操作。

首先,修改/etc/security/limits.conf,在文件最后添加如下内容:

oracle  soft  nproc 2047

oracle  hard  nproc  16384

oracle  soft  nofile  1024

oracle  hard  nofile 65536

接着,修改/etc/pam.d/login,在文件最后添加如下内容:

session required /lib/security/pam_limits.so

最后,修改/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

所有修改完毕,重启所有Linux系统。

7、配置hangcheck-timer内核模块

以root用户身份执行,在所有节点上做如下配置。

查看模块是否存在:

[root@node-rac1~]#find /lib/modules -name "hangcheck-timer.ko"

接着,编辑/etc/modprobe.conf:

[root@node-rac1~]# vi /etc/modprobe.conf

在文件的末尾加入一行:

options hangcheck-timer hangcheck_tick=30hangcheck_margin=180

然后,将hangcheck-timer模块配置为自启动:

[root@node-rac1~]#vi /etc/rc.d/rc.local

在文件的末尾加入一行:

/sbin/modprobe hangcheck_timer

接着,启动hangcheck:

[root@node-rac1~]# /sbin/modprobehangcheck_timer

最后,检查hangcheck是否成功启动:

[root@node-rac1~]#grep hangcheck/var/log/messages | tail -2

Aug 26 19:08:17Mysql1 kernel: Hangcheck: starting hangcheck timer 0.9.0 (tick is 30 seconds,margin is 180 seconds).

如果显示上面输出信息说明已经成功启动hangcheck。

8、配置系统安全设置

由于在安装RAC数据库时,安装进程需要在每个节点间传送数据,这就要求每个节点间是互信任的,因此,最简单的方式就是关闭系统的安全限制,常用的方式是关闭Linux系统的iptables以及selinux,在每个节点上执行相同的操作。

关闭iptables很简单,可以直接执行如下命令:

[root@node-rac1 ~]# iptables –F

[root@node-rac1 ~]# /etc/init.d/iptables  save

最后,将selinux禁用即可,也就是修改/etc/selinux/config文件,修改后的内容为:

SELINUX=disabled

SELINUXTYPE=targeted

9、创建Oracle用户和组

在安装进行之前,需要创建两个用户组和一个用户,分别用于oracle安装和oracle管理,在两个节点执行相同的操作,操作如下:

[root@node-rac1~]#groupadd –g 1001 dba

[root@node-rac1~]#groupadd –g 1002 oinstall

[root@node-rac1~]#useradd -u 1001 -g oinstall-G dba oracle

然后,给oracle用户设置密码:

[root@node-rac1~]# passwd oracle

最后,确认匿名用户nobody是否存在于系统中,因为在安装完成后nobody用户需要执行一些扩展任务

[root@node-rac1~]# id nobody

uid=99(nobody)gid=99(nobody) groups=99(nobody)

jesse:需要验证是否有noboday用户

这样,用户和组创建就完毕了。

10、设置Oracle用户环境变量

用文本编辑器vi编辑/home/oracle/.bash_profile文件,在文件最后添加如下内容,这里以node-rac1为例,同理,需要在节点node-rac2也执行相同的操作。

exportORACLE_BASE=/u01/oracle

#oracle程序的基本目录

exportORACLE_HOME=$ORACLE_BASE/product/11.0.6/rac_db

#

exportORA_CRS_HOME=/app/crs/product/11.0.6/crs

exportORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin

exportORACLE_SID=racdb1

#第一个节点设置为racdb1,第二个节点这里需要设置为racdb2

exportNLS_LANG=AMERICAN_AMERICA.zhs16gbk

#语言编码的设置

exportNLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

exportPATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin

exportPATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

exportPATH=${PATH}:$ORACLE_BASE/common/oracle/bin

exportORACLE_TERM=xterm

exportTNS_ADMIN=$ORACLE_HOME/network/admin

exportORA_NLS10=$ORACLE_HOME/nls/data

exportLD_LIBRARY_PATH=$ORACLE_HOME/lib

exportLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

exportLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

exportCLASSPATH=$ORACLE_HOME/JRE

exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

exportTHREADS_FLAG=native

export TEMP=/tmp

exportTMPDIR=/tmp

10、设置Oracle用户环境变量

根据oracle官方的建议,这里将oracle rac数据库程序和oracle clusterware软件安装在了不同的目录。“ORACLE_SID”在节点2上应该设置为“export ORACLE_SID=racdb2”

设置完毕oracle用户环境变量后,还需要在两个节点创建环境变量中指定的安装目录,基本操作如下:

[root@node-rac1~]# mkdir -p/u01/oracle/product/11.0.6/rac_db

[root@node-rac1~]# mkdir -p /app/oracrs/product/11.0.6/crs

[root@node-rac1~]# chown -R oracle:oinstall/u01/oracle

[root@node-rac1~]#chown -R oracle:oinstall/app

11、配置节点间SSH信任

在安装RAC过程中,OUI程序会使用ssh和scp命令来执行远程拷贝操作,将文件从安装节点拷贝到其它节点上,如果节点间不相互信任,那么传输过程就需要输入密码,从而导致安装失败,因此必须在所有的节点上为oracle用户配置节点间的互信。

1     在每个节点上创建 RSA密钥和公钥

(1)以 oracle 用户登录

(2)在 oracle用户的根目录内创建.ssh目录并设置读取权限

[oracle@node-rac1 ~]$ mkdir ~/.ssh

[oracle@node-rac1 ~]$ chmod 700 ~/.ssh

(3)使用ssh-keygen命令生成基于SSH协议的RSA密钥

[oracle@node-rac1 ~]$ cd ~/.ssh

[oracle@node-rac1.ssh]$ssh-keygen   -t    rsa

Generatingpublic/private rsa key pair.

Enter file inwhich to save the key (/home/oracle/.ssh/id_rsa):

Enter passphrase(empty for no passphrase):

Enter samepassphrase again:

Youridentification has been saved in /home/oracle/.ssh/id_rsa.

Your public keyhas been saved in /home/oracle/.ssh/id_rsa.pub.

The keyfingerprint is:

dd:69:5a:aa:e6:85:88:a4:07:72:ab:15:7b:3b:4a:77oracle@node-rac1

在提示保存私钥(key)和公钥(public key)的位置时,选择使用默认值,然后依次直接回车即可。

11、配置节点间SSH信任

2  整合公钥文件

(1)以 Oracle 用户登录

(2)在要执行Oracle安装程序的节点node-rac1 上执行如下操作:

[oracle@node-rac1 ~] $ cd ~/.ssh

[oracle@node-rac1 .ssh]$ ssh node-rac1 cat/home/oracle/.ssh/id_rsa.pub >> authorized_keys 

[oracle@node-rac1 .ssh]$ ssh node-rac2 cat/home/oracle/.ssh/id_rsa.pub >> authorized_keys

[oracle@node-rac1 .ssh]$ chmod 600 ~/.ssh/authorized_keys

[oracle@node-rac1 .ssh]$scp authorized_keys  node-rac2:/home/oracle/.ssh/

这个操作过程是将两个节点生成的公钥文件整合为一个authorized_keys文件,然后进行授权,并将authorized_keys拷贝到另一个节点。

(3)测试SSH互信

首先在node-rac1节点上执行:

[oracle@node-rac1 ~]$ ssh node-rac1 date

[oracle@node-rac1 ~]$ ssh node-rac2 date

然后在node-rac2节点上执行

[oracle@node-rac2 ~]$ ssh node-rac1 date

[oracle@node-rac2 ~]$ ssh node-rac2 date

如果不需要输入密码就出现系统当前日期,就说明SSH互信已经配置成功了。

12、配置共享存储系统

在讲述的这个环境中,共享存储由一台ISCSI-target主机来提供,通过以太网,假定将ISCSI-target主机两块本地磁盘/dev/sdb、/dev/sdc共享给RAC数据库的两个节点,由于ISCSI的安装已经在前面章节进行了详细讲述,这里不再介绍,然后对两块共享磁盘分别划分了五个分区,每个分区的用途如下表:

       全部操作执行完毕,重启RAC数据库的两个节点。

13、建立和配置raw设备

关于raw设备的使用,从Centos4版本到Centos5发生了很大变化,在Centos4以前版本中可以通过/etc/sysconfig/rawdevices和/etc/init.d/rawdevices文件来创建和配置raw设备,而在Centos5以后,raw必须要通过 udev来管理raw,并且raw命令的位置从/usr/bin/raw变为/bin/raw,这从安全方面改进了不少,但是仍然兼容之前的配置方式,因此在Centos5版本中配置raw的方法有两种:

(1)手动建立/etc/sysconfig/rawdevices文件,然后从其它操作系统上拷贝/etc/init.d/rawdevices文件到本机,修改/etc/init.d/rawdevices文件中raw命令的路径,然后就可以通过/etc/init.d/rawdevices来启动和关闭 raw文件了。

(2)通过udev来管理raw,添加raw设备对应的配置文件为/etc/udev/rules.d/60-raw.rules。

这里采用第二种方式来建立和配置raw设备,首先修改/etc/udev/rules.d/60-raw.rules文件,修改完成的内容如下:

ACTION=="add",KERNEL=="sdb5",RUN+="/bin/raw/dev/raw/raw1 %N"

ACTION=="add",KERNEL=="sdb6",RUN+="/bin/raw/dev/raw/raw2 %N"

…………

ACTION=="add",KERNEL=="sdc8",RUN+="/bin/raw/dev/raw/raw9 %N"

ACTION=="add",KERNEL=="sdc9",RUN+="/bin/raw/dev/raw/raw10 %N"

KERNEL=="raw1",OWNER="oracle", GROUP="oinstall", MODE="644"

KERNEL=="raw2",OWNER="oracle", GROUP="oinstall", MODE="644"

KERNEL=="raw3",OWNER="oracle", GROUP="oinstall", MODE="660"

…………

KERNEL=="raw9",OWNER="oracle", GROUP="oinstall", MODE="660"

KERNEL=="raw10",OWNER="oracle", GROUP="oinstall", MODE="660"

13、建立和配置raw设备

然后启动udev服务生成raw设备:

[root@node-rac1/]# start_udev

Startingudev:                                            [  OK  ]

接着验证一下raw设备是否生成:

[root@node-rac1/]#  ll /dev/raw/raw*

crw-r--r--1 oracle oinstall 162,  1 Aug 27 00:13/dev/raw/raw1

crw-rw----1 oracle oinstall 162, 10 Aug 27 00:13 /dev/raw/raw10

crw-r--r--1 oracle oinstall 162,  2 Aug 27 00:13/dev/raw/raw2

crw-rw----1 oracle oinstall 162,  6 Aug 27 00:13/dev/raw/raw6

crw-rw----1 oracle oinstall 162,  7 Aug 27 00:13/dev/raw/raw7

……………..

crw-rw----1 oracle oinstall 162,  8 Aug 27 00:13 /dev/raw/raw8

crw-rw----1 oracle oinstall 162,  9 Aug 27 00:13/dev/raw/raw9

从输出可以看出,raw设备已经生成,并且相关权限也自动加载。

安装Oracle RAC数据库前的准备工作相关推荐

  1. Centos7 静默安装 Oracle RAC 11gR2

    vSphere EXSi + CentOS 7.4 静默安装 Oracle RAC (11gR2) 安装之前,先总结一下安装Oracle RAC的注意事项: 如果是在vSphere EXSi环境中搭建 ...

  2. 使用 VMware Server 在 Linux 上安装 Oracle RAC 10g

    如下文档摘自oracle官方网. 作者:Vincent Chan 2007 年 1 月发表 于 10 月份 Oracle OpenWorld 2006 上推介的 Oracle 坚不可摧的 Linux ...

  3. 使用 VMware Server 在 Oracle Enterprise Linux 上安装 Oracle RAC 10g

    DBA:Linux   下载 VMware Server 1.0.1 Oracle Enterprise Linux 4,Kernel 2.6.9-42.0.0.0.1.ELsmp 适用于 Linux ...

  4. 大话oraclerac集群、高可用性、备份与恢复_数腾Oracle RAC数据库灾备解决方案

    "一个系统包含很多模块,数据库.前端.缓存.搜索.消息队列等,每个模块都需要做到高可用,才能保证整个系统的高可用." 数据库作为现代信息社会的基石,几乎所有的计算机应用软件都构建于 ...

  5. oracle中-1002,安装Oracle RAC时, 碰到到了PRKC-1002错误

    在VMWare Server 1.0.8中安装Oracle RAC时, 碰到到了PRKC-1002错误: WARNING: Error while copying directory /u01/ora ...

  6. 【DBCA -SILENT】静默安装之rac数据库安装

    [DBCA -SILENT]静默安装之rac数据库安装 BLOG文档结构图 之前的相关文章连接: DBCA静默方式建库 :http://blog.itpub.net/26736162/viewspac ...

  7. 故障转移集群服务器 重装系统,安装故障转移群集前的准备工作

    安装故障转移群集前的准备工作 08/24/2016 本文内容 适用于: SQL Server(所有支持的版本) 安装 SQL Server 故障转移群集之前,必须选择运行 SQL Server 的硬件 ...

  8. 安装oracle后在cmd,在WINDOWS上安装ORACLE RAC的注意事项

    在WINDOWS上安装ORACLE RAC的注意事项 1.检查防火墙和杀毒软件 如果不关掉防火墙,在安装CRS时,在"Oracle Clusterware Configuration Ass ...

  9. ubuntu14.04、CentOS安装oracle 11g数据库【转载】

    出处:https://blog.csdn.net/cainanxing/article/details/78988671 ubuntu14.04.CentOS安装oracle 11g数据库 折腾了好久 ...

最新文章

  1. 虚拟dom_通过编写简易虚拟DOM,来学习虚拟DOM 的原理
  2. C语言snmp编程视频,在Ubuntu18.04中关于C语言使用netsnmp进行snmp编程
  3. ef ddl生成不了脚本_如何使用Hibernate从Play生成DDL脚本! 框架项目
  4. Java中implies_boolean implies(Permission p)
  5. Python字符串与列表间的相互转化
  6. plc模拟器软件_【万泉河】咸鱼上买了个二手施耐德PLC,上当了。
  7. 服务器突然c盘的temp文件夹,c盘里突然出了很多TEMP文件?
  8. win10桌面管理文件收纳_【电脑桌面文件收纳】电脑桌面软件怎么收纳_电脑桌面文件加密...
  9. 【arXiv 2021】Cluster Contrast for Unsupervised Person Re-Identification(CCU)
  10. 超好用的Server酱,推送微信消息
  11. 慧据价值 链接未来丨第八届数据技术嘉年华大会全议程呈现
  12. Android 录制视频添加时间水印,不吃透都对不起自己
  13. 蓝桥杯STM32G431——RTC实时时钟
  14. iOS资源帖-优秀博客、iOS开发技术文、学习网站
  15. python获取目标时间距离现在多长时间(‘2020-5-30 23:40:00‘)
  16. shell trim函数
  17. 【Discuz】原系统进入论坛自动注册并进行登录
  18. docker设置代理 速度终于起飞
  19. 2019牛客暑期多校训练营(第一场)E : ABBA(dp)
  20. jQuery与javascript库

热门文章

  1. 万般皆是命,半点不由人
  2. 第四章:Linux常用命令(续)
  3. free NAS安装使用
  4. 教你如何屏蔽 烦人的百度 搜索热点
  5. EasyNVR视频点击开始录像提示“创建录像文件失败”排查
  6. 彩虹显IP QQ动了谁的奶酪?
  7. 一本好书:西医综合傲视宝典之内容简介
  8. MP4Box使用命令大全 - 中英文
  9. 如何维护注册表?(二)
  10. 临床路径在中国的实施现状及路径产品发展前景