美文网首页Oracle数据库
CentOS 7下Oracle 12C 无图形界面静默安装

CentOS 7下Oracle 12C 无图形界面静默安装

作者: 火鸡不肥 | 来源:发表于2019-12-14 17:27 被阅读0次

    一、安装环境
    二、安装包下载
    三、环境配置
    四、安装及配置

    文章参考链接

    一、安装环境

    以下安装环境是在虚拟机测试环境,仅供参考

    操作系统:CentOS 7
    内存:4G
    CPU:单核
    硬盘:50G
    交换空间:4G

    二、安装包下载

    下载地址

    三、环境配置

    1. 关闭防火墙

      # systemctl stop firewalld.service --关闭防火墙
      
      # systemctl disable firewalld.service -- 禁止防火墙开机启动
      
    2. 关闭selinux

      # setenforce 0
      
      # getenforce
      Permissive
      
      # vim /etc/selinux/config
      文件中设置SELINUX=disabled
      
    3. 修改host(可省略)

      # echo "10.0.0.40   huojibufei-oracle" >> /etc/hosts
      
      # cat /etc/hosts
      
      127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
      ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
      10.0.0.40   huojibufei-oracle
      
    4. 安装必要的依赖包

      Packages for Oracle Linux 7 and Red Hat Enterprise Linux 7

      The following packages (or later versions) must be installed:

      binutils-2.23.52.0.1-12.el7.x86_64 
      compat-libcap1-1.10-3.el7.x86_64 
      gcc-4.8.2-3.el7.x86_64 
      gcc-c++-4.8.2-3.el7.x86_64 
      glibc-2.17-36.el7.i686 
      glibc-2.17-36.el7.x86_64 
      glibc-devel-2.17-36.el7.i686 
      glibc-devel-2.17-36.el7.x86_64 
      ksh
      libaio-0.3.109-9.el7.i686 
      libaio-0.3.109-9.el7.x86_64 
      libaio-devel-0.3.109-9.el7.i686 
      libaio-devel-0.3.109-9.el7.x86_64 
      libgcc-4.8.2-3.el7.i686 
      libgcc-4.8.2-3.el7.x86_64 
      libstdc++-4.8.2-3.el7.i686 
      libstdc++-4.8.2-3.el7.x86_64 
      libstdc++-devel-4.8.2-3.el7.i686 
      libstdc++-devel-4.8.2-3.el7.x86_64 
      libXi-1.7.2-1.el7.i686 
      libXi-1.7.2-1.el7.x86_64 
      libXtst-1.2.2-1.el7.i686 
      libXtst-1.2.2-1.el7.x86_64 
      make-3.82-19.el7.x86_64 
      sysstat-10.1.5-1.el7.x86_64
      
      # yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686
      
      # rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
      
    5. 创建用户和组

      # groupadd oinstall
      # groupadd dba
      
      # useradd -g oinstall -G dba oracle
      # passwd oracle
      # id oracle
      uid=1000(oracle) gid=1000(oinstall) 组=1000(oinstall),1001(dba)
      
    6. 修改内核参数(根据需要修改 此为32G内存)

      vim /etc/sysctl.conf

      追加

      fs.aio-max-nr=1048576
      fs.file-max=6815744
      kernel.shmall=8388608
      kernel.shmmax=34359738367
      kernel.sem=250 32000 100 128
      kernel.shmmni=4096
      kernel.panic_on_oops=1
      net.core.rmem_default=262144
      net.core.rmem_max=4194304
      net.core.wmem_default=262144
      net.core.wmem_max=1048576
      net.ipv4.conf.all.rp_filter=2
      net.ipv4.conf.default.rp_filter=2
      fs.aio-max-nr=1048576
      net.ipv4.ip_local_port_range=9000 65500
      

    参数说明(一脸懵逼)

    fs.aio-max-nr:
        此参数限制并发未完成的请求,应该设置避免I/O子系统故障。
    fs.file-max:
        该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量。
    kernel.shmall:
        该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB /4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求.
    kernel.shmmax:
        是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。至于导致系统下降的主要原因为在实例启动以及ServerProcess创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低(在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响),但是其他时候都不会有影响。
    官方建议值:
        32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。建议值为多于内存的一半,所以如果是32为系统,一般可取值为4294967295。
        64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,例如,如果为12GB物理内存,可取1210241024*1024-1=12884901887。
    kernel.shmmni:
        该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。
    kernel.sem:
        以kernel.sem = 250 32000 100 128为例:
    
        250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。
    
        32000是参数semmns的值,表示系统内可允许的信号量最大数目。
    
        100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。
    
        128是参数semmni的值,表示系统信号量集合总数。
    
    net.ipv4.ip_local_port_range:
        表示应用程序可使用的IPv4端口范围。
    net.core.rmem_default:
        表示套接字接收缓冲区大小的缺省值。
    net.core.rmem_max:
        表示套接字接收缓冲区大小的最大值。
    net.core.wmem_default:
        表示套接字发送缓冲区大小的缺省值。
    net.core.wmem_max:
        表示套接字发送缓冲区大小的最大值。
    

    使配置文件生效

    sysctl -p

    1. 修改配置

      vim /etc/security/limits.conf

      追加

      oracle soft nproc 2047
      oracle hard nproc 16384
      oracle soft nofile 1024
      oracle hard nofile 65536
      

      第1行是设置进程数软限制
      第2行是设置进程数硬限制
      第3行是设置文件数软限制
      第4行是设置文件数硬限制

      vim /etc/pam.d/login

      追加

      session required /lib64/security/pam_limits.so
      
      session required pam_limits.so
      

      vim /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
      

      source /etc/profile

    2. 挂载硬盘

      ·dd if=/dev/zero of=/var/swap bs=1024 count=8192000·添加swap

      fdisk /dev/sdb
      n p 1 默认 默认 w
      vim /etc/fstab
      追加
      
      mount -a
      
      df -h查看
      
    1. 创建数据库目录

      # mkdir -p /data/oracle  
      # chown -R oracle:oinstall /data/oracle/  
      # chmod -R 775 /data/oracle/
      
    2. 配置oracle用户

    su - oracle

    vim ~/.bash_profile

    追加

    export ORACLE_BASE=/data/oracle/oracIns
    export ORACLE_SID=orcl
    

    source ~/.bash_profile

    四、安装及配置

    1. 上传Oracle安装包

      mkdir /home/oracle/oradb

    2. 安装unzip

      su root

      rpm -ivh unzip-6.0-20.el7.x86_64.rpm

      su - oracle

      unzip -d /home/oracle/oradb/ /opt/oracle12cR2_linux64.zip

    3. 复制模板

      cd /home/oracle
      mkdir etc
      cp /home/oracle/oradb/database/response/* /home/oracle/etc
      

      su root

      chmod -R 700 /home/oracle/etc/*.rsp

    4. 编辑文件内容

      su - oracle

      vim /home/oracle/etc/db_install.rsp

      找出以下项,根据个人实际情况修改(还是一脸懵逼)

      oracle.install.option=INSTALL_DB_SWONLY // 安装类型  
      UNIX_GROUP_NAME=oinstall // 安装组  
      INVENTORY_LOCATION=/data/oracle/oraInventory //INVENTORY目录(不填就是默认值)  
      ORACLE_HOME=/data/oracle/oracIns/product/12/db_1
      ORACLE_BASE=/data/oracle/oracIns
      oracle.install.db.InstallEdition=EE     // 企业版本  
      oracle.install.db.OSDBA_GROUP=dba
      oracle.install.db.OSOPER_GROUP=oinstall  
      oracle.install.db.OSBACKUPDBA_GROUP=oinstall  
      oracle.install.db.OSDGDBA_GROUP=oinstall  
      oracle.install.db.OSKMDBA_GROUP=oinstall  
      oracle.install.db.OSRACDBA_GROUP=oinstall  
      oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //数据库类型  
      oracle.install.db.config.starterdb.globalDBName=orcl  
      oracle.install.db.config.starterdb.SID=orcl  
      oracle.install.db.config.starterdb.memoryLimit=81920 //自动管理内存的内存(M)  
      oracle.install.db.config.starterdb.password.ALL=oracle//设定所有数据库用户使用同一个密码  
      SECURITY_UPDATES_VIA_MYORACLESUPPORT=false  
      DECLINE_SECURITY_UPDATES=true
      
    5. 开始安装

      cd /home/oracle/oradb/database

      ./runInstaller -ignoreSysPrereqs -ignorePrereq -waitforcompletion -showProgress -silent -responseFile /home/oracle/etc/db_install.rsp


      su root

      /data/oracle/oraInventory/orainstRoot.sh

      /data/oracle/oracIns/product/12/db_1/root.sh

    6. 修改oracle用户环境变量

      su - oracle

      vim ~/.bash_profile

      export ORACLE_BASE=/data/oracle/oracIns
      export ORACLE_SID=orcl
      export ORACLE_PID=oral12
      #export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
      export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
      export ORACLE_HOME=$ORACLE_BASE/product/12/db_1
      export PATH=$PATH:$ORACLE_HOME/bin
      export LANG="zh_CN.UTF-8"
      export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
      export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
      

      配置监听

      cd /home/oracle/etc/

      netca /silent /responsefile /home/oracle/etc/netca.rsp

      lsnrctl start

      若有报错 参照此处手动创建listen配置文件

      vim /data/oracle/oracIns/product/12/db_1/network/admin/listener.ora
      
      SID_LIST_LISTENER =
        (SID_LIST =
          (SID_DESC =
            (GLOBAL_DBNAME = orcl)
            (ORACLE_HOME = /data/oracle/oracIns/product/12/db_1)
            (SID_NAME = orcl)
          )
        )
      
      LISTENER =
        (DESCRIPTION_LIST =
          (DESCRIPTION =
            (ADDRESS = (PROTOCOL = TCP)(HOST = huojibufei-oracle)(PORT = 1521))
            (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
          )
        )
      
    7. 修改静默建库文件

      vim /home/oracle/etc/dbca.rsp

      responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0  
      gdbName=orcl  
      sid=orcl  
      databaseConfigType=SI  
      createAsContainerDatabase=true  
      numberOfPDBs=1  
      pdbName=orclpdb  
      templateName=/data/oracle/oracIns/product/12/db_1/assistants/dbca/templates/General_Purpose.dbc  
      emExpressPort=5500  
      omsPort=0  
      characterSet=ZHS16GBK  
      listeners=LISTENER  
      memoryPercentage=40  
      automaticMemoryManagement=false  
      totalMemory=0
      

      执行静默建库

      dbca -silent -createDatabase -responseFile /home/oracle/etc/dbca.rsp

      ·dbca -silent -deleteDatabase -sourcedb orcl -sid orcl·

      [oracle@huojibufei etc]$ dbca -silent -createDatabase  -responseFile  /home/oracle/etc/dbca.rsp
      输入 SYS 用户口令: 
      
      输入 SYSTEM 用户口令: 
      
      输入 PDBADMIN 用户口令: 
      
    8. 切换PDB

      sqlplus / as sysdba
      
      startup
      
      show con_name;
      
      show pdbs;
      
      # 切换容器
      alter session set container=ORCLPDB;
      
      - startup(如果pdb容器为mount状态,startup一下)
      - 可以让CDB重启后,pdb维持其关机前的状态
          - alter pluggable database ORCLPDB save state;
          - alter pluggable database ORCLPDB discard state;
      
      # 创建用户及赋权
      create user huojibufei identified by huojibufei;
      
      grant connect, resource to huojibufei;
      grant create view to huojibufei;
      # 表空间权限
      grant unlimited tablespace to huojibufei;
      
      select username from dba_users where INHERITED='NO';
      
      # 查看监听状态
      lsnrctl status
      
      
    9. 修改字符集为gbk

      su - oracle
      sqlplus / as sysdba
      select * from v$version;
      shutdown immediate
      startup mount
      
      alter session set sql_trace=true; 
      alter system enable restricted session; 
      alter system set job_queue_processes=0; 
      alter system set aq_tm_processes=0;
      alter database open;
      alter database character set internal_use ZHS16GBK;
      shutdown immediate;
      startup
      
      select userenv('language') from dual;
      select * from nls_database_parameters;
      
      alte1000 ystem set job_queue_processes=1000;
      

    相关文章

      网友评论

        本文标题:CentOS 7下Oracle 12C 无图形界面静默安装

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