暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 11G-rac-asm双节点部署

IT那活儿 2021-05-13
839

  背景简介  

RAC是real application clusters的缩写,译为“实时应用集群”, 是高可用性的一种,也是Oracle数据库支持网格计算环境的核心技术。可以在低成本服务器上构建高可用性数据库系统,并且自由部署应用,无需修改代码。在Oracle RAC环境下,Oracle集成提供了集群软件和存储管理软件,为用户降低了应用成本。当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。

  • 多节点负载均衡;

  • 提供高可用:故障容错和无缝切换功能,将硬件和软件错误造成的影响最小化;

  • 通过并行执行技术提高事务响应时间----通常用于数据分析系统;

  • 通过横向扩展提高每秒交易数和连接数----通常对于联机事务系统;

  • 节约硬件成本,可以用多个廉价PC服务器代替昂贵的小型机或大型机,同时节约相应维护成本;

  • 可扩展性好,可以方便添加删除节点,扩展硬件资源。

一、IP规划

vbox、centos7、Oracle11g、crt

二、关闭防火墙.修改主机名.ip.hosts文件

1. 关闭防火墙

systemctl stop firewalld ---关闭防火墙

systemctl disable firewalld ---禁止开机自启


[root@ordb ~]#systemctl status firewalldfirewalld.service - firewalld - dynamic firewall daemon   Loaded:loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendorpreset: enabled)     Active:inactive (dead)     Docs:man:firewalld(1)[root@ordb ~]#
复制

2.  修改主机名

两节点分别执行:

hostname set-hostname c4ozw1a

hostname set-hostname c4ozw1b

3.  配置ip

vi etc/sysconfig/network-scripts/ ifcfg-enp0s3

修改:

BOOTPROTO=static   ---静态

添加:


IPADDR=192.168.56.104NEIMASK=255.255.255.0vi /etc/sysconfig/network-scripts/ ifcfg-enp0s8
复制

修改:

BOOTPROTO=static   ---静态

添加:

IPADDR=192.168.26.104

NEIMASK=255.255.255.0

注:节点2同理

4. 修改hosts文件

vi etc/hosts

添加:


#public  192.168.56.104 c4ozw1a  192.168.56.105 c4ozw1b  #virtual  192.168.56.114 c4ozw1a-vip rac01-vip  192.168.56.115 c4ozw1b-vip rac02-vip  #private  192.168.26.104 c4ozw1a-priv rac01-priv  192.168.26.105 c4ozw1b-priv rac02-priv  #scan  192.168.56.107 rac-scan  192.168.56.108 rac-scan
复制
注:节点2同理

三、配置互信、创建安装用户及目录

1. 配置互信

1)在客户端生成公钥私钥对

命令:ssh-keygen -t rsa

一路默认回车,系统在/root/.ssh下生成id_rsa、id_rsa.pub

2)查看系统生成的公钥私钥对

命令:ls root/.ssh

3)将生成的公钥私钥对id_rsa.pub发送到其他的服务器上。

命令:ssh-copy-id -i root/.ssh/id_rsa.pub 192.168.137.129

注:命令可简单记忆为 ssh-copy-id -i 公钥文件传送到对端服务器.ssh/authorized_keys

注:节点2同理

2. 创建目录及用户


/usr/sbin/groupadd -g1000 oinstall  /usr/sbin/groupadd -g1020 asmadmin  /usr/sbin/groupadd -g1021 asmdba  /usr/sbin/groupadd -g1022 asmoper  /usr/sbin/groupadd -g1031 dba  /usr/sbin/groupadd -g1032 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 -R775 /u01/  echo "grid"|passwd --stdin gridecho "oracle"|passwd --stdin oracle
复制
注:节点2同理

四、修改环境变量、内核参数、用户限制

1. 修改环境变量


