zoukankan      html  css  js  c++  java
  • oracle11grac 安装shell

    #!/bin/sh
    
    #http://www.idevelopment.info/data/Oracle/DBA_tips/Oracle11gRAC/CLUSTER_12.shtml#iSCSI
    SELFE_PRC=$0; export $SELFE_PRC
    service iptalbes  stop
    service ip6tables stop
    service ntpd stop
    service sendmail stop
    #iscsiadm -m node -p  172.16.1.70  -T iqn.openfiler:70 -l -d 10
    #iscsiadm -m discovery -t sendtargets -p 172.16.1.70:3260
    
    chkconfig iptables  off
    chkconfig ip6tables off
    chkconfig sendmail  off
    chkconfig ntpd      off
    rm /etc/ntp.conf -f
    mv /etc/ntp.conf to /etc/ntp.conf.org
    
    echo '#-------------------------------------------定义参数'
    
    RAC=rac1; export $RAC
    
    ASM_NAME='+ASM1'  ; export $ASM_NAME
    ORCL_NAME='orcl1' ; export $ORCL_NAME
    
    GATEWAY_IP=172.16.1.39; export $GATEWAY_IP
    
    RAC_IP1=172.16.1.31; export $RAC_IP1
    RAC_IP2=172.16.1.32; export $RAC_IP2
    RAC_IP3=172.16.1.33; export $RAC_IP3
    RAC_VIP_IP1=172.16.1.41; export $RAC_VIP_IP1
    RAC_VIP_IP2=172.16.1.42; export $RAC_VIP_IP2
    RAC_VIP_IP3=172.16.1.43; export $RAC_VIP_IP3
    RAC_PRIV_IP1=10.0.0.31; export $RAC_PRIV_IP1
    RAC_PRIV_IP2=10.0.0.32; export $RAC_PRIV_IP2
    RAC_PRIV_IP3=10.0.0.33; export $RAC_PRIV_IP3
    
    
    echo '#--------------------------------------------禁用SELINUX'
    sed -i s#SELINUX=enforcing#SELINUX=disabled#g#                         /etc/selinux/config
    
    
    
    echo '#--------------------------------------------修改DNS'
    cat >/etc/hosts<<EOF
    # Do not remove the following line, or various programs
    # that require network functionality will fail.
    127.0.0.1    localhost.localdomain localhost
    ::1          localhost6.localdomain6 localhost6
    $RAC_IP1 rac1
    $RAC_IP2 rac2
    $RAC_IP3 rac3
    
    $RAC_VIP_IP1 rac1-vip
    $RAC_VIP_IP2 rac2-vip
    $RAC_VIP_IP3 rac3-vip
    
    $RAC_PRIV_IP1 rac1-priv
    $RAC_PRIV_IP2 rac2-priv
    $RAC_PRIV_IP3 rac3-priv
    
    EOF
    
    echo '#---------------------------------------------修改HOSTNAME'
    
    cat >/proc/sys/kernel/hostname<<EOF
    $RAC
    EOF
    hostname $RAC
    
    echo '#---------------------------------------------------------'
    cat >/etc/resolv.conf<<EOF
    ; generated by /sbin/dhclient-script
    nameserver $GATEWAY_IP
    
    EOF
    
    cat >/etc/sysconfig/network<<EOF
    NETWORKING_IPV6=no
    HOSTNAME=$RAC
    GATEWAY=$GATEWAY_IP
    
    EOF
    
    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
    
    
    
    mkdir -p /u01/app/grid
    chown -R grid:oinstall  /u01/app/grid
    
    mkdir -p /u01/app/11.2.0/grid/product/db_1
    chown -R grid:oinstall  /u01/app/11.2.0
    
    mkdir -p /u01/app/oraInventory
    chown -R grid:oinstall  /u01/app/oraInventory
    
    
    mkdir -p /u01/app/oracle
    mkdir -p /u01/app/oracle/product/11.2.0/db_1
    chown -R oracle:oinstall  /u01/app/oracle
    
    
    
    echo '#--------------------------------------------------------修改用户密码passwd grid'
    echo "111111" | passwd grid   --stdin > /dev/null 2>&1
    echo "111111" | passwd oracle --stdin > /dev/null 2>&1
    
    
    chown -R grid:oinstall /usr/local/grid 
    chown -R oracle:oinstall /usr/local/database
    
    
    echo '#----------------------------------------------------------vi /etc/security/limits.conf'
    
    cat >>/etc/security/limits.conf<<EOF
    
    #ORACLE SETTING
    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
    
    EOF
    echo '#------------------------------------vi /etc/pam.d/login'
    
    echo 'session required pam_limits.so' >>/etc/pam.d/login
    
    echo '#------------------------------------ vi /etc/sysctl.conf'
    
    cat  >> /etc/sysctl.conf <<EOF
    
    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
    
    EOF
    
    sysctl -p
    
    #------------------------------------------------------修改profile
    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
    
    #--------------------------------------------------------修改 csh.login
    
    cat >> /etc/csh.login <<EOF
    if ( \$USER == "oracle" || \$USER == "grid" ) then 
        limit maxproc 16384
        limit descriptors 65536
    endif
    EOF
    
    
    
    
    echo '#------------------------------------------修改gird 用户的.bash_profile 文件:'
    
    cat  >> /home/grid/.bash_profile <<EOF
    
    # ---------------------------------------------------
    # ORACLE_SID
    # ---------------------------------------------------
    ORACLE_SID=$ASM_NAME; export ORACLE_SID
    
    # ---------------------------------------------------
    # JAVA_HOME
    # ---------------------------------------------------
    #JAVA_HOME=/usr/local/java; export JAVA_HOME
    
    # ---------------------------------------------------
    # ORACLE_BASE
    # ---------------------------------------------------
    ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
    
    # ---------------------------------------------------
    # ORACLE_HOME
    # ---------------------------------------------------
    ORACLE_HOME=/u01/app/11.2.0/grid; export ORACLE_HOME
    
    # ---------------------------------------------------
    # ORACLE_PATH
    # ---------------------------------------------------
    ORACLE_PATH=/u01/app/oracle/common/oracle/sql; export ORACLE_PATH
    
    # ---------------------------------------------------
    # SQLPATH
    # ---------------------------------------------------
    # Specifies the directory or list of directories that
    # SQL*Plus searches for a login.sql file.
    # ---------------------------------------------------
    # SQLPATH=/u01/app/common/oracle/sql; export SQLPATH
    
    # ---------------------------------------------------
    # ORACLE_TERM
    # ---------------------------------------------------
    ORACLE_TERM=xterm; export ORACLE_TERM
    
    # ---------------------------------------------------
    # NLS_DATE_FORMAT
    # ---------------------------------------------------
    NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"; export NLS_DATE_FORMAT
    
    # ---------------------------------------------------
    # TNS_ADMIN
    # ---------------------------------------------------
    TNS_ADMIN=\$ORACLE_HOME/network/admin; export TNS_ADMIN
    
    # ---------------------------------------------------
    # ORA_NLS11
    # ---------------------------------------------------
    ORA_NLS11=\$ORACLE_HOME/nls/data; export ORA_NLS11
    
    # ---------------------------------------------------
    # PATH
    # ---------------------------------------------------
    
    PATH=.:\${JAVA_HOME}/bin:\${PATH}:\$HOME/bin:\$ORACLE_HOME/bin
    PATH=\${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
    PATH=\${PATH}:/u01/app/common/oracle/bin
    export PATH
    
    # ---------------------------------------------------
    # LD_LIBRARY_PATH
    # ---------------------------------------------------
    
    LD_LIBRARY_PATH=\$ORACLE_HOME/lib
    LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:\$ORACLE_HOME/oracm/lib
    LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
    export LD_LIBRARY_PATH
    
    # ---------------------------------------------------
    # CLASSPATH
    # ---------------------------------------------------
    CLASSPATH=\$ORACLE_HOME/JRE
    CLASSPATH=\${CLASSPATH}:\$ORACLE_HOME/jlib
    CLASSPATH=\${CLASSPATH}:\$ORACLE_HOME/rdbms/jlib
    CLASSPATH=\${CLASSPATH}:\$ORACLE_HOME/network/jlib
    export CLASSPATH
    
    # ---------------------------------------------------
    # THREADS_FLAG
    # ---------------------------------------------------
    THREADS_FLAG=native; export THREADS_FLAG
    
    # ---------------------------------------------------
    # TEMP, TMP, and TMPDIR
    # ---------------------------------------------------
    export TEMP=/tmp
    export TMPDIR=/tmp
    
    # ---------------------------------------------------
    # UMASK
    # ---------------------------------------------------
    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
    
    
    echo '#-----------------------------oracle 用户配置文件ORACLE_HOSTNAME 请自行设置'
    # Oracle Settings oracle
    cat >> /home/oracle/.bash_profile<<EOF
    # ---------------------------------------------------
    # ORACLE_SID
    # ---------------------------------------------------
    ORACLE_SID=$ORCL_NAME; export ORACLE_SID
    
    # ---------------------------------------------------
    # ORACLE_UNQNAME
    # ---------------------------------------------------
    ORACLE_UNQNAME=racdb; export ORACLE_UNQNAME
    
    # ---------------------------------------------------
    # JAVA_HOME
    # ---------------------------------------------------
    #JAVA_HOME=/usr/local/java; export JAVA_HOME
    
    # ---------------------------------------------------
    # ORACLE_BASE
    # ---------------------------------------------------
    ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
    
    # ---------------------------------------------------
    # ORACLE_HOME
    # ---------------------------------------------------
    ORACLE_HOME=\$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
    
    # ---------------------------------------------------
    # ORACLE_PATH
    # ---------------------------------------------------
    ORACLE_PATH=/u01/app/common/oracle/sql; export ORACLE_PATH
    # SQLPATH=/u01/app/common/oracle/sql; export SQLPATH
    
    # ---------------------------------------------------
    # ORACLE_TERM
    # ---------------------------------------------------
    ORACLE_TERM=xterm; export ORACLE_TERM
    
    # ---------------------------------------------------
    # NLS_DATE_FORMAT
    # ---------------------------------------------------
    NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"; export NLS_DATE_FORMAT
    
    # ---------------------------------------------------
    # TNS_ADMIN
    # ---------------------------------------------------
    TNS_ADMIN=\$ORACLE_HOME/network/admin; export TNS_ADMIN
    
    # ---------------------------------------------------
    # ORA_NLS11
    # ---------------------------------------------------
    ORA_NLS11=\$ORACLE_HOME/nls/data; export ORA_NLS11
    
    # ---------------------------------------------------
    # PATH
    # ---------------------------------------------------
    PATH=.:\${JAVA_HOME}/bin:\${PATH}:\$HOME/bin:\$ORACLE_HOME/bin
    PATH=\${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
    PATH=\${PATH}:/u01/app/common/oracle/bin
    export PATH
    
    # ---------------------------------------------------
    # LD_LIBRARY_PATH
    # ---------------------------------------------------
    LD_LIBRARY_PATH=\$ORACLE_HOME/lib
    LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:\$ORACLE_HOME/oracm/lib
    LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
    export LD_LIBRARY_PATH
    
    # ---------------------------------------------------
    # CLASSPATH
    # ---------------------------------------------------
    CLASSPATH=\$ORACLE_HOME/JRE
    CLASSPATH=\${CLASSPATH}:\$ORACLE_HOME/jlib
    CLASSPATH=\${CLASSPATH}:\$ORACLE_HOME/rdbms/jlib
    CLASSPATH=\${CLASSPATH}:\$ORACLE_HOME/network/jlib
    export CLASSPATH
    
    # ---------------------------------------------------
    # THREADS_FLAG
    # ---------------------------------------------------
    THREADS_FLAG=native; export THREADS_FLAG
    
    # ---------------------------------------------------
    # TEMP, TMP, and TMPDIR
    # ---------------------------------------------------
    export TEMP=/tmp
    export TMPDIR=/tmp
    
    # ---------------------------------------------------
    # UMASK
    # ---------------------------------------------------
    
                 
    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
    
    echo '#------------------------------------------------------------ YUM 环境,安装需要的包'
    
    mkdir /mnt/cdrom -p
    mount /dev/cdrom /mnt/cdrom
    
    cat >/etc/yum.repos.d/mycdrom.repo<<EOF
    
    [Server]
    name=rhel6server
    baseurl=file:///mnt/cdrom/Server
    enable=1
    gpcheck=1
    gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
    #gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-oracle
    
    EOF
    
    
    #yum groupinstall -y "gnome desktop environment"
    #yum groupinstall -y "x window system"
    
    yum groupinstall -y "chinese support"
    yum install -y elfutils-libelf* gcc-* make* binutils* libaio* glibc* compat-libstdc++* libgcc* libstdc++* sysstat* unixODBC* ksh* expect* iscsi*
    
    
    echo '#---------------------------------------------------------ssh-keygen 环境'
    
    
    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'
    
    #  安装 ASM 支持包 
    
    rpm -ivh /mnt/hgfs/oracle11g/oracleasm-support-2.1.7-1.el5.x86_64.rpm
    rpm -ivh /mnt/hgfs/oracle11g/oracleasm-2.6.18-194.el5-2.0.5-1.el5.x86_64.rpm
    rpm -ivh /mnt/hgfs/oracle11g/oracleasmlib-2.0.4-1.el5.x86_64.rpm
    
    
    echo '#------------------------------------------------拷贝文件,并在RAC上自动执行'
    auto_scp () {
        expect -c "set timeout -1;
                    spawn scp -o StrictHostKeyChecking=no ${@:2};
                    expect {
                        *assword:* {send -- $1\r;
                                     expect { 
                                        *denied* {exit 1;}
                                        eof
                                     }
                        }
                        eof         {exit 1;}
                    }
                    " 
        return $?
    }
    
    auto_ssh () {
        expect -c "set timeout -1;
                    spawn ssh -o StrictHostKeyChecking=no $2 $3;
                    expect {
                        *assword:* {send -- $1\r;
                                     expect {
                                        *denied* {exit 2;}
                                        eof
                                     }
                        }
                        eof         {exit 1;}
                    }
                    "
        return $?
    }
    
    
    
    
    echo '#--------------------------------------------建立可执行文件'
    
    cat >/root/s0 <<EOF
    
    auto_ssh_copy_id () {
        expect -c "set timeout -1;
                    spawn ssh-copy-id -i \$1 \$2;
                    expect {
                        *(yes/no)* {send -- yes\r;exp_continue;}
                        *assword:* {send -- 111111\r;exp_continue;}
                        eof        {exit 0;}
                    }";
    }
    
    auto_ssh_copy_id /home/grid/.ssh/id_rsa.pub grid@rac1
    auto_ssh_copy_id /home/grid/.ssh/id_rsa.pub grid@rac2
    auto_ssh_copy_id /home/grid/.ssh/id_rsa.pub grid@rac3
    
    auto_ssh_copy_id /home/oracle/.ssh/id_rsa.pub oracle@rac1
    auto_ssh_copy_id /home/oracle/.ssh/id_rsa.pub oracle@rac2
    auto_ssh_copy_id /home/oracle/.ssh/id_rsa.pub oracle@rac3
    
    su - grid   -c 'ssh -o StrictHostKeyChecking=no rac1 date'
    su - grid   -c 'ssh -o StrictHostKeyChecking=no rac2 date'
    su - grid   -c 'ssh -o StrictHostKeyChecking=no rac3 date'
    
    su - oracle   -c 'ssh -o StrictHostKeyChecking=no rac1 date'
    su - oracle   -c 'ssh -o StrictHostKeyChecking=no rac2 date'
    su - oracle   -c 'ssh -o StrictHostKeyChecking=no rac3 date'
    
    EOF
    
    chmod 755 /root/s0
    
    if [ $RAC = 'rac1' ] ;  then
    
    
      rm /root/s2 -f
      rm /root/s3 -f
    
      cp /root/$SELFE_PRC /root/s2
      cp /root/$SELFE_PRC /root/s3
    
      sed -i s#RAC=rac1#RAC=rac2#g#      /root/s2
      sed -i s#RAC=rac1#RAC=rac3#g#      /root/s3
    
      sed -i s#ASM1#ASM2#g#      /root/s2
      sed -i s#ASM1#ASM3#g#      /root/s3
    
      sed -i s#orcl1#orcl2#g#      /root/s2
      sed -i s#orcl1#orcl3#g#      /root/s3
      
      
      chmod 755 /root/s?;
     
    
      auto_scp 111111 /root/s2  root@$RAC_IP2:/root/s2
      auto_ssh 111111 root@$RAC_IP2 /root/s2
    
      auto_scp 111111 /root/s3  root@$RAC_IP3:/root/s3
      auto_ssh 111111 root@$RAC_IP3 /root/s3
    
    
      echo '#-------------------------------------------配制 	SSH-KEYGEN'
      auto_ssh 111111 root@$RAC_IP1 /root/s0
      auto_ssh 111111 root@$RAC_IP2 /root/s0
      auto_ssh 111111 root@$RAC_IP3 /root/s0  
    
      rm /root/s2 -f
      rm /root/s3 -f
      rm /root/s0 -f
    fi
    

      

  • 相关阅读:
    JavaScript之DOM文档对象模型--对HTML元素的增删操作
    JavaScript之DOM文档对象模型--对HTML元素的访问操作
    JavaScript之BOM浏览器对象模型-history
    SpringBoot配置自定义日期参数转换器
    SpringMVC参数绑定(未完待续)
    一个简单的SpringBoot入门程序
    四种JavaEE架构简介
    浏览器禁用Cookie后的Session处理
    基础回顾: 关于Session的一些细节
    使用Cookie实现用户商品历史浏览记录
  • 原文地址:https://www.cnblogs.com/yuchunju/p/2530896.html
Copyright © 2011-2022 走看看