环境
软硬件环境
硬件环境:
浪潮英信服务器NF570M3两台,华为OceanStor 18500存储一台,以太网交换机两台,光纤交换机两台。
软件环境:
操作系统:RedHat Enterprise Linux 6.7 x64 集群环境:RHCS 数据库:Oracle 11g R2 多路径软件:UltraPath for Linux
存储划分
| 类型 | 卷 | 大小 | 挂载点 | 用途 | 备注 |
| 内置硬盘 | 标准 | 500MB | /boot | 启动分区 | 两块内置硬盘作RAID1 |
| LVM | 20GB | /home | 用户分区 |
| 20GB | /var | 日志分区 |
| 20GB | /opt | 应用分区 |
| 32GB | N/A | SWAP分区 |
| 500GB | / | 根分区 |
| 共享存储 | LUN | 500GB | /oradata | 数据库数据区 | SAN存储分配一个500GB的LUN |
网络规划
| 主机名 | IP | 网口 | 用途 | 备注 |
| ZHXYHDB01 | 35.1.1.250 | bond0(eth0、eth2) | 业务IP | 心跳IP和Fence IP应在同一网段;通常业务IP和此二者不在同一网段; |
| 50.3.1.200 | bond1(eth1、eth3) | 心跳IP |
| 50.3.1.202 | MGMT | Fence IP |
| ZHXYHDB02 | 35.1.1.251 | bond0(eth0、eth2) | 业务IP |
| 50.3.1.201 | bond1(eth1、eth3) | 心跳IP |
| 50.3.1.203 | MGMT | Fence IP |
| | 35.1.1.245 | | 集群VIP |
集群拓扑
系统预配置
系统安装(略)
存储识别
已在华为OceanStor存储上为本项目分配了500GB LUN,只需在两台服务器上分别安装华为OceanStor UltraPath多路径软件,重启后即可正确识别存储裸设备。 /dev/sdb即为识别到的共享存储,在两台服务器上均正确识别存储后,利用此共享存储空间创建LVM逻辑卷组和逻辑卷。以下操作均在其中一台服务器上进行: 1、使用fdisk对/dev/sdb新建磁盘分区sdb1(使用全部500GB共享存储空间): 2、将其格式化为ext4文件系统格式: # mkfs.ext4 /dev/sdb1 3、新建LVM卷组oraclevg,将/dev/sdb1创建为物理卷并加入卷组中,在卷组中创建逻辑卷oraclelv:# pvcreate /dev/sdb1# vgcreate oraclevg /dev/sdb1# lvcreate -n oraclelv -L +500G /dev/oraclevg#可通过vgdisplay查看vg全部剩余PE,然后使用‘-l PE数’参数将vg全部剩余空间加入lv中,而无须使用-L +xxGB的方式# mkfs.ext4 /dev/oraclevg/oraclelv
# mkdir /oradata
# 在两台服务器上分别创建/oradata目录,用于挂载oraclelv逻辑卷,作为数据库数据区,修改该目录权限:# mkdir /oradata
# chown oracle:oinstall /oradata
网络配置
网络配置需按照网络规划表在两台服务器上分别配置,正式配置前先关闭NetworkManager服务:# service networkmanager stop# chkconfig networkmanager off 业务IP和心跳IP均作网卡绑定,业务IP配置网关,心跳IP不配网关。在/etc/sysconfig/network-scripts目录下新建ifcfg-bond0和ifcfg-bond1,以业务IP配置为例,网卡绑定配置如下:
ifcfg-bond0: DEVICE=bond0NAME=bond0BOOTPROTO=noneONBOOT=yesTYPE=EthernetIPADDR=35.1.1.250NETMASK=255.255.255.0GATEWAY=35.1.1.1 #如果是心跳IP则不能配置此行BONDING_OPTS="miimon=100 mode=1"
ifcfg-eth0:DEVICE=eth0TYPE=EthernetONBOOT=yesBOOTPROTO=noneSLAVE=yesMASTER=bond0
ifcfg-eth2:DEVICE=eth2TYPE=EthernetONBOOT=yesBOOTPROTO=noneSLAVE=yesMASTER=bond0 然后在/etc/modprobe.d/目录下新建bonding.conf文件,加入如下内容:alias bond0 bondingalias bond1 bonding 关闭NetworkManager服务,重启network服务:# service NetworkManager stop# chkconfig NetworkManager off# service network restart HA集群所需的Fence设备在本项目中可以直接使用浪潮服务器自带的IPMI,即MGMT管理口的服务器管理系??。Fence IP的配置需要重启服务器,进入BIOS中的Advance选项的IPMI或者BMC项中配置,此处建议配置网关。同样需要在两台服务器上分别配置。 检查网络是否调通,在两台服务器上分别ping 110.1.5.1网关、110.1.5.61--110.1.5.66的全部地址以及需要连通的其他网段地址。 最后在两台服务器上分别配置HOST文件,完成主机名与IP的映射(此步不是必须,如果主机名、心跳名无关紧要的话):#/etc/hosts35.1.1.250ZHXYHDB0135.1.1.251ZHXYHDB0235.1.1.245ZHXYHDB50.3.1.200ZHXYHDB01-PRIV50.3.1.201ZHXYHDB02-PRIV
YUM本地源配置
本地源用于方便后续的RHCS集群软件以及oracle所需软件包的安装。需要在两台服务器上分别配置。 两台服务器上分别挂载RedHat 6.7系统镜像:# mount -o loop redhat6.7.iso /mnt/iso 在/etc/yum.repos.d目录下新建rhel6.7.repo文件,写入如下内容:#rhel6.7.repo
[Server]name=RHELServerbaseurl=file:///mnt/iso/Serverenabled=1gpgcheck=0[ResilientStorage]name=RHELResilientStoragebaseurl=file:///mnt/iso/ResilientStorageenabled=1gpgcheck=0[ScalableFileSystem]name=RHELScalableFileSystembaseurl=file:///mnt/iso/ScalableFileSystemenabled=1gpgcheck=0[HighAvailability]name=RHELHighAvailabilitybaseurl=file:///mnt/iso/HighAvailabilityenabled=1gpgcheck=0[LoadBalancer]name=RHELLoadBalancerbaseurl=file:///mnt/iso/LoadBalancerenabled=1gpgcheck=0
# yum clean all #终端输入此命令更新源 关闭SELinux和iptables防火墙
1、关闭防火墙 在两台服务器上分别执行以下命令:# service iptables stop# chkconfig iptables off 2、关闭SELinux:修改/etc/selinux/config 文件将SELINUX=enforcing改为SELINUX=disabled重启机器即可
Oracle数据库安装
oracle数据库软件需要在两台服务器上分别安装,只安装数据库软件而不创建数据库实例。各种Linux发行版上安装Oracle 11g R2的详细需求和过程可参见官方文档:https://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm 下面是本项目的Oracle数据库完整安装过程。
数据库安装前配置
新建oracle用户和组
# groupadd oinstall# groupadd dba# useradd -g oinstall -G dba oracle# passwd oracle
配置oracle内核参数
内核参数配置在/etc/sysctl.conf文件中,配置参数说明:在安装Oracle的时候需要调整linux的内核参数,但是各参数代表什么含义呢,下面做详细解析。Linux安装文档中给出的最小值:fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax = 4294967295kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048586各参数详解:kernel.shmmax:是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。至于导致系统下降的主要原因为在实例启动以及ServerProcess创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低(在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响),但是其他时候都不会有影响。官方建议值:32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。建议值为多于内存的一半,所以如果是32为系统,一般可取值为4294967295。32位系统对SGA大小有限制,所以SGA肯定可以包含在单个共享内存段中。64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE即可,可以取物理内存-1byte。例如,如果为12GB物理内存,可取12*1024*1024*1024-1=12884901887,SGA肯定会包含在单个共享内存段中。 kernel.shmall:该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB /4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求(几乎是原来设置2097152的两倍)。这时可以将shmmax参数调整到16G了,同时可以修改SGA_MAX_SIZE和SGA_TARGET为12G(您想设置的SGA最大大小,当然也可以是2G~14G等,还要协调PGA参数及OS等其他内存使用,不能设置太满,比如16G)kernel.shmmni:该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。fs.file-max:该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量。fs.aio-max-nr:此参数限制并发未完成的请求,应该设置避免I/O子系统故障。 推荐值是:1048576 其实它等于 1024*1024 也就是 1024K 个。kernel.sem:以kernel.sem = 250 32000 100 128为例: 250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。 32000是参数semmns的值,表示系统内可允许的信号量最大数目。 100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。 128是参数semmni的值,表示系统信号量集合总数。net.ipv4.ip_local_port_range:表示应用程序可使用的IPv4端口范围。net.core.rmem_default:表示套接字接收缓冲区大小的缺省值。net.core.rmem_max:表示套接字接收缓冲区大小的最大值。net.core.wmem_default:表示套接字发送缓冲区大小的缺省值。net.core.wmem_max:表示套接字发送缓冲区大小的最大值。 其中kernel.shmmax关系到Oracle数据库的系统全局区SGA的最大大小,kernel.shmmax值不能小于SGA的大小,否则后面设置SGA时会因为kernel.shmmax太小而出错。kernel.shmmax的大小需要根据当前系统环境的内存大小和Oracle数据库的SGA所期望的大小进行设定。SGA和PGA大小的设定原则为:
Oracle官方文档推荐:MEMORY_TARGET=物理内存 x 80%MEMORY_MAX_SIZE=物理内存 x 80%对于OLTP系统: SGA_TARGET=(物理内存 x 80%) x 80%SGA_MAX_SIZE=(物理内存 x 80%) x 80%PGA_AGGREGATE_TARGET=(物理内存 x 80%) x 20%对于DSS系统:SGA_TARGET=(物理内存 x 80%) x 50%SGA_MAX_SIZE=(物理内存 x 80%) x 50%PGA_AGGREGATE_TARGET=(物理内存 x 80%) x 50% 本项目中服务器内存为32G,为SGA设置最大值为20G,因此将Oralce数据库内核参数配置为:#oraclefs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 5242880kernel.shmmax = 21474836480kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048586 将以上代码加入/etc/sysctl.conf文件的末尾,并在终端输入sysctl -p 命令使配置立即生效。
配置Oracle系统资源限制
系统资源限制文件为/etc/security/limits.conf,该文件说明如下:limits.conf的格式如下: username|@groupname type resource limit username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。 type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。用 - 就表明同时设置了 soft 和 hard 的值。 resource: core - 限制内核文件的大小 date - 最大数据大小 fsize - 最大文件大小 memlock - 最大锁定内存地址空间 nofile - 打开文件的最大数目 rss - 最大持久设置大小 stack - 最大栈大小 cpu - 以分钟为单位的最多 CPU 时间 noproc - 进程的最大数目 as - 地址空间限制 maxlogins - 此用户允许登录的最大数目 要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有: session required /lib/security/pam_limits.so 本项目的Oracle资源限制设置为:oracle softnproc 2047oracle hardnproc 16384oracle softnofile1024oracle hardnofile65536 将以上代码加入/etc/security/limits.conf文件末尾。
配置Oracle环境变量
1、创建Oracle相关目录并更改相关权限:# mkdir -p /opt/oracle/oracle11g# mkdir -p /opt/oraInventory# chown -R oracle:oinstall /opt/oracle# chmod -R 775 /opt/oracle# chown -R oracle:oinstall /opt/oraInventory# chmod -R 775 /opt/oraInventory 2、配置Oracle环境变量: 在/etc/profile文件末尾加入如下内容:#Oracleexport ORACLE_BASE=/opt/oracleexport ORACLE_HOME=$ORACLE_BASE/oracle11gexport ORACLE_SID=zxbank #本项目的oracle实例名export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin 终端输入如下命令使配置生效:# . /etc/profile
安装相关软件包
Oracle数据库软件的安装和运行需要依赖部分第三方软件包,安装Oracle数据库前需要先安装这些软件包,根据Oracle官方安装文档,RedHat 6.7环境需要安装的软件包有:binutils-2.20.51.0.2-5.11.el6 (x86_64)compat-libcap1-1.10-1 (x86_64)compat-libstdc++-33-3.2.3-69.el6 (x86_64)compat-libstdc++-33-3.2.3-69.el6.i686elfutils-libelf-0.161-3.el6(x86_64)elfutils-0.161-3.el6(x86_64)elfutils-devel-0.161-3.el6(x86_64)elfutils-libs-0.161-3.el6(x86_64)elfutils-libelf-devel-0.161-3(el6.x86_64)gcc-4.4.4-13.el6 (x86_64)gcc-c++-4.4.4-13.el6 (x86_64)glibc-2.12-1.7.el6 (i686)glibc-2.12-1.7.el6 (x86_64)glibc-devel-2.12-1.7.el6 (x86_64)glibc-devel-2.12-1.7.el6.i686kshlibgcc-4.4.4-13.el6 (i686)libgcc-4.4.4-13.el6 (x86_64)libstdc++-4.4.4-13.el6 (x86_64)libstdc++-4.4.4-13.el6.i686libstdc++-devel-4.4.4-13.el6 (x86_64)libstdc++-devel-4.4.4-13.el6.i686libaio-0.3.107-10.el6 (x86_64)libaio-0.3.107-10.el6.i686libaio-devel-0.3.107-10.el6 (x86_64)libaio-devel-0.3.107-10.el6.i686make-3.81-19.el6sysstat-9.0.4-11.el6 (x86_64)unixODBC-2.2.14-11.el6 (x86_64) or laterunixODBC-2.2.14-11.el6.i686 or laterunixODBC-devel-2.2.14-11.el6 (x86_64) or laterunixODBC-devel-2.2.14-11.el6.i686 or later 以上包均可通过使用yum命令从之前配置好的本地源中安装。
【注】:安装软件包技巧:软件包版本号无须完全一致,也无须一个个安装,只需利用通配符进行批量安装即可,如安装unixODBC的相关包,可直接使用# yum -y install unixODBC* 命令一步到位,不会产生软件包漏装的问题。正式安装Oracle数据库时会有一个检查系统环境是否满足需求的过程,如果提示部分软件包没有安装,则在root账户下使用yum进行安装即可,如果只是软件包版本不对则可直接忽略。
Oracle数据库正式安装
切换到oracle用户下:# su - oracle 将系统变量LANG暂时设置为英文,以免安装界面出现中文字符无法显示:# export LANG=en_US 解压Oracle安装包,执行runInstaller进行图文界面安装。# cd database# ./runInstaller 不勾选也不填邮箱,点下一步,弹出提示点是。 选只安装数据库软件,下一步。 选单节点安装,下一步。 默认,下一步。 选企业版,下一步。 之前预安装配置没问题的话,这里会自动填上安装路径,直接下一步。 下一步。 确定告警的这些包是否已经安装,如果都只是依赖包的版本问题,直接勾选‘Ingore all’,然后点Finish即可完成安装,完成后按要求使用root账号运行两个脚本。
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2016-04/130570p2.htm
Oracle回车换行符修改Oracle用户密码永不过期相关资讯 RHCS RHCS部署Oracle 11g R2 双机HA
- Linux RHCS 基础维护命令 (09/02/2015 19:17:12)
- CentOS 6.5 x64 RHCS GFS配置 (01/02/2015 18:35:41)
- 红帽子RHCS套件安装与配置 (06/06/2014 08:44:39)
| - 红帽RHCS集群系统配置详解 (08/15/2015 07:38:48)
- RHCS高可用部署以及GFS2/CLVM集群 (07/28/2014 07:11:16)
- Linux学习之使用RHCS套件搭建HA高 (05/21/2014 08:34:00)
|
本文评论 查看全部评论 (0)