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

    打算在云服务器上装oracle服务,以前DBA美眉都是在图形化界面下安装,这次抓瞎了。赶紧上网查查,静默安装可以解决问题。于是乎赶紧开始部署,过程如下。
    安装环境:
    操作系统:CentOS 7
    内存:11G(11851M)
    硬盘:128G
    oracle版本 11g


    1、准备oracle 安装包 linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2.zip


    2、检查本机依赖包,没找到的用 yum install ****** 命令安装
    rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel


    3、创建所需的操作系统组和用户
    groupadd oinstall
    groupadd dba
    useradd -g oinstall -G dba oracle
    设置oracle用户密码
    passwd oracle


    4、修改内核参数
    vi /etc/sysctl.conf 在后面追加下面配置
    #Oracle
    kernel.sem = 250 32000 100 128
    kernel.shmmax = 2147483648(这里配置物理内存的一半,单位是字节。比如物理内存是16G,这个值就是8Gx1024x1024x1024=1073741824)
    kernel.shmmni = 4096
    kernel.shmall = 2097152(这里配置物理内存的四分之一,单位是k。比如物理内存是16G,这个值就是2G*1024*1024=2097152)
    fs.file-max = 6815744
    net.ipv4.ip_local_port_range = 9000 65500
    net.core.rmem_default = 4194304
    net.core.rmem_max = 8388608
    net.core.wmem_default = 4194304
    net.core.wmem_max = 4194304
    fs.aio-max-nr = 1048576
    保存后执行 /sbin/sysctl -p 命令,使修改生效。


    5、修改用户限制
    vi /etc/security/limits.conf 在后面追加下面配置
    oracle soft nproc 2047
    oracle hard nproc 16384
    oracle soft nofile 1024
    oracle hard nofile 65536
    oracle soft stack 10240
    vi /etc/pam.d/login 在后面追加下面配置
    session required /lib/security/pam_limits.so
    session required pam_limits.so
    vi /etc/profile 在配置文件结尾处(unset i 和 unset -f pathmunge 之前)追加下面配置
    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 命令,使修改生效。


    6、创建安装目录,并修改目录所有者
    mkdir -p /usr/oracle
    chown -R oracle:oinstall /usr/oracle
    chmod -R 775 /usr/oracle


    7、创建/etc/oraInst.loc文件
    vi /etc/oraInst.loc 在里面写入下面配置
    nventory_loc=/usr/oracle/oraInventory
    inst_group=oinstall
    保存后修改文件权限
    chown oracle:oinstall /etc/oraInst.loc
    chmod 664 /etc/oraInst.loc


    8、设置oracle环境变量
    用ocacle用户登录
    su - oracle
    vi ~/.bash_profile 在后面追加下面配置
    export ORACLE_BASE=/usr/oracle
    export ORACLE_SID=orcl(这里是用户自己定义的数据库名称,后面就不能再改了)
    保存后执行 source /home/oracle/.bash_profile 命令,使修改生效。
    执行 env 命令,检查环境变量。


    9、把前面准备的数据库安装文件移动到 /home/oracle/


    10、解压oracle安装文件
    unzip linux.x64_11gR2_database_1of2.zip
    unzip linux.x64_11gR2_database_2of2.zip
    解压缩后的安装文件在 /home/oracle/database 目录


    11、复制响应文件模板
    创建 /home/oracle/ 目录下的 etc 目录
    mkdir etc
    复制响应文件
    cp /home/oracle/database/response/* /home/oracle/etc/
    设置响应文件权限
    su - root
    chmod 700 /home/oracle/etc/*.rsp


    12、静默安装Oracle软件
    12.1 登陆 oracle 用户
    su - oracle  
    12.2 vi /home/oracle/etc/db_install.rsp 修改安装Oracle软件的响应文件,这个环节其实就是图形化安装中的各种选项和“下一步”,不过静默安装要在配置文件里提前配置好。具体配置如下:
    oracle.install.option=INSTALL_DB_SWONLY // 安装类型
    ORACLE_HOSTNAME=t91 // 主机名称(hostname查询,这里要注意,主机名要在 /etc/hosts 文件中配置好ip对应关系,否则安装会报错)
    UNIX_GROUP_NAME=oinstall // 安装组
    INVENTORY_LOCATION=/usr/oracle/oraInventory //INVENTORY目录(不填就是默认值)
    SELECTED_LANGUAGES=en,zh_CN,zh_TW // 选择语言
    ORACLE_HOME=/usr/oracle/product/11.2.0/db_1 // oracle_home
    ORACLE_BASE=/usr/oracle // oracle_base
    oracle.install.db.InstallEdition=EE // oracle版本
    oracle.install.db.isCustomInstall=false //自定义安装,否,使用默认组件
    oracle.install.db.DBA_GROUP=dba // dba用户组
    oracle.install.db.OPER_GROUP=oinstall // oper用户组
    oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //数据库类型
    oracle.install.db.config.starterdb.globalDBName=orcl //globalDBName(这里要和第8步配置的sid一致)
    oracle.install.db.config.starterdb.SID=orcl //SID(这里要和第8步配置的sid一致)
    oracle.install.db.config.starterdb.memoryLimit=81920 //自动管理内存的内存(M)
    oracle.install.db.config.starterdb.password.ALL=****** //设定所有数据库用户使用同一个密码
    SECURITY_UPDATES_VIA_MYORACLESUPPORT=false(手动写了false)
    DECLINE_SECURITY_UPDATES=true //设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对)

     1 oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
     2 oracle.install.option=INSTALL_DB_SWONLY
     3 ORACLE_HOSTNAME=CDS
     4 UNIX_GROUP_NAME=oinstall
     5 INVENTORY_LOCATION=/usr/oracle/oraInventory
     6 SELECTED_LANGUAGES=en,zh_CN
     7 ORACLE_HOME=/usr/oracle/product/11.2.0/db_1
     8 ORACLE_BASE=/usr/oracle
     9 oracle.install.db.InstallEdition=EE
    10 oracle.install.db.EEOptionsSelection=false
    11 oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.3.0,oracle.oraolap:11.2.0.3.0,oracle.rdbms.dm:11.2.0.3.0,oracle.rdbms.dv:11.2.0.3.0,oracle.rdbms.lbac:11.2.0.3.0,oracle.rdbms.rat:11.2.0.3.0
    12 oracle.install.db.DBA_GROUP=dba
    13 oracle.install.db.OPER_GROUP=oinstall
    14 oracle.install.db.CLUSTER_NODES=
    15 oracle.install.db.isRACOneInstall=
    16 oracle.install.db.racOneServiceName=
    17 oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
    18 oracle.install.db.config.starterdb.globalDBName=orcl
    19 oracle.install.db.config.starterdb.SID=orcl
    20 oracle.install.db.config.starterdb.characterSet=AL32UTF8
    21 oracle.install.db.config.starterdb.memoryOption=true
    22 oracle.install.db.config.starterdb.memoryLimit=1500
    23 oracle.install.db.config.starterdb.installExampleSchemas=false
    24 oracle.install.db.config.starterdb.enableSecuritySettings=true
    25 oracle.install.db.config.starterdb.password.ALL=oracle
    26 oracle.install.db.config.starterdb.password.SYS=
    27 oracle.install.db.config.starterdb.password.SYSTEM=
    28 oracle.install.db.config.starterdb.password.SYSMAN=
    29 oracle.install.db.config.starterdb.password.DBSNMP=
    30 oracle.install.db.config.starterdb.control=DB_CONTROL
    31 oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
    32 oracle.install.db.config.starterdb.automatedBackup.enable=false
    33 oracle.install.db.config.starterdb.automatedBackup.osuid=
    34 oracle.install.db.config.starterdb.automatedBackup.ospwd=
    35 oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
    36 oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
    37 oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
    38 oracle.install.db.config.asm.diskGroup=
    39 oracle.install.db.config.asm.ASMSNMPPassword=
    40 MYORACLESUPPORT_USERNAME=
    41 MYORACLESUPPORT_PASSWORD=
    42 SECURITY_UPDATES_VIA_MYORACLESUPPORT=
    43 DECLINE_SECURITY_UPDATES=true
    44 PROXY_HOST=
    45 PROXY_PORT=
    46 PROXY_USER=
    47 PROXY_PWD=
    48 PROXY_REALM=
    49 COLLECTOR_SUPPORTHUB_URL=
    50 oracle.installer.autoupdates.option=
    51 oracle.installer.autoupdates.downloadUpdatesLoc=
    52 AUTOUPDATES_MYORACLESUPPORT_USERNAME=
    53 AUTOUPDATES_MYORACLESUPPORT_PASSWORD=

     


    12.3 保存后执行 cd database 命令,进入 /home/oracle/database/ 目录开始静默安装。

    ./runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp (我曾经在安装时一直报错,SEVERE: [FATAL] [INS-13013] 目标环境不满足一些必需要求。后来在请求参数里增加了 -ignorePrereq 后安装成功了 ./runInstaller -silent -ignorePrereq -responseFile /home/oracle/etc/db_install.rsp)

    安装中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],则安装程序已经停止了。
    安装日志信息在 /usr/oracle/oraInventory/logs/ 目录下。
    installActions2016-07-14_10-49-36AM.log安装过程
    oraInstall2016-07-14_10-49-36AM.err错误日志
    oraInstall2016-07-14_10-49-36AM.out输出日志
    12.4 当 oraInstall2016-07-14_10-49-36AM.out 文件出现下面信息,就表示安装完成了
    /usr/oracle/product/11.2.0/db_1/root.sh
    要执行配置脚本, 请执行以下操作:
    1. 打开一个终端窗口
    2. 以 "root" 身份登录
    3. 运行脚本
    4. 返回此窗口并按 "Enter" 键继续
    Successfully Setup Software.
    12.5 执行 su - root 命令,用 root 用户登录
    /usr/oracle/product/11.2.0/db_1/root.sh
    12.6 执行 su - oracle 命令,用 oracle 用户登陆
    vi ~/.bash_profile 在后面追加下面配置
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
    export TNS_ADMIN=$ORACLE_HOME/network/admin
    export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
    export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE
    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE/lib
    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
    export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
    export ORACLE_OWNER=oracle
    export SPFILE_PATH=$ORACLE_HOME/dbs
    export ORA_NLS10=$ORACLE_HOME/nls/data
    保存后执行 source /home/oracle/.bash_profile 命令,使修改生效。
    执行 env 命令,检查环境变量。

    Sqlplus测试

    sqlplus /nolog

    静默配置监听

    [oracle@localhost ~]$ $ORACLE_HOME/bin/netca /silent /responseFile /home/oracle/oracle_11g/app/database/response/netca.rsp

     

    静默安装数据库

    [oracle@localhost response]$ pwd /home/oracle/oracle_11g/app/database/response

    [oracle@localhost response]$ vim dbca.rsp

     1 [GENERAL]
     2 RESPONSEFILE_VERSION = "11.2.0"
     3 OPERATION_TYPE = "createDatabase"
     4 [CREATEDATABASE]
     5 GDBNAME = "orcl"
     6 SID = "orcl"
     7 TEMPLATENAME = "General_Purpose.dbc"
     8 CHARACTERSET="AL32UTF8"
     9 NATIONALCHARACTERSET="UTF8"
    10 SYSPASSWORD="sys"
    11 SYSTEMPASSWORD="system"

    [oracle@localhost response]$ $ORACLE_HOME/bin/dbca -silent -responseFile /home/oracle/oracle_11g/app/database/response/dbca.rsp

    测试

    1,建库后监听检查

    lsnrctl status

    ... Services Summary

    ... Service "ORCL.LK" has 1 instance(s).

    Instance "ORCL", status READY, has 1 handler(s) for this service

    ... Service "ORCLXDB.LK" has 1 instance(s). Instance "ORCL", status READY, has 1 handler(s) for this service...

    The command completed successfully

    指定静态注册的位置是在listener.ora参数文件,下面是一个典型参数文件的结构。

    # listener.ora Network Configuration File: D:oracleproduct10.2.0db_1 etworkadminlistener.ora

    # Generated by Oracle configuration tools.

    SID_LIST_LISTENER =

     (SID_LIST = 

       (SID_DESC =

         (GLOBAL_DBNAME = orcl)

         (ORACLE_HOME = /usr/oracle/product/11.2.0/db_1)

         (SID_NAME = orcl)

       )

     )

    LISTENER =

     (DESCRIPTION_LIST =

       (DESCRIPTION =

         (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

         (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

       )

     )

    实例应该被动态注册到监听程序了. 如果未被动态注册到监听程序, 则可以手工注册:

    sqlplus / as sysdba

     

    SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 16 11:11:46 2009 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, Oracle Label Security, OLAP, Data Mining, Oracle Database Vault and Real Application Testing options

     

    alter system register; 

    $ sqlplus / as sysdba

    SQL> shutdown immediate;

    SQL> startup mount;

    SQL> alter database archivelog;

    SQL> alter database flashback on; (如果要启用数据库闪回功能则执行)

    SQL> alter database open;

    SQL> execute utl_recomp.recomp_serial(); (重新编译所有可能失效对象)

    SQL> alter system archive log current; (手工归档测试)

    到此建库完毕!

    创建实例用户

    在oracle用户下操作(样例):

    在sqlplus / as sysdba下执行以下命令

    (1)create user ucrcdb identified by ucrcdb; (创建用户名和密码都是ucrcdb)

    (2)(给用户ucrcdb授权)

    grant create any sequence to ucrcdb;

    grant connect,resource to ucrcdb;

    grant CREATE DATABASE LINK to ucrcdb;

    grant CREATE PUBLIC DATABASE LINK to ucrcdb;

    grant CREATE SESSION to ucrcdb;

    最后 sqlplus ucrcdb/ucrcdb@ucrc 登录成功

    静默删库(可选)

    1) 生成响应文件模板:

    $ vi $DISTRIB/db_delete.rsp

    #以下参数不能更改

    [GENERAL]

    RESPONSEFILE_VERSION = "11.2.0"

    OPERATION_TYPE = "deleteDatabase"

    #以下参数根据实际情况更改

    [DELETEDATABASE]

    SOURCEDB = "ORCL"

    2) dbca静默建库, 无需手工停库, 大概1分钟:

    $ $ORACLE_HOME/bin/dbca -silent -responseFile $DISTRIB/db_delete.rsp

    Connecting to database

    47% complete

    Updating network configuration files

    ...

    52% complete

    Deleting instance and datafiles

    ...

    100% complete

    Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/ORCL.log" for further details 

    各参数含义如下:

    -silent 表示以静默方式删除

    -responseFile 表示使用哪个响应文件,必需使用绝对路径

    RESPONSEFILE_VERSION 响应文件模板的版本,该参数不要更改

    OPERATION_TYPE 安装类型,该参数不要更改

    SOURCEDB  数据库名,不是全局数据库名,即不包含db_domain 

    3) 删除期间查看日志信息了解进度:

    $ tail -100f $ORACLE_BASE/cfgtoollogs/dbca/$ORACLE_SID/$ORACLE_SID.log

  • 相关阅读:
    数据库字段说明查询
    MUI 微信支付代码
    数据库 批量删除表
    c# 微信开发 《内容回复或事件触发》
    C# 微信开发 《验证签名》
    SQL SERVER占用CPU过高排查和优化
    类属性验证简单说明
    地图纠偏
    区块链-6一个故事告诉你比特币的原理及运作机制
    区块链-5区块链技术入门,涉及哪些编程语言?
  • 原文地址:https://www.cnblogs.com/guanghe/p/7351595.html
Copyright © 2011-2022 走看看