##oracle环境变量  export ORACLE_BASH=/u01/app/oracle  export ORACLE_HOME=$ORACLE_BASH/product/11.2.0.4/dbhome_1  export ORA_NLS10=/$ORACLE_HOME/nls/data  export LIBPATH=$ORACLE_HOME/lib  export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/ptfs/monitor/bin:/usr/vacpp/bin:./  export NLS_LANG=AMERICAN_AMERICA.AL32UTF8  export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"  export ORACLE_SID=ozw1a    #some userfull command alias for oracle dba  umask 022  alias ss="sqlplus as sysdba"    ##grid环境变量  export TMP=/tmp  export TMPDIR=$TMP   export ORACLE_SID=+ASM1# 如果是节点2,则: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/jlibumask 022
复制

注:节点2同理

2. 修改内核参数


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 = 2002012160   kernel.shmmni = 4096   kernel.sem = 250 32000 100 129   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 4194304sysctl -p ------刷新内核参数
复制
注:节点2同理

3.  解除用户限制


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
复制
注:节点2同理

五、配置共享磁盘

1.  规划:

1000MB votingdisk1  ---投票盘

1000Mb votingdisk2

1000Mb votingdisk3

10000Mb datadisk1 ---数据盘

10000Mb datadisk2

10000Mb datadisk3

10000Mb archdisk1 ---归档盘

2. 配置udev

  • 添加:


for i in b c d e f g h  do  n1=`expr $n1 + 1`  echo "KERNEL==\"sd?\", SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", SYMLINK+=\"asmdisk/asmdisk${n1}\",OWNER=\"grid\", GROUP=\"asmadmin\",MODE=\"0660\"" done >/etc/udev/rules.d/99-oracle-asmdevices.rules
复制
  • 重新加载:


/sbin/udevadm control --reload-rules
复制
  • 验证:


ls -ld /dev/asm*  drwxr-xr-x 2 root root 120 Aug 19 17:51 /dev/asmdisk  ls -l /dev/asm*  total 0  lrwxrwxrwx 1 root root 6 Aug 19 17:51 asmdisk001 -> ../sdb  ls -l /dev/sd*  brw-rw---- 1 root disk     8, 0 Aug 19 17:37 /dev/sdabrw-rw---- 1 grid asmadmin 8, 16 Aug 19 17:51 /dev/sdb
复制
测试是否成功(例子):

/sbin/udevadm test sys/block/sdc

六、安装软件包

yum install -y binutils-*  yum install -y compat-libstdc++-*  yum install -y elfutils-libelf-*  yum install -y elfutils-libelf-*  yum install -y elfutils-libelf-devel-static-*  yum install -y gcc-*  yum install -y gcc-c++-*  yum install -y glibc-*  yum install -y glibc-common-*  yum install -y glibc-devel-*  yum install -y glibc-headers-*  yum install -y kernel-headers-*  yum install -y pdksh-*  yum install -y libaio-*  yum install -y libaio-devel-*  yum install -y libgcc-*  yum install -y libgomp-*  yum install -y libstdc++-*  yum install -y libstdc++-devel-*  yum install -y make-*  yum install -y sysstat-*    cd database/grid/rpm/ ----此包在安装文件解压后的目录内rpm -ivh
复制

七、解压安装

1. 安装grid

su - grid

##检查环境:

./runcluvfy.sh stage -pre crsinst -n c4ozw1a,c4ozw1b -fixup -verbose

注:根据环境检查所提示的信息失败项重新调整,以满足配置需求。

##安装:
./runInstaller -jreLoc etc/alternatives/jre_1.8.0   ---用指定的jdk启动安装程序
注:指定jdk可防止乱码的同时防止弹出窗口字体问题以及窗口大小问题。

2. 安装Oracle

su - oracle

./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
注:Oracle软件的安装与单节点数据库相差不多,过程相对简单,不在阐述。

八、安装过程中遇到的问题及其解决方式

1. grid安装后的root脚本执行报错:

第二个脚本因centos7的ohasd不能自动拉起,所以在执行过程中需手动拉起:

/bin/sh /etc/init.d/init.ohasd run &

注:创建ohasd开机自启动服务:


vi /usr/lib/systemd/system/ohas.service    添加:    [Unit]    Description=Oracle High Availability Services    After=syslog.target    [Service]    ExecStart=/etc/init.d/init.ohasd run >/dev/null 2>&1 Type=simple    Restart=always    [Install]    WantedBy=multi-user.target    设置自动启动:    chmod 777 /usr/lib/systemd/system/ohas.service    systemctl daemon-reload    systemctl enable ohas.service    systemctl start ohas.service
复制

