• oracle11g静默安装


      安装前的环境准备:Linux版本7.6,内核版本:3.10.0-957.el7.x86_64,如果没有swap交换分区,需要添加交换分区

    dd if=/dev/zero of=/swap bs=1024 count=2048000
    mkswap /swap
    chmod 600 /swap
    swapon /swap
    echo "/swap swap swap default 0 0">>/etc/fstab  #设置成自动挂载

      修改主机名称:

        hostnamectl set-hostname oracledb
    修改主机配置文件
    vi /etc/hosts
        在末尾添加ip地址,主机名称
    127.0.0.1     oracledb #此处ip可以为127.0.0.1,也可为192.168.xx.xx

      关闭selinux

    vi /etc/selinux/config
    将SELINUX改为disabled

       然后是安装oracle安装依赖

    联网环境下:
    yum -y install 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
    未联网环境下:
    yum install --downloadonly + --downloaddir=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
    通过scp命令拷贝到目标主机
    如:scp -r ./    root@192.168.xx.xx:/data/res/
    进入res文件夹下执行安装
    yum localinstall -y ./*
    安装完成后,检查依赖是否安装成功
    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 | grep "not installed"

      创建组合用户,将用户添加到组

    groupadd oinstall
    groupadd dba
    groupadd oper
    useradd -g oinstall -G dba oracle
    修改oracle用户密码
    passwd oracle
    输入两次密码

      修改内核参数

    vi /etc/sysctl.conf
    
    fs.aio-max-nr = 1048576
    fs.file-max = 6815744
    kernel.shmall = 2097152
    kernel.shmmax = 8589934592
    kernel.shmmni = 4096
    kernel.sem = 1010 4136960 1010 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 = 1048576
    
    net.ipv4.icmp_echo_ignore_broadcasts = 1
    #开启反向路径过滤
    net.ipv4.conf.all.rp_filter = 1
    fs.file-max = 6815744 #设置最大打开文件数
    fs.aio-max-nr = 1048576
    #所有内存大小(单位:页,1页 = 4Kb),计算公式8G*1024*1024*1024/4*1024(页)
    kernel.shmall = 2097152 #共享内存的总量,8G内存设置:2097152*4k/1024/1024
    #单个共享内存段的大小(单位:字节)限制,计算公式8G*1024*1024*1024(字节)
    kernel.shmmax = 8589934592 #最大共享内存的段大小
    kernel.shmmni = 4096 #整个系统共享内存端的最大数
    #SEMMSL、SEMMNS、SEMOPM和SEMMNI
    #数据库最大PROCESS+10  SEMMSL * SEMMNI SEMOPM等于SEMMSL   SEMMNI的值设置为不少于 100
    kernel.sem = 5010 641280 5010 128
    #增加系统IP端口限制
    net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4端口范围
    net.core.rmem_default = 262144
    net.core.rmem_max= 4194304
    net.core.wmem_default= 262144
    net.core.wmem_max= 1048576

      使内核参数生效

    sysctl -p

      修改所需软件硬件参数

    vi /etc/security/limits.conf
    
    *              soft     nproc   1024000
    *              hard    nproc   1024000
    *              soft     nofile    1024000
    *              hard    nofile    1024000
    此参数设定,在安装elasticsearch时就可以不用再修改
    vi /etc/pam.d/login
    末尾添加下面内容
    session required /lib64/security/pam_limits.so
    session required pam_limits.so
    vi /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
    生效

      禁用使用Transparent HugePages

    查看是否启用 如果显示 [always]说明启用了
    cat /sys/kernel/mm/transparent_hugepage/enabled
    禁用Transparent HugePages,在/etc/grub.conf添加如下内容
    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    
    然后重启系统reboot

      创建oracle安装目录

    mkdir -p /data/app/
    chown -R oracle:oinstall /data/app/
    chmod -R 775 /data/app/

      配置oracle用户环境变量

    vi  /home/oracle/.bash_profile
    umask 022
    export ORACLE_HOSTNAME=oracledb
    export ORACLE_BASE=/data/app/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
    export ORACLE_SID=orcl
    export PATH=.:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH
    export LC_ALL="en_US.UTF-8"
    export LANG="en_US.UTF-8"
    export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
    export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
    使生效
    source /home/oracle/.bash_profile

    重启系统reboot

      创建data文件夹,将oracle安装文件上传data文件夹

    mkdir -p /data/etc
    cd /data/
    通过rz命令上传文件,没有rz命令可以执行
    yum -y install lrzsz
    然后解压文件
    unzip -q linux.x64_11gR2_database_1of2.zip -d /data
    unzip -q linux.x64_11gR2_database_2of2.zip -d /data
    
    cp /data/database/response/* /data/etc/

      修改参数值

    vi /data/etc/db_install.rsp
    
    oracle.install.option=INSTALL_DB_SWONLY
    DECLINE_SECURITY_UPDATES=true
    UNIX_GROUP_NAME=oinstall
    INVENTORY_LOCATION=/data/app/oracle/inventory
    SELECTED_LANGUAGES=en,zh_CN
    ORACLE_HOSTNAME=oracledb
    ORACLE_HOME=/data/app/oracle/product/11.2.0/db_1
    ORACLE_BASE=/data/app/oracle
    oracle.install.db.InstallEdition=EE
    oracle.install.db.isCustomInstall=true
    oracle.install.db.DBA_GROUP=dba
    oracle.install.db.OPER_GROUP=dba

      开始安装oracle

    su - oracle
    cd /data/database
    ./runInstaller -silent -responseFile /data/etc/db_install.rsp -ignorePrereq
    
    如果执行报没有足够权限,需要切换到root用户,修改文件执行权限
    chmod  755 /data/database

      查看安装日志

    tail -f /data/app/oracle/inventory/logs/installActionsxxxx-xx-xx_xx-xx-xxPM.log

      安装完成后终端界面会显示

    The following configuration scripts need to be executed as the "root" user. 
    #!/bin/sh 
    #Root scripts to run
    
    /u01/app/oraInventory/orainstRoot.sh
    /u01/app/oracle/product/11.2.0/db_1/root.sh
    To execute the configuration scripts:
    1. Open a terminal window 
    2. Log in as "root" 
    3. Run the scripts 
    4. Return to this window and hit "Enter" key to continue
    
    Successfully Setup Software.

      切换到root用户执行脚本

    su - root
    
    sh /data/app/oracle/inventory/orainstRoot.sh
    sh /data/app/oracle/product/11.2.0/db_1/root.sh

      配置监听器

    su - oracle
    netca /silent /responsefile /data/etc/netca.rsp
    
    #输出结果
    [oracle@oracledb ~]$ netca /silent /responsefile /data/etc/netca.rsp
    
    Parsing command line arguments:
        Parameter "silent" = true
        Parameter "responsefile" = /data/etc/netca.rsp
    Done parsing command line arguments.
    Oracle Net Services Configuration:
    Profile configuration complete.
    Oracle Net Listener Startup:
        Running Listener Control:
          /data/app/oracle/product/11.2.0/bin/lsnrctl start LISTENER
        Listener Control complete.
        Listener started successfully.
    Listener configuration complete.
    Oracle Net Services configuration successful. The exit code is 0
    查看监听端口
    netstat -tnpl | grep 1521

      创建数据库

    vi  /data/etc/dbca.rsp
    
    [GENERAL]
    RESPONSEFILE_VERSION = "11.2.0"
    OPERATION_TYPE = "createDatabase"
    [CREATEDATABASE]
    GDBNAME = "orcl"
    SID = "orcl"
    SYSPASSWORD = "oracle"
    SYSTEMPASSWORD = "oracle"
    SYSMANPASSWORD = "oracle"
    DBSNMPPASSWORD = "oracle"
    DATAFILEDESTINATION =/data/app/oracle/oradata
    RECOVERYAREADESTINATION=/data/app/oracle/fast_recovery_area
    CHARACTERSET = "ZHS16GBK"
    TOTALMEMORY = "6553"
    其中TOTALMEMORY ="1638" 为6553MB,物理内存8G*80%。

      开始建库

    su - oracle
    dbca -silent -responseFile /data/etc/dbca.rsp
    执行过程如下
    [oracle@oracledb ~]$ dbca -silent -responseFile /data/etc/dbca.rsp
    Copying database files
    1% complete
    3% complete
    11% complete
    18% complete
    26% complete
    37% complete
    Creating and starting Oracle instance
    40% complete
    45% complete
    50% complete
    55% complete
    56% complete
    60% complete
    62% complete
    Completing Database Creation
    66% complete
    70% complete
    73% complete
    85% complete
    96% complete
    100% complete
    Look at the log file "/data/app/oracle/cfgtoollogs/dbca/orcl/orcl.log" for further details.
    查看进程
    ps -ef | grep ora_ | grep -v grep
    
    # 执行结果
    [oracle@oracledb ~]$ ps -ef | grep ora_ | grep -v grep
    oracle   19304     1  0 18:33 ?        00:00:00 ora_pmon_orcl
    oracle   19306     1  0 18:33 ?        00:00:00 ora_vktm_orcl
    oracle   19310     1  0 18:33 ?        00:00:00 ora_gen0_orcl
    oracle   19312     1  0 18:33 ?        00:00:00 ora_diag_orcl
    oracle   19314     1  0 18:33 ?        00:00:00 ora_dbrm_orcl
    oracle   19316     1  0 18:33 ?        00:00:00 ora_psp0_orcl
    oracle   19318     1  0 18:33 ?        00:00:00 ora_dia0_orcl
    oracle   19320     1  0 18:33 ?        00:00:00 ora_mman_orcl
    oracle   19322     1  0 18:33 ?        00:00:00 ora_dbw0_orcl
    oracle   19324     1  0 18:33 ?        00:00:00 ora_lgwr_orcl
    oracle   19326     1  0 18:33 ?        00:00:00 ora_ckpt_orcl
    oracle   19328     1  0 18:33 ?        00:00:00 ora_smon_orcl
    oracle   19330     1  0 18:33 ?        00:00:00 ora_reco_orcl
    oracle   19332     1  0 18:33 ?        00:00:00 ora_mmon_orcl
    oracle   19334     1  0 18:33 ?        00:00:00 ora_mmnl_orcl
    oracle   19336     1  0 18:33 ?        00:00:00 ora_d000_orcl
    oracle   19338     1  0 18:33 ?        00:00:00 ora_s000_orcl
    oracle   19361     1  0 18:34 ?        00:00:00 ora_qmnc_orcl
    oracle   19376     1  0 18:34 ?        00:00:00 ora_cjq0_orcl
    oracle   19396     1  0 18:34 ?        00:00:00 ora_q000_orcl
    oracle   19398     1  0 18:34 ?        00:00:00 ora_q001_orcl
    查看监听状态
    $ lsnrctl status
    
    #结果
    [oracle@oracledb ~]$ lsnrctl status
    
    LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 02-JAN-2020 12:06:21
    
    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                02-JAN-2020 11:50:45
    Uptime                    0 days 0 hr. 15 min. 54 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   /data/app/oracle/product/11.2.0/network/admin/listener.ora
    Listener Log File         /data/app/oracle/diag/tnslsnr/oracledb/listener/alert/log.xml
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracledb)(PORT=1521)))
    Services Summary...
    Service "orcl" has 1 instance(s).
      Instance "orcl", status READY, has 1 handler(s) for this service...
    Service "orclXDB" has 1 instance(s).
      Instance "orcl", status READY, has 1 handler(s) for this service...
    The command completed successfully
    [oracle@oracledb ~]$

      到此数据库安装成功,但是可能还存在部分问题

    su - oracle
    sqlplus / as sysdba
    select status from v$instance;
    执行select时,全出现以下情况
    SQL> select status from v$instance;
    select status from v$instance
    *
    ERROR at line 1:
    ORA-01034: ORACLE not available
    Process ID: 0
    Session ID: 0 Serial number: 0
    解决方式:
    1.输入startup,
    #startup的输出提示:
    SQL> statup
    SP2-0042: unknown command "statup" - rest of line ignored.
    SQL> startup
    ORA-01078: failure in processing system parameters
    LRM-00109: could not open parameter file '/data/app/oracle/product/11.2.0/dbs/initORCL.ora'
    
    2.根据提示,将ORACLEBASE/admin/数据库名称/pfile目录下的init.ora.xxx形式的文件copy到 ORACLE_BASE/admin/数据库名称/pfile目录下的init.ora.xxx形式的文件copy到ORACLE 
    BASE/admin/数据库名称/pfile目录下的init.ora.xxx形式的文件copy到ORACLE_HOME/dbs目录下initOracle.ora(根据startup提示)即可
    cp /data/app/oracle/admin/orcl/pfile/init.ora.022019183329 initORCL.ora
    查看数据库编码
    select userenv('language') from dual;
    
    # 输出结果:
    SQL> select userenv('language') from dual;
    
    USERENV('LANGUAGE')
    --------------------------------------------------------------------------------
    AMERICAN_AMERICA.AL32UTF8
    
    SQL>
    查看数据库版本
    select * from v$version;
    
    #结果
    SQL> select * from v$version;
    
    BANNER
    --------------------------------------------------------------------------------
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    PL/SQL Release 11.2.0.1.0 - Production
    CORE    11.2.0.1.0    Production
    TNS for Linux: Version 11.2.0.1.0 - Production
    NLSRTL Version 11.2.0.1.0 - Production
    激活scott用户
    alter user scott account unlock;
    alter user scott identified by tiger;
    select username,account_status from dba_users;
    
    ORA-01102: cannot mount database in EXCLUSIVE mode
    GOOGLE一下,发现是lk<SID>文件造成的,该文件位于ORALCE_HOME下的dbs目录下,马上检查该文件:
    [oracle@bgsbtsp0010-dqf:dbs]# fuser -u lkORCL11G 
    /u01/app/oracle/product/11.2.0/db_1/dbs/lkORCL11G: 29365(oracle) 29371(oracle) 29375(oracle) 29377(oracle) 29381(oracle) 29383(oracle) 29385(oracle) 29387(oracle) 29389(oracle) 29391(oracle) 29393(oracle) 29395(oracle) 29397(oracle) 29399(oracle) 29455(oracle) 29490(oracle) 29576(oracle) 29578(oracle) 33195(oracle) 33218(oracle)
     
    # 果然该文件没释放,用fuser命令kill掉:
    [oracle@bgsbtsp0010-dqf:dbs]#  fuser -k lkORCL11G 
    /u01/app/oracle/product/11.2.0/db_1/dbs/lkORCL11G: 29365 29371 29375 29377 29381 29383 29385 29387 29389 29391 29393 29395 29397 29399 29455 29490 29576 29578 33195 33218
    
    然后:
    SQL> shutdown   
    ORA-01507: database not mounted
    ORACLE instance shut down.
     
    SQL> startup
    ORACLE instance started.
     
    Total System Global Area 1603411968 bytes
    Fixed Size            2213776 bytes
    Variable Size          402655344 bytes
    Database Buffers     1191182336 bytes
    Redo Buffers            7360512 bytes
    Database mounted.
    Database opened.

      修改密码不过期

    SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
    可以看到默认密码有效期是180天

    SQL>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
    修改为无限期

      设置数据库开启自启动

    修改dbstart、dbshut文件
    # $ORACLE_HOME/bin/dbshut是一样的,这里不重复了
    [oracle@node1 ~]# vi $ORACLE_HOME/bin/dbstart
    ORACLE_HOME_LISTNER=$1
    修改为:
    ORACLE_HOME_LISTNER=$ORACLE_HOME
    修改/etc/oratab文件
    #/data/app/oracle/product/11.2.0/db_1/这个是自己安装路径,只需要将N改为Y
    [oracle@node1 ~]# vi /etc/oratab
    orcl:/data/app/oracle/product/11.2.0/db_1/:N
    修改为:
    orcl:/data/app/oracle/product/11.2.0/db_1/:Y
    
    把lsnrctl start和dbstart添加到rc.local文件中
    #将下面两句加入到rc.local文件中,路径换成自己的;
    oracle用户下如果没有权限可以切换到root用户
    [root@node1 ~]# vi /etc/rc.d/rc.local
    su - oracle -lc "/data/app/oracle/product/11.2.0/db_1/bin/lsnrctl start"
    su - oracle -lc "/data/app/oracle/product/11.2.0/db_1/bin/dbstart"
    
    添加执行权限
    [oracle@node1 ~]$ su root
    [root@node1 ~]# chmod +x /etc/rc.d/rc.local
  • 相关阅读:
    两数交换不借助第三变量
    linux磁盘文件系统管理
    Fedora15设置开机进入终端模式
    快速构建Windows 8风格应用8贴靠视图
    快速构建Windows 8风格应用6GridView数据控件
    快速构建Windows 8风格应用4FlipView数据控件
    快速构建Windows 8风格应用9竖直视图
    快速构建Windows 8风格应用1开发工具安装及模拟器使用
    快速构建Windows 8风格应用5ListView数据控件
    快速构建Windows 8风格应用2创建调试应用
  • 原文地址:https://www.cnblogs.com/zhuifenglang/p/12685433.html
Copyright © 2020-2023  润新知