CentOS7 靜默安裝 Oracle 12c

環境

  • CentOS7.5 最小安裝
  • 數據庫軟件
    • linuxx64_12201_database.zip

操作系統配置

  • 關閉 SELinux
    sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
    
  • 關閉防火牆
    systemctl disable firewalld
    systemctl stop firewalld
    
  • 禁用 NetworkManager
    systemctl disable NetworkManager
    systemctl stop NetworkManager
    
  • 重啓操作系統
    reboot
    

安裝依賴

  • 安裝可能用到的工具
    yum install epel-release
    yum clean all
    yum makecache fast
    yum install vim unzip rlwrap
    
  • 安裝 oracle 需要的包
    yum install binutils compat-libcap1 compat-libstdc++-33 \
    compat-libstdc++-33*i686 gcc gcc-c++ glibc glibc*.i686 \
    glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel \
    libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel \
    libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC \
    unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686
    

配置安裝環境

  • 創建 oracle 用戶
    groupadd oinstall
    groupadd dba
    groupadd oper
    useradd -g oinstall -G dba,oper oracle
    
  • 創建 oracle 安裝目錄
    mkdir -p /opt/oracle/app/product/12.2.0
    mkdir -p /opt/oracle/app/oradata
    mkdir -p /opt/oracle/app/fast_recovery_area
    chown -R oracle:oinstall /opt/oracle
    chmod -R 775 /opt/oracle
    
  • 修改 sysctl.conf
    cat << EOF >> /etc/sysctl.conf
    fs.aio-max-nr = 1048576
    fs.file-max = 6815744
    #物理內存一半和4G中的較大者,當前服務器16G
    kernel.shmmax = 8589934592
    #shmmax / 4k (getconf PAGESIZE)
    kernel.shmall = 2097152
    kernel.shmmni = 4096
    kernel.sem = 250 32000 200 200
    net.ipv4.ip_local_port_range = 9000 65500
    net.core.rmem_default = 262144
    net.core.wmem_default = 262144
    net.core.wmem_max = 1048586
    net.core.rmem_max = 4194304
    EOF
    sysctl -p
    
  • 修改 limits.conf
    cat << EOF >> /etc/security/limits.conf
    oracle soft nproc 2047
    oracle hard nproc 16384
    oracle soft nofile 1024
    oracle hard nofile 65536
    oracle soft stack 10240
    EOF
    
  • 修改 login
    cat << EOF >> /etc/pam.d/login
    session required  /lib64/security/pam_limits.so
    session required pam_limits.so
    EOF
    
  • 修改 profile
    cat << EOF >> /etc/profile
    if [ \$USER = "oracle" ] ; then
        if [ \$SHELL = "/bin/ksh" ]; then
            ulimit -p 16384
            ulimit -n 65536
        else
            ulimit -u 16384 -n 65536
        fi
        umask 022
    fi
    EOF
    
  • 修改 oracle 用戶的 .bash_profile
    cat << EOF >> /home/oracle/.bash_profile
    export ORACLE_BASE=/opt/oracle/app
    export ORACLE_HOME=\$ORACLE_BASE/product/12.2.0
    export ORACLE_SID=orcl
    export PATH=\$PATH:\$ORACLE_HOME/bin
    #export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
    #export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
    EOF
    

