zoukankan      html  css  js  c++  java
  • 静默安装Oracle11g

    系统配置

    # OS版本
    [root@ljforacle03 ~]# cat /proc/version 
    Linux version 3.10.0-514.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Nov 22 16:42:41 UTC 2016
    [root@ljforacle03 ~]# cat /etc/redhat-release 
    CentOS Linux release 7.3.1611 (Core)
    
    ## 内核信息
    [root@ljforacle03 ~]# uname -r
    3.10.0-514.el7.x86_64
    
    # 系统内存
    [root@ljforacle03 ~]# cat /proc/meminfo |grep MemTotal
    MemTotal:       16267760 kB
    
    # swap内存和交换空间容量
    [root@ljforacle03 ~]# free -t
                  total        used        free      shared  buff/cache   available
    Mem:       16267760      599752      660004      619444    15008004    14633956
    Swap:       8388604        6632     8381972
    Total:     24656364      606384     9041976
    
    # /tmp目录中的空间
    [root@ljforacle03 ~]# df -h /tmp
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3       192G  134G   59G  70% /
    
    # 磁盘空间
    [root@ljforacle03 ~]# df -lh
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3       192G  134G   59G  70% /
    devtmpfs        7.8G     0  7.8G   0% /dev
    tmpfs           7.8G     0  7.8G   0% /dev/shm
    tmpfs           7.8G  8.6M  7.8G   1% /run
    tmpfs           7.8G     0  7.8G   0% /sys/fs/cgroup
    /dev/sda1       197M  114M   83M  58% /boot
    tmpfs           1.6G     0  1.6G   0% /run/user/0
    

    1、安装oracle依赖包关系

    yum install -y  binutils  compat-libcap1  compat-libstdc++-33  compat-libstdc++-33.i686  glibc  glibc.i686 glibc-devel glibc-devel.i686 ksh  libaio  libaio.i686  libaio-devel  libaio-devel.i686  libX11  libX11.i686  libXau  libXau.i686 libXi  libXi.i686  libXtst  libXtst.i686  libgcc  libgcc.i686  libstdc++  libstdc++.i686  libstdc++-devel  libstdc++-devel.i686  libxcb  libxcb.i686  make  nfs-utils  net-tools  smartmontools  sysstat  unixODBC  unixODBC-devel    gcc   gcc-c++   libXext   libXext.i686   zlib-devel   zlib-devel.i686
    

    2、修改内核参数

    主要包括对内存调度、端口范围、打开文件数、I/O请求等相关的一些设置,相关数值不可低于安装要求

    vim /etc/sysctl.conf
    fs.file-max = 6815744  
    kernel.sem = 250 32000 100 128  
    kernel.shmmni = 4096  
    kernel.shmall = 1073741824  
    kernel.shmmax = 4398046511104  
    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
    

    刷新内核参数表

    /sbin/sysctl -p
    

    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:

    • 表示套接字发送缓冲区大小的最大值。

    3、修改内核限制参数

    vim /etc/security/limits.d/20-nproc.conf 
    # Default limit for number of user's processes to prevent  
    # accidental fork bombs.  
    # See rhbz #432903 for reasoning.  
      
    *          soft    nproc     4096  
    root       soft    nproc     unlimited  
    oracle   soft   nofile    1024  
    oracle   hard   nofile    65536  
    oracle   soft   nproc    16384  
    oracle   hard   nproc    16384  
    oracle   soft   stack    10240  
    oracle   hard   stack    32768  
    oracle   hard   memlock    134217728  
    oracle   soft   memlock    134217728
    

    4、创建oracle帐号和组

    • oninstall -- 安装和升级Oracle程序
    • dba --数据库中的一切操作:
    • 启动、关闭、修改数据库、创建和删除数据库、切换日志归档模式、备份与恢复数据库
    • oper -- 启动、关闭和修改数据库,切换日志归档模式、备份与恢复数据库
    • asmdba -- 管理Oracle自动存储管理(ASM)实例
    • asmoper -- 启动和停止Oracle ASM实例
    • asmadmin -- 挂载和卸载磁盘组与管理其他存储设备
    • backupdba -- 12c新功能:启动、关闭和执行所有备份与恢复
    • dgdba -- 12c新功能:管理Data Guard环境的相关操作
    • kmdba -- 12c新功能:加密管理的相关操作
    groupadd -g 500 oinstall
    groupadd -g 501 dba
    useradd -u 500 -g oinstall -G dba oracle
    passwd oracle
    

    5、创建相关数据库目录

    orapath=/oracle
    mkdir ${orapath}
    mkdir ${orapath}/app
    mkdir -p ${orapath}/app/oracle/oradata
    chmod -R 775 ${orapath}/app 
    chown -R oracle:oinstall ${orapath}
    

    6、修改oracle环境变量

    vi /home/oracle/.bash_profile
    ......
    # Oracle Settings 
    export ORACLE_HOME=/oracle/app/oracle/product/11/db_1
    export ORACLE_SID=liangdb
    export PATH=$ORACLE_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
    

    7、解压oracle二进制包

    (解压的目录默认名为database)

    wget http://192.168.10.77/oracle/linux.x64_11gR2_database_1of2.zip
    wget http://192.168.10.77/oracle/linux.x64_11gR2_database_2of2.zip
    unzip linux.x64_11gR2_database_1of2.zip
    unzip linux.x64_11gR2_database_2of2.zip
    mv database /oracle
    chown -R oracle:oinstall /oracle
    

    8、修改配置文件

    vi /oracle/database/response/db_install.rsp
    
    oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
    oracle.install.option=INSTALL_DB_SWONLY # 29行
    ORACLE_HOSTNAME=ljforacle03 # 37行
    UNIX_GROUP_NAME=ljforacle03 # 42行
    INVENTORY_LOCATION=/oracle/app/oracle/oraInventory # 47行
    ORACLE_HOME=/oracle/app/oracle/product/11/db_1 # 83行
    ORACLE_BASE=/oracle/app/oracle # 88行
    oracle.install.db.InstallEdition=EE # 99行
    oracle.install.db.DBA_GROUP=dba # 142行
    oracle.install.db.OPER_GROUP=oinstall # 147行
    oracle.install.db.config.starterdb.type=GENERAL_PURPOSE # 160行
    oracle.install.db.config.starterdb.globalDBName=liangdb # 165行
    oracle.install.db.config.starterdb.SID=liangdb # 170行
    SECURITY_UPDATES_VIA_MYORACLESUPPORT=false # 376行
    DECLINE_SECURITY_UPDATES=true # 385行
    # 设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对)
    

    9、缺少/etc/oraInst.loc文件

    • 如果服务器上已经有oraInst.loc文件,那么可以跳过该步骤
    • 在使用自动安装方式时,创建oraInst.loc文件的步骤仅需在第一次安装Oracle程序时做
    • 如果使用OUI图形界面安装程序,那么该安装程序会自动创建oraInst.loc文件
    • 在Linux服务器上,oraInst.loc文件通常位于/etc目录中
    • oraInst.loc文件包含有一下信息:
      • Oracle清单目录路径:inventory_loc=/oracle/app/oracle/oraInventory
        • 包含有管理Oracle安装和升级的文件
        • 该目录结构中含有inventory.xml文件,该文件含有服务器上已安装的各种Oracle版本记录
      • 拥有安装和升级Oracle软件操作权限的OS组的名称:inst_group=oinstall
      • 该组拥有安装和升级Oracle软件的权限
    vim /etc/oraInst.loc
    inventory_loc=/oracle/app/oracle/oraInventory
    inst_group=oinstall
    
    chown oracle:oinstall /etc/oraInst.loc
    chmod 644 /etc/oraInst.loc
    

    10、切换至oracle用户,开始安装oracle

    cd /oracle/database
    ./runInstaller -force -silent -noconfig -ignorePrereq -responseFile /oracle/database/response/db_install.rsp 
    
    Starting Oracle Universal Installer...
    ....
    
    As a root user, execute the following script(s):
            1. /oracle/app/oracle/product/11/db_1/root.sh
    
    
    
    Successfully Setup Software.
    

    11、安装完后,切换root用户运行脚本

    [root@ljforacle03 ~]# sh /oracle/app/oracle/product/11/db_1/root.sh
    

    12、静默配置监听

    [oracle@ljforacle03 database]$ source /home/oracle/.bash_profile 
    [oracle@ljforacle03 database]$ netca /silent /responseFile /oracle/database/response/netca.rsp
    
    Parsing command line arguments:
        Parameter "silent" = true
        Parameter "responsefile" = /oracle/database/response/netca.rsp
    Done parsing command line arguments.
    Oracle Net Services Configuration:
    Profile configuration complete.
    Oracle Net Listener Startup:
        Running Listener Control: 
          /oracle/app/oracle/product/11/db_1/bin/lsnrctl start LISTENER
        Listener Control complete.
        Listener started successfully.
    Listener configuration complete.
    Oracle Net Services configuration successful. The exit code is 0
    [oracle@ljforacle03 database]$
    

    13、查看监听状态

    [oracle@ljforacle03 database]$ lsnrctl status
    
    LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 05-SEP-2019 11:08:49
    
    Copyright (c) 1991, 2009, Oracle.  All rights reserved.
    
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
    STATUS of the LISTENER
    ------------------------
    Alias                     LISTENER
    Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
    Start Date                05-SEP-2019 10:13:39
    Uptime                    0 days 0 hr. 55 min. 10 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   /oracle/app/oracle/product/11/db_1/network/admin/listener.ora
    Listener Log File         /oracle/app/oracle/diag/tnslsnr/ljforacle02/listener/alert/log.xml
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ljforacle02)(PORT=1521)))
    Services Summary...
    Service "liangdb" has 1 instance(s).
      Instance "liangdb", status READY, has 1 handler(s) for this service...
    Service "liangdbXDB" has 1 instance(s).
      Instance "liangdb", status READY, has 1 handler(s) for this service...
    The command completed successfully
    [oracle@ljforacle03 database]$
    

    14、修改配置文件

    vi /oracle/database/response/dbca.rsp
    
    [GENERAL]
    RESPONSEFILE_VERSION = "11.2.0"
    OPERATION_TYPE = "createDatabase"
    
    [CREATEDATABASE]
    GDBNAME = "liangdb"
    POLICYMANAGED = "false"
    CREATESERVERPOOL = "false"
    FORCE = "false"
    SID = "liangdb"
    TEMPLATENAME = "General_Purpose.dbc"
    SYSPASSWORD = "********"
    SYSTEMPASSWORD = "********"
    SYSMANPASSWORD = "********"
    DBSNMPPASSWORD = "********"
    DATAFILEJARLOCATION = {ORACLE_HOME}/assistants/dbca/templates/
    DATAFILEDESTINATION = {ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/
    RECOVERYAREADESTINATION={ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}
    STORAGETYPE=FS
    CHARACTERSET = "ZHS16GBK"
    REGISTERWITHDIRSERVICE= FALSE
    LISTENERS = "LISTENER"
    VARIABLES = DB_UNIQUE_NAME=liangdb,ORACLE_BASE=/oracle/app/oracle,PDB_NAME=,DB_NAME=liangdb,ORACLE_HOME=/oracle/app/oracle/product/11/db_1,SID=liangdb
    MEMORYPERCENTAGE = "60"
    DATABASETYPE = "MULTIPURPOSE"
    AUTOMATICMEMORYMANAGEMENT = "FALSE" # 如果内存低于16G的设置为 flase
    TOTALMEMORY = "12000"
    

    15、静默建库命令

    [oracle@ljforacle03 root]$ source /home/oracle/.bash_profile 
    [oracle@ljforacle03 root]$ dbca -silent -responseFile /oracle/database/response/dbca.rsp
    Cleaning up failed steps
    5% complete
    Copying database files
    7% complete
    9% complete
    16% complete
    23% complete
    30% complete
    41% complete
    Creating and starting Oracle instance
    43% complete
    48% complete
    53% complete
    57% complete
    58% complete
    59% complete
    62% complete
    64% complete
    Completing Database Creation
    68% complete
    71% complete
    75% complete
    85% complete
    96% complete
    100% complete
    Look at the log file "/oracle/app/oracle/cfgtoollogs/dbca/liangdb/liangdb0.log" for further details.
    [oracle@ljforacle03 root]$
    

    16、检查oracle进程状态

    ps -ef | grep ora_ | grep -v grep
     lsnrctl status  (lsnrctl是oracle命令)
    
  • 相关阅读:
    Jquery入门
    微服务
    数组
    流程控制
    GO的整型
    Go的巧记
    变量和常量
    Golang
    股票入市指南
    linux 命令行操作
  • 原文地址:https://www.cnblogs.com/liangjingfu/p/13710772.html
Copyright © 2011-2022 走看看