资讯专栏INFORMATION COLUMN

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

IT那活儿 / 1173人阅读
Oracle 11G-rac-asm双节点部署





  背景简介  



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 firewalld
firewalld.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.104
NEIMASK=255.255.255.0

vi /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 grid
echo "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/jlib
umask 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 4194304

sysctl -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/sda
brw-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.mk

ctxhx: $(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那活儿

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129919.html

相关文章

  • “云”的力量崛起,数据库市场再起波澜

    摘要:不过,云来了,以阿里云为代表的云服务商携云原生数据库发起了新一轮挑战。实际上,阿里云数据库技术也得到国际咨询机构的认可,在数据库魔力象限中,阿里云成为国内首个入选的科技公司。第三个是数据的安全隐私保护,这是阿里云数据库一直不敢放松的。数据库市场形成今天的格局已经很久了,商业数据库为王,这几乎没有变过。不过,云来了,以AWS、阿里云为代表的云服务商携云原生数据库发起了新一轮挑战。与以往历次的挑...

    _ipo 评论0 收藏0
  • 阿里数据库十年变迁,那些你不知道的二三事

    摘要:今天,阿里数据库事业部研究员张瑞,将为你讲述双数据库技术不为人知的故事。这十年,阿里巴巴数据库团队一直有一个使命推动中国数据库技术变革。 第十个双11即将来临之际,阿里技术推出《十年牧码记》系列,邀请参与历年双11备战的核心技术大牛,一起回顾阿里技术的变迁。 今天,阿里数据库事业部研究员张瑞,将为你讲述双11数据库技术不为人知的故事。在零点交易数字一次次提升的背后,既是数据库技术的一次...

    greatwhole 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<