zoukankan      html  css  js  c++  java
  • oracle11gRAC安装过程

     硬件要求

    三台node节点服务器

    一台DNS解析服务器

    一台openfile共享存储服务器

    配置好openfile和DNS后操作如下。

    本文以2个节点为例

    cd /usr/local
    unzip linux_11gR2_grid.zip
    unzip linux.x64_11gR2_database_1of2.zip
    unzip linux.x64_11gR2_database_2of2.zip
    
    rpm -ivh --nodeps oracleasmlib-2.0.4-1.el5.x86_64.rpm
    rpm -ivh --nodeps oracleasm-support-2.1.7-1.el5.x86_64.rpm
    rpm -ivh --nodeps oracleasm-2.6.18-194.el5-2.0.5-1.el5.x86_64.rpm
    rpm -ivh --nodeps oracleasm-2.6.18-194.el5-debuginfo-2.0.5-1.el5.x86_64.rpm
    rpm -ivh --nodeps oracleasm-2.6.18-194.el5debug-2.0.5-1.el5.x86_64.rpm
    rpm -ivh --nodeps oracleasm-2.6.18-194.el5xen-2.0.5-1.el5.x86_64.rpm
    rpm -ivh --nodeps openmotif21-2.1.30-11.RHEL5.s390.rpm
    
    重要//需要配置gmdsetup
    
    (6)///每台机子都要修改
    [root@localhost named]# vim /etc/resolv.conf
    nameserver 192.168.10.252
    更改resolv.conf文件之后就可以进行解析.///每台机子都要修改
    
    
    [root@localhost named]# host www.scan.com
    www.scan.com has address 192.168.10.240
    
    [root@localhost named]#nslookup
    > www.scan.com
    
    
    
    
    (1)光驱挂到本地目录
    		mkdir -p /mnt/cdrom
    		mount /dev/cdrom /mnt/cdrom
    (2)配置本地源
    		vim /etc/yum.repos.d/mycdrom.repo
    
    [Server]
    name=rhel6server
    baseurl=file:///mnt/cdrom/Server
    enable=1
    gpcheck=1
    gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
    
      //不能加空格,全部顶格写
    
    软件安装
    yum install xxxxxxx
    
    (3)安装中文包
    yum install -y m17n-db-common-cjk* m17n-db-chinese* fonts-ISO8859-2-75dpi*
    
    vim /etc/sysconfig/i18n
    LANG="zh_CN.UTF-8"
    
    
    重启系统验证 ,还可以直接 ctrl+alt+backspace
    
    xshell 设置语言为GBK,不然出现乱码
    
    (4)rac所需软件包
    expect是运行此程序所需的包,不是oracle
    yum install -y expect* iscsi* binutils* compat-libstdc++* expat* elfutils-libelf* gcc* glibc* ksh* libgcc*
    yum install -y pdksh* libgomp* compat-db* libXp* libaio* cpp* setarch* sysstat* unixODBC* libstdc++* make-3*
    
    (5)检查网络接口并设定网络地址
    [root@localhost ~]#ifconfig
    节点  接口  主机名 				ip  					描述
    1     eth0   rac1			192.168.10.245			公网,Public IP
    1     eth1   rac1-priv		192.168.101.101			内网,PRIVATE IP
    1     eth1   rac1-vip		192.168.10.247  		VIP,浮动ip地址,不需要手动设置
    2     eth0   rac2			192.168.10.246
    2     eth1   rac2-priv		192.168.100.102
    2	  eth1   rac2-vip		192.168.10.250
    
    检查每台主机有2个网络接口eth0和eth1对应的ip是正确的。
    eth1不需要设置网关。
    按照网络规划,为eth0设定好公共ip,为eth1设定好心跳ip,浮动ip地址不需要手动设置。
    编辑主机名解析
    编辑两台机器的vim /etc/hosts文件如下:
    [root@localhost ~]# vim /etc/hosts
    127.0.0.1        localhost.localdomain localhost
    192.168.10.245	 rac1
    192.168.10.246	 rac2
    192.168.10.247	 rac3
    192.168.100.101	 rac1-priv
    192.168.100.102	 rac2-priv
    192.168.100.103	 rac3-priv
    192.168.10.242	 rac1-vip  //空地址
    192.168.10.243	 rac2-vip
    192.168.10.244	 rac3-vip
    
    
    
    修改主机名称,在所有节点执行
    vim /etc/sysconfig/network
    NETWORKING=yes
    NETWORKING_IPV6=no
    HOSTNAME=rac1
    
    (6)	创建用户和组
    
    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  -u 501 -g oinstall -G dba,asmdba,oper oracle
    useradd  -u 502 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
    
    mkdir -p /oracle/app/
    chown -R grid:oinstall /oracle/app/
    chmod -R 775 /oracle/app/
    
    mkdir -p /oracle/app/oraInventory
    chown -R grid:oinstall /oracle/app/oraInventory
    chmod -R 775 /oracle/app/oraInventory
    
    mkdir -p /oracle/app/11.2.0/grid/product/db_1
    chown -R grid:oinstall /oracle/app/11.2.0/grid/product/db_1
    chmod -R 775 /oracle/app/11.2.0/grid/product/db_1
    
    mkdir -p /oracle/app/grid
    chown -R grid:oinstall /oracle/app/grid
    chmod -R 775 /oracle/app/grid
    
    mkdir -p /oracle/app/oracle
    mkdir -p /oracle/app/oracle/product/11.2.0/db_1
    chown -R oracle:oinstall /oracle/app/oracle
    chmod -R 775 /oracle/app/oracle
    
    #-----passwd grid
    echo "111111" | passwd grid   --stdin > /dev/null 2>&1
    
    #-----passwd oracle
    echo "111111" | passwd oracle --stdin > /dev/null 2>&1
    
    
    chown -R grid:oinstall /usr/local/grid
    chown -R oracle:oinstall /usr/local/database
    
    
    
    (7)修改环境变量
    (7.1)修改grid用户环境变量
    
    [root@rac1 ~]# vim /home/grid/.bash_profile
    TMP=/tmp; export TMP
    TMPDIR=$TMP; export TMPDIR
    ORACLE_SID=+ASM1; export ORACLE_SID
    ORACLE_BASE=/oracle/app/grid; export ORACLE_BASE
    ORACLE_HOME=/oracle/app/11.2.0/grid/product/db_1; export ORACLE_HOME
    NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
    THREADS_FLAG=native; export THREADS_FLAG
    PATH=$ORACLE_HOME/bin:$PATH; export PATH
    THREADS_FLAG=native; export THREADS_FLAG
    PATH=$ORACLE_HOME/bin:$PATH; export PATH
    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
    
    #  这里注意: 测试发现安装RAC的时候, grid用户的ORACLE_BASE不能包含ORACLE_HOME,
    #  比如  /u01/grid ,   /u01/grid/11.2  就不行。
    使配置文件生效,同样在其他节点的Grid用户.bash_profile 中加入,
    并注意修改 ORACLE_SID=+ASM2
    
    [root@rac1 asm]# source /home/grid/.bash_profile
    
    
    (7.2)修改oracle用户环境变量
    
    TMP=/tmp; export TMP
    TMPDIR=$TMP; export TMPDIR
    ORACLE_BASE=/oracle/app/oracle; export ORACLE_BASE
    ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
    ORACLE_SID=racdb1; export ORACLE_SID
    ORACLE_TERM=xterm; export ORACLE_TERM
    PATH=/usr/sbin:$PATH; export PATH
    PATH=$ORACLE_HOME/bin:$PATH; export PATH
    LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
    CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
    export CLASSPATH
    NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
    NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG
    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
    
    使配置文件生效,同样在其他节点的oracle用户.bash_profile 中加入,
    并注意修改 ORACLE_SID=racdb2
    
    
    
    
    
    (8)修改系统参数
    在所有节点都执行
    cat >> /etc/profile <<EOF
    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
    EOF
    (8.1)[root@localhost ~]vim /etc/sysctl.conf
    	添加
    fs.aio-max-nr = 1048576
    fs.file-max = 6815744
    kernel.shmall = 2097152
    kernel.shmmax = 536870912
    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
    保存后执行下面的命令让配置生效:
    sysctl -p
    
    (8.2)vim /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
    
    (8.3)vim /etc/pam.d/login
    
    session required pam_limits.so
    
    
    (8.4)vim /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
    
    (8.5)vi /etc/csh.login
    if ( $USER = "oracle" || $USER = "grid" ) then
    limit maxproc 16384
    limit descriptors 65536
    endif
    EOFCSH
    
    
    手动
    (9)建立oracle,grid等效用户
    (9.1)首先两个节点间互ping,要确定是通的
    [root@rac1 asm]# ping rac2
    [root@rac1 asm]# ping rac2-priv
    
    rm -f /home/oracle/.ssh/*;
    rm -f /home/grid/.ssh/*;
    
    su - grid   -c 'ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ""'
    su - oracle -c 'ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ""'
    
    su - grid   -c 'cp /home/grid/.ssh/id_rsa.pub   /home/grid/.ssh/authorized_keys'
    su - oracle -c 'cp /home/oracle/.ssh/id_rsa.pub /home/oracle/.ssh/authorized_keys'
    
    节点rac2,3同上,相互复制
    
    
    
    (9.4)验证oracle用户等效性,在所有节点执行
    [oracle@rac1 ~]$ ssh rac1 date
    [oracle@rac1 ~]$ ssh rac2 date
    [oracle@rac1 ~]$ ssh rac1-priv date
    [oracle@rac1 ~]$ ssh rac2-priv date
    
    (9.5)验证grid用户等效性
    [grid@rac1 ~]$ ssh rac1 date
    [grid@rac1 ~]$ ssh rac2 date
    同上
    
    (10)集群时间同步服务
    要停用 NTP 服务,必须停止当前的 ntpd 服务,从初始化序列中禁用该服务,并删除 ntp.conf 文件。
    当安装程序发现 NTP 协议处于非活动状态时,安装集群时间同步服务将以活动模式自动进行安装并通过所有节点的时间。如果发现配置了 NTP,则以观察者模式启动集群时间同步服务,Oracle Clusterware 不会在集群中进行活动的时间同步。 
    service ntpd stop
    chkconfig  ntpd  off
    mv /etc/ntp.conf /etc/ntp.conf.original
    rm /var/run/ntpd.pid
    rm -f /etc/ntp.conf
    
    
     
    (11)[root@rac3 ~]# cat /proc/meminfo |grep MemTotal
    MemTotal:      2911172 kB
    [root@rac3 ~]# cat /proc/meminfo | grep SwapTotal
    SwapTotal:     6094840 kB
    If you have less than 4GB of memory (between your RAM and SWAP), you can add temporary swap space by creating a temporary swap file
    dd if=/dev/zero of=tempswap bs=1k count=500000
    chmod 600 tempswap
    mke2fs tempswap 
    mkswap tempswap
    swapon tempswap
    
    (12)配置ASM
    (12.3)磁盘分区。在节点1完成
    fdisk /dev/sdb sdc sdd
    partprobe
    fdisk -l
    
    (12.1)初始化 asmlib,在所有节点执行
    
    [root@rac1 ~]# oracleasm configure -i
    Configuring the Oracle ASM library driver.
    Default user to own the driver interface [grid]: grid
    Default group to own the driver interface [asmadmin]: asmadmin
    Start Oracle ASM library driver on boot (y/n) [y]: y
    Scan for Oracle ASM disks on boot (y/n) [y]: y
    Writing Oracle ASM library driver configuration: done
    
    
    (12.2)ASMlib加载到内核,在所有节点执行
    [root@rac2 ~]# oracleasm init
    
    (12.3)创建 asm 磁盘,在节点1执行
    [root@rac1 by-path]# oracleasm createdisk CRSVOL1 /dev/sdb1
    Writing disk header: done
    Instantiating disk: done
    [root@rac1 by-path]# oracleasm createdisk DATAVOL1 /dev/sdc1
    Writing disk header: done
    Instantiating disk: done
    [root@rac1 by-path]# oracleasm createdisk FRAVOL1 /dev/sdd1
    Writing disk header: done
    Instantiating disk: done
    
    [root@rac1 ~]# /usr/sbin/oracleasm listdisks
    
    在节点2,3执行扫描,识别asm盘
    
    [root@rac2 ~]# /usr/sbin/oracleasm scandisks
    
    
    (13)安装cvuqdisk软件包(在所有节点执行)
    
    cvuqdisk软件包用于发现共享存储,在grid 安装软件的rpm目录中,
    cd /usr/local/grid/rpm/
    [root@rac2 rpm]# export CVUQDISK_GRP=oinstall
    [root@rac2 rpm]# rpm -ivh cvuqdisk-1.0.7-1.rpm
    
    
    //问题!!!!(13)安装grid前检查(在所有节点执行)
    [root@rac1 rpm]# su - grid
    [grid@rac1 ~]$ cd /usr/local/grid/
    [grid@rac1 grid]$ ./runcluvfy.sh  stage -pre crsinst -fixup -n rac1,rac2,rac3 -verbose
    [grid@rac1 grid]$./runcluvfy.sh stage -post hwos -n rac1,rac2,rac3 -verbose
    
    (14)安装Grid Infrastructure
     登陆到grid 用户,执行安装文件,在节点1执行;
    
    [grid@rac1 grid]$ ./runInstaller
    
    在安装后
    (1)确认 ctssd 处于活动状态,请作为网格安装所有者 (grid) 输入以下命令: 
    [grid@rac01 ~]$ crsctl check ctss 
    (2)检查 Clusterware 资源
    [grid@rac01 ~]$crs_stat -t -v
    (3)检查集群节点
    [grid@rac01 ~]$olsnodes -n
    (4)检查两个节点上的 Oracle TNS 监听器进程 (在各节点测试)
    [grid@rac01 ~]$srvctl status listener
    [grid@rac01 ~]$ps -ef | grep lsnr | grep -v 'grep' | grep -v 'ocfs' | awk '{print $9}'
    
    (5)确认针对 Oracle Clusterware 文件的 Oracle ASM 功能
    确认当前正在运行已安装的 Oracle ASM
    [grid@rac01 ~]$srvctl status asm -a
    
    检查 Oracle 集群注册表 (OCR):
    [grid@racnode1 ~]$ocrcheck
    
    检查表决磁盘:
    [grid@racnode1 ~]$crsctl query css votedisk
    
    
    
    
    (15)为数据和快速恢复区创建 ASM 磁盘组:
    [grid@racnode1 ~]$asmca
    
    
    
    
    
    (16)安装oracle软件
    以oracle用户登录到节点1
    [oracle@rac1 ~]$ cd /usr/local/database/
    [oracle@rac1 database]$ ./runInstaller
    
    (17)创建集群数据库
    使用dbca创建,创建之前确保已安装的所有服务(Oracle TNS 监听器、Oracle Clusterware 进程等)正在运行。
    
    [grid@rac1 ~]$ crs_stat -t -v
    
    [oracle@rac1 database]$ dbca
    

      

  • 相关阅读:
    数组的简单操方法
    Java Script 流程控制语句(if判断、switch选择和循环)
    HTML,表单
    CSS盒子定位
    CSS基础选择器简单介绍
    java操作redis
    ios选择城市
    格式化java对象为json
    java冒泡排序法
    mongoDB group分组
  • 原文地址:https://www.cnblogs.com/yuchunju/p/2530892.html
Copyright © 2011-2022 走看看