美文网首页我爱编程
Centos6.5静默安装Oracle 10 g

Centos6.5静默安装Oracle 10 g

作者: 平凡的运维之路 | 来源:发表于2018-04-22 21:24 被阅读33次

    [TOC]

    安装基础服务

    • 安装说明

      • 有的云服务环境只能提供web的方式连接linux服务器,导致安装Oracle的时候不能使用Xstart进行图形化界面安装,所以只能使用静默的方式进行安装
    • 安装前准备

      • 需要把centos6.5的两张ISO镜像挂载到服务器本地磁盘上,进行本地yum源已经安装依赖,切记需要两张iso镜像光盘不然有问题
    • swap交换分区设置

    SWAP与RAM的大小配置关系
        1)、RAM为1-2GB时,SWAP大小建议为RAM大小的1.5倍
        2)、RAM为2-16GB时,SWAP大小建议与RAM大小相等
        3)、RAM大于16GB时,SWAP大小建议为16GB
        
    
    • 安装需要依赖的相关包
    yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc* gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make  gcc* libXp*  libXp.i686 libXt.i686 libXtst.i686    libXp-devel.i686 libXt-devel.i686 libXtst-devel.i686  
    
    
    • 修改系统参数

      • ln -s /lib/libc.so.6 /lib/libc.so.5
      • vim /etc/ld.so.conf 修改成如下
      include ld.so.conf.d/*.conf  /usr/X11R6/lib/
      
      • 修改Hosts
      192.168.127.1 oracle
      
      • vim /etc/sysconfig/network
      HOSTNAME= oracle
      
      • 重启网络服务
      service network restart 
      
      • 修改内核参数
      kernel.shmall = 2097152 
      kernel.shmmax = 2147483648 
      kernel.shmmni = 4096 
      kernel.sem = 250 32000 100 128 
      fs.file-max = 65536 
      net.ipv4.ip_local_port_range = 1024 65000 
      net.core.rmem_default = 1048576 
      net.core.rmem_max = 1048576 
      net.core.wmem_default = 262144 
      net.core.wmem_max = 262144
      
      • 刷新修改的内核参数
      sysctl -p
      
      • 修改oracle用户使用环境限制, vim /etc/security/limits.conf
      在# End of file 的上面的行上添加,#\*  为转义符
      \*                soft      nproc            2047
      \*                hard      nproc           16384
      \*                soft      nofile            1024
      \*                hard      nofile           65536
      
      • 修改登陆配置文件,编辑vim /etc/pam.d/login,在文件的最下面进行添加,#* 为转义符
      \* session required /lib/security/pam_limits.so
      \* session required pam_limits.so
      
      • 修改 /etc/profile 限制其他用户使用
      if [ $USER = "oracle" ]; then
      if [ $SHELL = "/bin/ksh" ]; then
          ulimit -p 16384
          ulimit -n 65536
      else
          ulimit -u 16384 -n 65536
      fi
      

    fi
    - 修改Linux 发行版本. 因为Oracle10G发行的时候, Centos6.5还没有发行. 所以必须修改,vim /etc/redhat-release
    redhat-4
    ```

    安装oracle

    • 基础设置

      ROOT用户,创建oracle用户:
      groupadd oinstall  创建主组 
      groupadd dba  创建副组
      useradd -g oinstall -G dba oracle  创建oracle用户并且赋予oinstall为主组dba为副组
      passwd oracle  修改密码oracle
      
      修改权限
      chown -R oracle:oinstall /home/oracle(不能执行)
      chmod -R 755 /home/oracle
      
      ORACLE用户建立目录
      su - oracle  切换oracle用户
      mkdir db_home  作为建oracle实例用的目录
      mkdir oracle10g  oracle安装目录
      mkdir db_files  建立db_files目录
      
    • Oracle环境变量设置

      umask 022
      export PATH 
      export ORACLE_BASE=/home/oracle/oracle10g
      export ORACLE_SID=ccod
      export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 
      export PATH=$ORACLE_HOME/bin:$PATH 
      export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib 
      export LC_CTYPE=en_US.UTF-8
      export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
      
      
    • 执行下面的命令使环境变量生效

      source .bash_profile
      
      
    • 上传Oracle安装文件和解压和设置权限

      10201_database_linux_x86_64.cpio.tar.gz
      p6810189_10204_Linux-x86-64.zip
      tar zxf  10201_database_linux_x86_64.cpio.tar.gz   &&  cpio -idmv < 10201_database_linux_x86_64.cpio  && mv  database  /home/oracle/ora10g
      chown -R oracle:oinstall /home/oracle/ora10g/database/
      

    编辑安装Oracle需要的应答文件

    • (1) 以root身份登录
    • (2) 静默模式(Silent)安装必须指定一个应答文件来完成安装过程所须的各类参数。
      • 在Oracle安装目录的response子目录里有enterprise.rsp、standard.rsp和custom.rsp三个应答文件,分别对应企业版、标准版和定制的安装。
    • (3) 以enterprise.rsp为例,用任意的文本编辑器打它,修改以下这些项目的值。
    安装Oracle软件
    • 配置enterprise.rsp文件

    • 编辑此文件 vi /home/oracle/ora10g/database/response/enterprise.rsp

      RESPONSEFILE_VERSION=2.2.1.0.0
      UNIX_GROUP_NAME="oinstall"
      ORACLE_HOME_NAME="OraDb10g_home1"
      ORACLE_HOME="/home/oracle/oracle10g/product/10.2.0/db_1"
      SHOW_INSTALL_PROGRESS_PAGE= true
      SHOW_END_OF_INSTALL_MSGS= true
      COMPONENT_LANGUAGES={"zh_CN"}   默认en
      s_nameForDBAGrp= "dba"                         如设置无效组,会出现权限不够错误
      s_nameForOPERGrp="dba"
      INSTALL_TYPE="EE"
      n_configurationOption=3                    安装类型(1为在安装后创建数据库, 2    为安装后创建一个自动存储管理实例, 3为只安装服务器软件),这里我选择3。
      RESTART_SYSTEM=false
      RESTART_REMOTE_SYSTEM=false
      说明:这几项要视情况而定比如说 UNIX_GROUP_NAME="oinstall" 和s_nameForDBAGrp=     "dba" s_nameForOPERGrp="dba"还有环境变量都要参照前面自己定义好的来
      
      
    • 静默安装

      ./runInstaller -silent -ignoreSysPrereqs -responseFile /home/oracle/ora10g/database/response/enterprise.rsp
      
    系统初始化
    • 以root用户登录

    • 运行一下脚本

      /home/oracle/ora10g/oraInventory/orainstRoot.sh
      /home/oracle/oracle10g/product/10.2.0/db_1/root.sh
      
    安装网络监听器
    • 已oracle用户登录

    • 没有网络监听器,客户端就无法通过网络连接oraclef服务器,则需要静默安装

    • 编辑Oracle安装目录里response子目录下的应答文件 netca.rsp, 修改以下项目:

    INSTALL_TYPE=""CUSTOM"" 安装的类型,这里我使用默认值
    LISTENER_NUMBER=1 监听器数量,这里我使用默认值
    LISTENER_NAMES={"LISTENER"} 监听器的名称列表,这里我使用默认值
    LISTENER_PROTOCOLS={"TCP;1521"} 监听器使用的通讯协议列表,这里我使用默认值
    LISTENER_START=""LISTENER"" 监听器启动的名称,这里我使用默认值
    ```

    • 然后运行 $ORACLE_HOME/bin/netca /silent /responseFile <应答文件的绝对路径>

      $ORACLE_HOME/bin/netca /silent /responseFile /home/oracle/oracle10g/database/response/netca.rsp
      
    • 修改监听启动配置

      1、使用oracle用户登录
      2、打开 $ORACLE_HOME/bin/dbstart,将
              ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
           改为
              ORACLE_HOME_LISTNER=$ORACLE_HOME
          否则网络监听器可能无法自动启动。
      
    安装oracle数据库实例
    • 修改/home/oracle/oracle10g/database/response/dbca.rsp
      OPERATION_TYPE = "createDatabase"
      GDBNAME = "oracle10g"
      SID = "ccod"
      TEMPLATENAME = "General_Purpose.dbc"   如不设置会出现“静默DBCA创建数据库时遭遇模板不存在问题”
      SYSPASSWORD = "oracle"
      SYSTEMPASSWORD = "oracle"
      CHARACTERSET = "ZHS16GBK"
      
      
    • 运行以下命令安装实例
      $ORACLE_HOME/bin/dbca -silent –responseFile /home/oracle/oracle10g/database/response/dbca.rsp -cloneTemplate
      
      
    修改Oracle启动配置文件/etc/oratab

    -以oracle用户登录

    • 然后编辑 /etc/oratab
      将<Oracle的SID>:<Oracle的主目录>:N
      修改为ora10g:/app/oracle/10g:Y
      使数据库实例能够自动启动。
      

    故障汇总

    连接oracle报错
    • ORA-28547:连接服务器失败
     [oracle@localhost admin]$  cat listener.ora
     
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = orcl10g)
          (ORACLE_HOME = /home/oracle/ora10g/product/10.2.0/db_1)
    #      (PROGRAM = extproc)           要注释掉,否则会出现“ORA-28547:连接服务器失败,可能是Net8管理错误”          
        )
      )
    
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
        )
      )
    
    #tnsnames文件
    
    [oracle@localhost admin]$ cat tnsnames.ora
    EXTPROC_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (CONNECT_DATA =
          (SERVICE_NAME = oracle10g)
        )
      )
    
    
    • 故障2
    ORA-01078: failure in processing system parameters
    LRM-00123: invalid character 0 found in the input file
    LRM-00109: could not open parameter file '/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora
    
       经查:pfile目录下无参数文件,SORACLE_HOME/dbs下无密码文件,flash_recovery_area下无相关实例文件
       解决:实例未创建成功,dbca重新创建实例即可,如果有实例情况下,则拷贝pfile下参数文件到dbs下并命名即可。
    
    
    • 故障3,ORA-01031: insufficient privileges
    [oracle@wz_oracle2 ~]$ cat enterprise.rsp | egrep -i "grp|group"
    UNIX_GROUP_NAME="dba"
    s_nameForDBAGrp="oracle"
    s_nameForOPERGrp="oracle"
    
    解决:
    
    [oracle@wz_oracle2 ~]$ cat $ORACLE_HOME/rdbms/lib/config.c
    /*  SS_DBA_GRP defines the UNIX group ID for adminstrative access.  */
    /*  Refer to the Installation and User's Guide for further information.  */
    #define SS_DBA_GRP "oracle"  /* 改成 dba */
    #define SS_OPER_GRP "oracle"  /* 改成 dba */
    char *ss_dba_grp[] = {SS_DBA_GRP, SS_OPER_GRP};
    
    [oracle@wz_oracle2 ~]$ relink all
    
    
    • 故障点3ORA-01031: insufficient privileges
    原因:system无法登陆,sys和其他普通登陆能正常登陆,经查是登陆验证问题
    
    解决:cat /home/oracle/ora10g/product/10.2.0/db_1/network/admin/sqlnet.ora
          SQLNET.AUTHENTICATION_SERVICES   不设置即可
    
    • 故障点4使用Oracle 10g的dbca.rsp文件静默创建数据库的时候遭遇模板不存在的问题
    [oracle@newadm database]$ dbca -silent -responseFile /home/oracle/database/response/dbca.rsp
    Template General Purpose does not exist. Please specify an existing template for database creation.
    
    解决:更改dbca.rsp文件中的General Purpose为 General_Purpose.dbc即可
        TEMPLATENAME = "General_Purpose.dbc"
    
    • 故障点5ORA-27125: unable to create shared memory segment
    发现问题和linux上的hugetbl有关。
    解决方法也很简单,首先检查oracle用户的组信息:
    
    [oracle@yans1 ~]$ id oracle
    uid=500(oracle) gid=502(oinstall) groups=502(oinstall),501(dba)
    
    [oracle@yans1 ~]$ more /proc/sys/vm/hugetlb_shm_group
    0
    
    下面用root执行下面的命令,将dba组添加到系统内核中:
    # echo 501 > /proc/sys/vm/hugetlb_shm_group
    
    然后启动数据库,问题消失。
    但以上这种方式在重启操作系统后失效, /proc/sys/vm/hugetlb_shm_group又变为了0,建议采用以下方式解决:
    加入vm.hugetlb_shm_group = 501 到/etc/sysctl.conf中来解决:
    
    # vi /etc/sysctl.conf
    加入如下的内容,其中501为dba组号,需要根据你实际的情况进行改变。
    vm.hugetlb_shm_group = 501
    
    # sysctl -p
    
    
    • 故障点6ORA-28547:连接服务器失败,可能是Net8管理错误
    将listener.ora中的(PROGRAM = extproc)这句注释掉就可以了
    
    

    相关文章

      网友评论

        本文标题:Centos6.5静默安装Oracle 10 g

        本文链接:https://www.haomeiwen.com/subject/urqhlftx.html