设为首页 收藏本站
查看: 850|回复: 0

[经验分享] 一步一步搭建oracle 11gR2 rac+dg之环境准备(二)【转】

[复制链接]

尚未签到

发表于 2017-12-11 08:20:26 | 显示全部楼层 |阅读模式
一步一步在RHEL6.5+VMware Workstation 10上搭建 oracle 11gR2 rac + dg 之环境准备 (二)
  一步一步搭建oracle 11gR2 rac+dg之环境准备(二)-lhrbest-ITPUB博客
  http://blog.itpub.net/26736162/viewspace-1290416/
  本篇目录结构:
DSC0000.png


  • Linux 环境准备
      安装linux的环境,我就不介绍了,这一部分如果不会的童鞋就去百度吧,一百度一大堆,如果还是不会的话就直接下载我已经安装好的系统吧,下载下来直接可用(http://yunpan.cn/cgkEsf8wpHC2G (提取码:90f5)),复制3份,直接命名为rac1、rac2和dg即可,如图:
    DSC0001.png


  • 前期环境准备

    • 关闭防火墙

  在rac1 和rac2 2个节点上分别执行如下语句:
[iyunv@rac01 ~]# service iptables stop

[iyunv@rac01 ~]# chkconfig iptables off

[iyunv@rac01 ~]# chkconfig iptables --list

  iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
  chkconfig iptables off ---永久
  service iptables stop ---临时
  /etc/init.d/iptables status ----会得到一系列信息,说明防火墙开着。
  /etc/rc.d/init.d/iptables stop ----------关闭防火墙

  • 修改主机名
  #vi /etc/sysconfig/network
  HOSTNAME=rac1
  # hostname rac1
  Rac 2 上同样执行

  • 修改hosts文件--网络配置(网卡配置)
  hosts文件:
[grid@rac1 ~]$ more /etc/hosts

  127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  #Public IP
  192.168.59.135 rac1
  192.168.59.136 rac2
  #Private IP
  192.168.116.133 rac1-priv
  192.168.116.134 rac2-priv
  #Virtual IP
  192.168.59.137 rac1-vip
  192.168.59.138 rac2-vip
  #Scan IP
  192.168.59.139 rac-scan

  • 配置内核参数

    • 修改/etc/sysctl.conf文件

[iyunv@rac01 ~]# vi /etc/sysctl.conf

  # for oracle 11g
  fs.aio-max-nr = 1048576
  fs.file-max = 6815744
  kernel.shmall = 2147483648
  kernel.shmmax = 68719476736
  kernel.shmmni = 4096
  kernel.sem = 250 32000 100 128
  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
  使修改参数立即生效:
[iyunv@rac01 ~]# /sbin/sysctl -p


  • 修改limits文件
[iyunv@rac01 ~]# 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

  • 修改/etc/pam.d/login文件
[iyunv@rac01 ~]# vi /etc/pam.d/login

  session required pam_limits.so

  • 修改/etc/profile文件
[iyunv@rac01 ~]# vi /etc/profile

  if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
  ulimit -p 16384
  ulimit -n 65536
  else
  ulimit -u 16384 -n 65536
  fi
  umask 022
  fi

  • 禁用 selinux
[iyunv@rac01 ~]# vi /etc/selinux/config

  # This file controls the state of SELinux on the system.
  # SELINUX= can take one of these three values:
  # enforcing - SELinux security policy is enforced.
  # permissive - SELinux prints warnings instead of enforcing.
  # disabled - No SELinux policy is loaded.
  SELINUX=disabled
  # SELINUXTYPE= can take one of these two values:
  # targeted - Targeted processes are protected,
  # mls - Multi Level Security protection.
  SELINUXTYPE=targeted
DSC0002.png

  getsebool
  getsebool: SELinux is disabled

  • 停止 ntp 服务,11gR2 新增的检查项
  root 用户双节点运行:
  gird时间同步所需要的设置(11gR2新增检查项)
  #Network Time Protocol Setting
  /sbin/service ntpd stop
  mv /etc/ntp.conf /etc/ntp.conf.bak (这时候oracle会自动启用自己的NTP服务)
[iyunv@node1 ~]# service ntpd status

  ntpd is stopped
[iyunv@node1 ~]# chkconfig ntpd stop

[iyunv@node1 ~]# cat /etc/ntp

  ntp/ ntp.conf
[iyunv@node1 ~]# cp /etc/ntp.conf /etc/ntp.conf.bak

[iyunv@node1 ~]# rm -rf /etc/ntp.conf

[iyunv@node1 ~]#


  • /dev/shm 共享内存不足的处理
  解决方法:
  例如:为了将/dev/shm的大小增加到1GB,修改/etc/fstab的这行:默认的:
  none /dev/shm tmpfs defaults 0 0
  改成:
  none /dev/shm tmpfs defaults,size=1024m 0 0
  size参数也可以用G作单位:size=1G。
  或者使用命令: mount -o remount,size=4G /dev/shm
  重新mount /dev/shm使之生效:
  # mount -o remount /dev/shm
  或者:
  # umount /dev/shm
  # mount -a
  马上可以用"df -h"命令检查变化。

  • 添加组和用户

    • 添加oracle和grid用户

  groupadd -g 501 oinstall
  groupadd -g 502 dba
  groupadd -g 503 oper
  groupadd -g 504 asmadmin
  groupadd -g 505 asmoper
  groupadd -g 506 asmdba
  useradd -g oinstall -G dba,asmdba,oper oracle
  useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
  为oracle和grid用户设密码:
[iyunv@rac01 ~]# passwd oracle

[iyunv@rac01 ~]# passwd grid

  检查:

[iyunv@ora1 ~]#>  uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba),503(oper),506(asmdba)

[iyunv@ora1 ~]#>  uid=502(grid) gid=501(oinstall)
  groups=501(oinstall),502(dba),503(oper),504(asmadmin),505(asmoper),506(asmdba)
DSC0003.png


  • 创建目录并且配置 grid 和 oracle 用户的环境变量文件
  ? GRID 软件的 ORACLE_HOME 不能是 ORACLE_BASE 的子目录
  --在2个节点均创建,root用户下创建目录:
  mkdir -p /u01/app/oracle
  mkdir -p /u01/app/grid
  mkdir -p /u01/app/11.2.0/grid
  chown -R grid:oinstall /u01/app/grid
  chown -R grid:oinstall /u01/app/11.2.0
  chown -R oracle:oinstall /u01/app/oracle
  chmod -R 775 /u01
  mkdir -p /u01/app/oraInventory
  chown -R grid:oinstall /u01/app/oraInventory
  chmod -R 775 /u01/app/oraInventory
  修改gird、oracle用户的.bash_profile文件,以oracle账号登陆,编辑.bash_profile
  或者在root直接编辑:
  vi /home/oracle/.bash_profile
  vi /home/grid/.bash_profile
  --------Oracle User----切换到Oracle用户下------
[iyunv@rhel_linux_asm ~]# su - oracle

[oracle@rhel_linux_asm ~]$ vi ~/.bash_profile

  export ORACLE_SID=rac1
  export ORACLE_BASE=/u01/app/oracle
  export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
  export LD_LIBRARY_PATH=$ORACLE_HOME/lib
  export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
  export TMP=/tmp
  export TMPDIR=$TMP
  export PATH=$PATH:$ORACLE_HOME/bin
  --------Grid User-----切换到grid用户下-----
[grid@rhel_linux_asm ~]$ vim .bash_profile

  export ORACLE_SID=+ASM1
  export ORACLE_BASE=/u01/app/grid
  export ORACLE_HOME=/u01/app/11.2.0/grid
  export LD_LIBRARY_PATH=$ORACLE_HOME/lib
  export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
  export PATH=$ORACLE_HOME/bin:$PATH
  注意:另外一台数据库实例名须做相应修改:
  Oracle:export ORACLE_SID=rac2
  grid:export ORACLE_SID=+ASM2

  • 软件包的检查
  依据官方文档要求,Red Hat Enterprise Linux 5须安装如下软件包

  • binutils-2.17.50.0.6
  • compat-libstdc++-33-3.2.3
  • compat-libstdc++-33-3.2.3(32 位)
  • elfutils-libelf-0.125
  • elfutils-libelf-devel-0.125
  • elfutils-libelf-devel-static-0.125
  • gcc-4.1.2
  • gcc-c++-4.1.2
  • glibc-2.5-24
  • glibc-2.5-24(32 位)
  • glibc-common-2.5
  • glibc-devel-2.5
  • glibc-devel-2.5(32 位)
  • glibc-headers-2.5
  • ksh-20060214
  • libaio-0.3.106
  • libaio-0.3.106(32 位)
  • libaio-devel-0.3.106
  • libaio-devel-0.3.106(32 位)
  • libgcc-4.1.2
  • libgcc-4.1.2(32 位)
  • libstdc++-4.1.2
  • libstdc++-4.1.2(32 位)
  • libstdc++-devel 4.1.2
  • make-3.81
  • sysstat-7.0.2
  • unixODBC-2.2.11
  • unixODBC-2.2.11(32 位)
  • unixODBC-devel-2.2.11
  • unixODBC-devel-2.2.11(32 位)
  一般情况下除了compat的一些包没有安装外,其他的包都已经安装了,可以使用rpm –qa |grep 命令进行查询,注意一定要与操作系统版本相符
  rpm -qa | grep binutils-
  rpm -qa | grep compat-libstdc++-
  rpm -qa | grep elfutils-libelf-
  rpm -qa | grep elfutils-libelf-devel-
  rpm -qa | grep glibc-
  rpm -qa | grep glibc-common-
  rpm -qa | grep glibc-devel-
  rpm -qa | grep gcc-
  rpm -qa | grep gcc-c++-
  rpm -qa | grep libaio-
  rpm -qa | grep libaio-devel-
  rpm -qa | grep libgcc-
  rpm -qa | grep libstdc++-
  rpm -qa | grep libstdc++-devel-
  rpm -qa | grep make-
  rpm -qa | grep sysstat-
  rpm -qa | grep unixODBC-
  rpm -qa | grep unixODBC-devel-
DSC0004.png

  rpm -ivh compat-libstdc++-33-3.2.3-69.el6.i686.rpm --force --nodeps
  rpm -ivh unixODBC-* --force --nodeps
  rhel6 还应该安装一个包:compat-libcap1-1.10-1.x86_64.rpm

  • 关闭不需要的服务
  chkconfig autofs off
  chkconfig acpid off
  chkconfig sendmail off
  chkconfig cups-config-daemon off
  chkconfig cpus off
  chkconfig xfs off
  chkconfig lm_sensors off
  chkconfig gpm off
  chkconfig openibd off
  chkconfig pcmcia off
  chkconfig cpuspeed off
  chkconfig nfslock off
  chkconfig ip6tables off
  chkconfig rpcidmapd off
  chkconfig apmd off
  chkconfig sendmail off
  chkconfig arptables_jf off
  chkconifg microcode_ctl off
  chkconfig rpcgssd off
  chkconfig ntpd off

  • 配SSH互信,建立 ssh 等效性--11G不用配置
  虽然在安装软件的过程中,oracle 会自动配置 SSH 对等性,建议在安装软件之前手工配置。
  以oracle身份在每个节点执行
  为ssh和scp创建连接,检验是否存在:
  ls -l /usr/local/bin/ssh
  ls -l /usr/local/bin/scp
  不存在则创建
  /bin/ln -s /usr/bin/ssh /usr/local/bin/ssh
  /bin/ln -s /usr/bin/scp /usr/local/bin/scp
[iyunv@rac01 ~]# /bin/ln -s /usr/bin/ssh /usr/local/bin/ssh

[iyunv@rac01 ~]# /bin/ln -s /usr/bin/scp /usr/local/bin/scp

  为oracle用户配置SSH:
  生成用户的公匙和私匙,在每个节点上:
[iyunv@rac01 ~]# su – oracle

[oracle@rac01 ~]# mkdir ~/.ssh

[oracle@rac01 ~]#cd .ssh

[oracle@rac01 ~]# ssh-keygen -t rsa

[oracle@rac01 ~]# ssh-keygen -t dsa

  在节点1上,把所有节点的authorized_keys文件合成一个,再用这个文件覆盖各个节点.ssh下的同名文件:
[oracle@rac01 ~]# touch authorized_keys

[oracle@rac01 ~]# ssh rac01 cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys

[oracle@rac01 ~]# ssh rac02 cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys

[oracle@rac01 ~]# ssh rac01 cat /home/oracle/.ssh/id_dsa.pub >> authorized_keys

[oracle@rac01 ~]# ssh rac02 cat /home/oracle/.ssh/id_dsa.pub >> authorized_keys

[oracle@rac01 ~]# scp authorized_keys rac02:/home/oracle/.ssh/

  分别在每个节点上执行检验操作:
[oracle@rac01 ~]# ssh rac01 date

[oracle@rac01 ~]# ssh rac02 date

[oracle@rac01 ~]# ssh-agent $SHELL

[oracle@rac01 ~]# ssh-add

  为grid用户配置SSH:
  在每个节点上:
[iyunv@rac01 ~]# su – grid

[grid@rac01 ~]# mkdir ~/.ssh

[grid@rac01 ~]#cd .ssh

[grid@rac01 ~]# ssh-keygen -t rsa

[grid@rac01 ~]# ssh-keygen -t dsa

  在节点1上
  :
[grid@rac01 ~]# touch authorized_keys

[grid@rac01 ~]# ssh rac01 cat /home/grid/.ssh/id_rsa.pub >> authorized_keys

[grid@rac01 ~]# ssh rac02 cat /home/grid/.ssh/id_rsa.pub >> authorized_keys

[grid@rac01 ~]# ssh rac01 cat /home/grid/.ssh/id_dsa.pub >> authorized_keys

[grid@rac01 ~]# ssh rac02 cat /home/grid/.ssh/id_dsa.pub >> authorized_keys

[grid@rac01 ~]# scp authorized_keys rac02:/home/grid/.ssh/

  分别在每个节点上:
[grid@rac01 ~]# ssh rac01 date

[grid@rac01 ~]# ssh rac02 date

[grid@rac01 ~]# ssh-agent $SHELL

[grid@rac01 ~]# ssh-add

  --------------------------------------------------------------------------------------自己:
  为Oracle用户配置SSH:
  以oracle身份在每个节点执行以下代码
  su - oracle
  mkdir ~/.ssh
  cd .ssh
  ssh-keygen -t rsa
  ssh-keygen -t dsa
  cat *rsa.pub >> authorized_keys
  cat *dsa.pub >> authorized_keys
  然后在rac1下:
  ssh rac2 cat /home/oracle/.ssh/authorized_keys >> authorized_keys
  scp authorized_keys rac2:/home/oracle/.ssh/
  然后分别在每个节点上执行检验操作:
  ssh rac1 date
  ssh rac2 date
  ssh-agent $SHELL
  ssh-add
  为grid用户配置SSH:
  以grid身份在每个节点执行
  su - grid
  mkdir ~/.ssh
  cd ~/.ssh
  ssh-keygen -t rsa
  ssh-keygen -t dsa
  cat *rsa.pub >> authorized_keys
  cat *dsa.pub >> authorized_keys
  然后在rac1节点下执行:
  ssh rac2 cat /home/grid/.ssh/authorized_keys >> authorized_keys
  scp authorized_keys rac2:/home/grid/.ssh/
  然后分别在每个节点上执行检验操作:
  ssh rac1 date
  ssh rac2 date
  ssh rac1-priv date
  ssh rac2-priv date
  第二次执行时不再提示输入口令,并且可以成功执行命令,则表示 oracle 用户 SSH 对等性
  配置成功,至此,Oracle 用户 SSH 对等性配置完成!重复上述步骤,以 grid 用户配置对等性。
  ssh-agent $SHELL
  ssh-add
  注意: 该步骤可以不配置然后在安装的过程中有如下的界面可以来配置:
DSC0005.png


  • 配置NTP
  root用户下执行:

  • rac1执行
  A. sed -i 's/OPTIONS/#OPTIONS/g' /etc/sysconfig/ntpd
  B.
  cat >> /etc/sysconfig/ntpd << EOF
  OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"
  EOF
  C.
  mv /etc/ntp.conf /etc/ntp.confbak
  D.
  cat > /etc/ntp.conf << EOF
  restrict 0.0.0.0 mask 0.0.0.0 nomodify
  server 127.127.1.0
  fudge 127.127.1.0 stratum 10
  driftfile /var/lib/ntp/drift
  broadcastdelay 0.008
  authenticate no
  keys /etc/ntp/keys
  EOF

  • rac2执行
  A.
  sed -i 's/OPTIONS/#OPTIONS/g' /etc/sysconfig/ntpd
  B.
  cat >> /etc/sysconfig/ntpd << EOF
  OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"
  EOF
  C.
  mv /etc/ntp.conf /etc/ntp.confbak
  D.
  cat >> /etc/ntp.conf << XL
  restrict default kod nomodify notrap nopeer noquery
  restrict 182.168.8.0 mask 255.255.255.0 nomodify notrap
  restrict 127.0.0.1
  server 182.168.8.61
  server 127.127.1.0 # local clock
  fudge 127.127.1.0 stratum 10
  driftfile /var/lib/ntp/drift
  broadcastdelay 0.008
  authenticate no
  keys /etc/ntp/keys
  XL

  • 启动服务(双节点执行)
  #service ntpd restart
  #chkconfig ntpd on

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-422859-1-1.html 上篇帖子: oracle存储过程(返回列表的存储结合游标使用)总结 以及在java中的调用 下篇帖子: 『ORACLE』 DG切换主备库角色(11g)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表