2. ntp服务导致的报错:

注:以上报错是没有dns及ntp导致检测失败,测试所有主机能ping通scan ip可以跳过。


3. Oracle软件安装时大量软件包未安装警告(超过5个):

在依赖库检查时,多个依赖库检查失败,提示未安装,如libaio,unixODBC等。经检查确认这些库都已安装,版本高于或等于所需版本。

翻阅Oracle 文档,对于64位Oracle 11.2.0.2之间的版本,部分依赖库需要同时安装32位版和64位版。而报依赖性错误的库就是这些库的32位版。那么可以确定是oracle的依赖校验机制存在缺陷。

在Oracle安装包中, 在目录stage/cvu下,存在一个文件cvu_prereq.xml,其中包含了有关认证的操作系统的库依赖关系。在这些依赖库的32位版本,文件中对于ARCHITECTURE的标注是"i386",64位版本则是x86_64。

打开CentOS的光盘查看相关的rpm,其构架标注均为i686,由于CentOS不在认证系统之列,因此不知道oracle安装程序究竟用了那个系统作为校验,便将cvu_prereq.xml文件中所有ARCHITECTURE="i386"的条目,全部改成"i686"后保存。

重新执行./runInstaller,包依赖检查顺利通过:

注:常见于11.2.0.2版本之前的Oracle中。


4. ins_ctx.mk文件报错:

CENTOS 7装ORACLE 11g时报错ins_ctx.mk:


vim /u01/app/oracle/11g/product/ctx/lib/ins_ctx.mkctxhx: $(CTXHXOBJ)           -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)/usr/lib64/stdc.a

复制

注:修改后点击reply重试,不在报错。

 (常见于11.2.0.2版本之前的Oracle中)

5. ins_emagent.mk文件报错:

上图中报错:

在makefile中添加链接libnnz11库的参数,修改/u01/app/oracle/11G/product/sysman/lib/ins_emagent.mk,将 $(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL)  -lnnz11点击Retry继续安装。

注:常见于11.2.0.2版本之前的Oracle中。

九、验证



[grid@c4ozw1b ~]$ crs_stat -t  Name Type Target State Host   ------------------------------------------------------------  ora....ER.lsnr ora....er.type ONLINE ONLINE c4ozw1a   ora....N1.lsnr ora....er.type ONLINE ONLINE c4ozw1b   ora....N2.lsnr ora....er.type ONLINE ONLINE c4ozw1a   ora.OCR.dg ora....up.type ONLINE ONLINE c4ozw1a   ora.asm ora.asm.type   ONLINE ONLINE c4ozw1a   ora....SM1.asm application ONLINE ONLINE c4ozw1a   ora....1A.lsnr application ONLINE ONLINE c4ozw1a   ora....w1a.gsd application OFFLINE OFFLINE   ora....w1a.ons application ONLINE ONLINE c4ozw1a   ora....w1a.vip ora....t1.type ONLINE ONLINE c4ozw1a   ora....SM2.asm application ONLINE ONLINE c4ozw1b   ora....1B.lsnr application ONLINE ONLINE c4ozw1b   ora....w1b.gsd application OFFLINE OFFLINE   ora....w1b.ons application ONLINE ONLINE c4ozw1b   ora....w1b.vip ora....t1.type ONLINE ONLINE c4ozw1b   ora.cvu ora.cvu.type   ONLINE ONLINE c4ozw1a   ora.gsd ora.gsd.type   OFFLINE OFFLINE   ora....network ora....rk.type ONLINE ONLINE c4ozw1a   ora.oc4j ora.oc4j.type  ONLINE ONLINE c4ozw1a   ora.ons ora.ons.type   ONLINE ONLINE c4ozw1a   ora.scan1.vip ora....ip.type ONLINE ONLINE c4ozw1b   ora.scan2.vip ora....ip.type ONLINE ONLINE c4ozw1a

复制

END


更多精彩干货分享

点击下方名片关注

IT那活儿

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论