安裝數據庫

  • 上傳數據庫軟件到 /root 下,解壓
    unzip linuxx64_12201_database.zip -d /home/oracle/
    chown -R oracle.oinstall /home/oracle/database
    
  • 切換到 oracle 用戶,後續操作都在該 oracle 用戶下執行
    su - oracle
    
  • 創建 response 文件
    cd /home/oracle
    cp database/response/*.rsp ./
    
  • 修改 db_install.rsp
    sed -i \
        -e '/^oracle\.install\.option=/s#=.*$#=INSTALL_DB_SWONLY#' \
        -e '/^UNIX_GROUP_NAME=/s#=.*$#=oinstall#' \
        -e '/^INVENTORY_LOCATION=/s#=.*$#=/opt/oracle/oraInventory#' \
        -e '/^ORACLE_HOME=/s#=.*$#=/opt/oracle/app/product/12.2.0#' \
        -e '/^ORACLE_BASE=/s#=.*$#=/opt/oracle/app#' \
        -e '/^oracle\.install\.db\.InstallEdition=/s#=.*$#=EE#' \
        -e '/^oracle\.install\.db\.OSDBA_GROUP=/s#=.*$#=dba#' \
        -e '/^oracle\.install\.db\.OSOPER_GROUP=/s#=.*$#=oper#' \
        -e '/^oracle\.install\.db\.OSBACKUPDBA_GROUP=/s#=.*$#=dba#' \
        -e '/^oracle\.install\.db\.OSDGDBA_GROUP=/s#=.*$#=dba#' \
        -e '/^oracle\.install\.db\.OSKMDBA_GROUP=/s#=.*$#=dba#' \
        -e '/^oracle\.install\.db\.OSRACDBA_GROUP=/s#=.*$#=dba#' \
        -e '/^oracle.install.db.config.starterdb.type=/s#=.*$#=GENERAL_PURPOSE#' \
        -e '/^oracle\.install\.db\.config\.starterdb\.characterSet=/s#=.*$#=ZHS16GBK#' \
        -e '/^DECLINE_SECURITY_UPDATES=/s#=.*$#=true#' \
        /home/oracle/db_install.rsp
    
  • 無需修改 netca.rsp
  • 修改 dbca.rsp
    sed -i \
        -e '/^gdbName=/s#=.*$#=orcl#' \
        -e '/^sid=/s#=.*$#=orcl#' \
        -e '/^createAsContainerDatabase=/s#=.*$#=true#' \
        -e '/^numberOfPDBs=/s#=.*$#=1#' \
        -e '/^pdbName=/s#=.*$#=pdborcl#' \
        -e '/^templateName=/s#=.*$#=General_Purpose.dbc#' \
        -e '/^pdbAdminPassword=/s#=.*$#=P@sswo2d#' \
        -e '/^sysPassword=/s#=.*$#=P@sswo2d#' \
        -e '/^systemPassword=/s#=.*$#=P@sswo2d#' \
        /home/oracle/dbca.rsp
    
  • 安裝 oracle 軟件
    cd /home/oracle/database
    ./runInstaller -silent -responseFile /home/oracle/db_install.rsp -ignorePrereq
    #安裝成功後,系統提示需要在 root 下執行兩個腳本
    /opt/oracle/oraInventory/orainstRoot.sh
    /opt/oracle/app/product/12.2.0/root.sh
    
  • 配置監聽
    netca /silent /responseFile /home/oracle/netca.rsp
    #配置成功後,監聽啓動,查看監聽狀態
    lsnrctl status
    
  • 創建數據庫
    dbca -silent -createDatabase -responseFile /home/oracle/dbca.rsp
    #查看屏幕輸出的創建進度
    

簡單使用

  • 登陸數據庫,切換到 pdb 數據庫
    [oracle@fpManager2 ~]$ rlwrap sqlplus / as sysdba
    SQL*Plus: Release 12.2.0.1.0 Production on 星期一 6月 25 14:41:16 2018
    Copyright (c) 1982, 2016, Oracle.  All rights reserved.
    連接到:
    Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
    SQL> show con_name
    CON_NAME
    ------------------------------
    CDB$ROOT
    SQL> alter session set container=pdborcl;
    會話已更改。
    SQL> show con_name
    CON_NAME
    ------------------------------
    PDBORCL
    SQL> select file_name from dba_data_files;
    FILE_NAME
    --------------------------------------------------------------------------------
    /opt/oracle/app/oradata/orcl/pdborcl/system01.dbf
    /opt/oracle/app/oradata/orcl/pdborcl/sysaux01.dbf
    /opt/oracle/app/oradata/orcl/pdborcl/undotbs01.dbf
    /opt/oracle/app/oradata/orcl/pdborcl/users01.dbf
    SQL>
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章