zoukankan      html  css  js  c++  java
  • centos7安装oracle参考

    oracle数据库官方文档

    一、检查环境

    [root@node82 ~]# cat /etc/centos-release
    CentOS Linux release 7.6.1810 (Core)
    

    验证处理器体系结构与要安装的Oracle软件版本相匹配。如果看不到预期的输出,则无法在该系统上安装软件。
    检查内存和交换分区
    free -m 或者free -g
    在这里插入图片描述
    注意:如果部署 oralce 数据库,还要确保有 swap 分区,且空间大于 128M。

    二、数据库安装

    2.1数据库版本

    (企业版):Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    安装包见附件压缩包名称如下:在这里插入图片描述

    2.2参数修改

    2.2.1 limits.conf 文件修改
    修改用户的 SHELL 的限制,修改/etc/security/limits.conf 文件
    输入命令 vi /etc/security/limits.conf i 键进入编辑模式增加以下内容(建议直接复制)

    limits.conf工作原理
      limits.conf是 pam_limits.so的 配置文件,然后/etc/pam.d/下的应用程序调用pam_***.so模块。譬如说,当用户 访问服务器,服务程序将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目 录下选择一个对应的服务文件,然后根据服务文件的内容选择具体的PAM模块进行处理。

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

    2.2.2 Linux服务器安全策略配置-PAM身份验证模块-login 文件修改

    输入命令:vi /etc/pam.d/login,i 键进入编辑模式,将下列内容加入该文件末
    尾。

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

    2.2.3 sysctl.conf 文件修改
    修改内核参数。输入命令: vi /etc/sysctl.conf ,i 键进入编辑模式,将下列内容加入该文件:

    fs.file-max = 6815744
    fs.aio-max-nr = 1048576
    kernel.shmall = 2097152
    kernel.shmmax = 2147483648
    kernel.shmmni = 4096
    kernel.sem = 250 32000 100 128
    net.ipv4.ip_local_port_range = 9000 65500
    net.core.rmem_default = 4194304
    net.core.rmem_max = 4194304
    net.core.wmem_default = 262144
    net.core.wmem_max = 1048576 
    

    刷新输入:

    #sysctl -p
    

    ** 2.2.4 /etc/profile 文件修改 **
    限制进程数。输入命令:vi /etc/profile,i 键进入编辑模式,将下列内容加入该文件。

    if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
     ulimit -p 16384
     ulimit -n 65536
    else
     ulimit -u 16384 -n 65536
    fi
    fi 
    

    三、安装准备

    3.1 完善依赖包
    不同的版本请参考官方文档

    sudo yum -y install binutils compat-libstdc++ elfutils-libelf
    elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc
    glibc-common glibc-devel glibc-headers kernel-headers libaio libaio-devel
    libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC
    unixODBC-devel compat-libstdc++-33.x86_64 ksh
    

    如果检查 compat-libstdc++ 一直没有安装
    解决方法:sudo yum list all |grep “compat-libstdc++”
    在这里插入图片描述
    **3.2 创建用户和组 **
    创建相关用户和组,作为软件安装和支持组的拥有者。
    创建 Oracle 用户和密码,输入如下命令:

     groupadd dba
     groupadd oinstall
     useradd oracle -g oinstall -G dba ##使Oracle用户同时属于这两个组
     passwd oracle 
    

    然后会让你输入密码,密码任意输入 2 次,但必须保持一致,回车确认。
    tips:Linux查看用户的属组groups <user1> <user2> <user3>

    3.3 创建数据库软件目录
    创建数据库软件目录和数据文件存放目录,目录的位置,根据自己的情况来定,注
    意磁盘空间即可,输入如下命令:

    mkdir -p /home/oracle/app/{oracle,oraInventory,oradata}
    

    3.4 更改目录属组
    更改目录属主为 Oracle 用户所有,输入命令:

    chown -R oracle:oinstall /home/oracle/app
    

    3.5 配置环境变量
    配置 oracle 用户的环境变量,首先,切换到新创建的 oracle 用户下,输入:su - oracle ,然后直接再输入 : vi .bash_profile i 键进入编辑模式,将下列内容加入该文件末尾。

    export ORACLE_BASE=/home/oracle/app/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
    export ORACLE_SID=orcl
    export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib 
    

    四、安装过程

    4.1 解压包
    首先将下载的 Oracle 安装包复制到 linux 中:

    sudo yum -y install unzip --安装解压包(可忽略)
    unzip p13390677_112040_Linux-x86-64_1of7.zip
    unzip p13390677_112040_Linux-x86-64_2of7.zip 
    

    解压完成后 cd 进入其解压后的目录 database,使用 ls 命令也可以查看解压后 database 所包含的文件

    cd database
    

    4.2 复制响应模板文件
    Oracle 用户登入,su - oracle,输入如下命令:

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

    **4.3 设置响应文件权限 **
    切换到 root 用户,su - root,输入如下命令:

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

    **4.4 静默安装 oracle 软件 **
    切换回 oracle 用户,su - oracle
    修 改 安 装 Oracle 软 件 的 响 应 文 件 /home/oracle/etc/db_install.rsp
    /home/oracle/app 可以改成自定义的数据目录,输入如下命令:

    vi /home/oracle/etc/db_install.rsp
    

    要修改的参数如下:

    oracle.install.option=INSTALL_DB_SWONLY //29 行 安装类型
    ORACLE_HOSTNAME=localdomain //37 行 主机名称,通过 hostname 命令获得
    UNIX_GROUP_NAME=oinstall//42 行 安装组
    INVENTORY_LOCATION=/home/oracle/app/oraInventory //47 行 INVENTORY 目
    录
    SELECTED_LANGUAGES=en,zh_CN,zh_TW //78 行 选择语言
    ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1 //83 行
    oracle_home 和上面配置环境变量里的目录保持一致
    ORACLE_BASE=/home/oracle/app/oracle //88 行 oracle_base,和 INVENTORY 目
    录要同级
    oracle.install.db.InstallEdition=EE //99 行 oracle 版本,EE 为企业版
    oracle.install.db.DBA_GROUP=dba //142 行 dba 用户组
    oracle.install.db.OPER_GROUP=oinstall //147 行 oper 用户组
    oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //160 行 数据
    库类型
    oracle.install.db.config.starterdb.globalDBName=orcl //165 行
    globalDBName
    oracle.install.db.config.starterdb.SID=orcl //170 行 SID
    oracle.install.db.config.starterdb.characterSet=ZHS16GBK//指定字符集
    oracle.install.db.config.starterdb.installExampleSchemas=false// 是 否
    载入模板示例
    oracle.install.db.config.starterdb.enableSecuritySettings=true// 是 否
    启用安全设置
    oracle.install.db.config.starterdb.memoryLimit=512 //192/200 行 自动管
    理内存的最小内存(M)
    oracle.install.db.config.starterdb.password.ALL=LINKCLD_ORCL //23 行设
    定所有数据库用户使用同一个密码
    DECLINE_SECURITY_UPDATES=true //385 行 设置安全更新 
    

    在 oracle 用户下,su - oracle 切换到 database 目录下 cd database,输入如下命令:

    ./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp
    

    开始安装,安装中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果
    出现[FATAL],则安装程序已经停止了。执行直到出现如下页面:

    The following configuration scripts need to be executed as the "root"
    user.
    #!/bin/sh
    #Root scripts to run
    /home/oracle/app/oraInventory/orainstRoot.sh
    /home/oracle/app/product/11.2.0/db_1/root.sh
    To execute the configuration scripts:
    1. Open a terminal window 
    2. 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 /home/oracle/app/oraInventory/orainstRoot.sh
    sh /home/oracle/app/product/11.2.0/db_1/root.sh
    

    脚本执行完成后,回到以上界面,按回车键
    4.5 增加 oracle 用户的环境变量
    在 oracle 用户下,su - oracle,编辑文档,输入如下命令:vi ~/.bash_profile
    键 i 进入编辑模式,在最后直接增加以下内容:

    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
    

    4.6 配置静默网络
    Oracle 用户下,su - oracle,输入如下命令:

    $ORACLE_HOME/bin/netca /silent /responseFile
    /home/oracle/etc/netca.rsp
    ##配置静默监听程序
    

    如果报如下错:

    UnsatisfiedLinkError exception loading native library: njni11 java.lang.UnsatisfiedLinkError:
    /home/oracle/app/oracle/product/11.2.0/db_1/lib/libnjni11.so: libclntsh.so.11.1: cannle: No such file or directory 
    

    解决方法:

    cp /home/oracle/app/oracle/product/11.2.0/db_1/inventory/Scripts/ext/lib/libcl
    ntsh.so.11.1 /home/oracle/app/oracle/product/11.2.0/db_1/lib
    

    再次执行如下命令:

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

    提示如下:

    Listener started successfully.
    Listener configuration complete.
    Oracle Net Services configuration successful. The exit code is 0 
    

    输入如下命令查看:

    ss -antp|grep 1521
    

    4.7 修改静默安装配置
    修改仅安装数据库的响应文件,输入如下命令:

    vi /home/oracle/etc/dbca.rsp
    

    修改下列参数:

    GDBNAME="orcl.localdomain " //78 行 全局数据库的名字=SID+主机域名
    SID="orcl" //149 行 SID
    CHARACTERSET="ZHS16GBK" //415 行 编码
    NATIONALCHARACTERSET="AL16UTF16" //425 行 编码
    DATAFILEDESTINATION = /home/oracle/app/oradata //356 行 
    

    **4.8 进行静默安装数据库 **
    Oracle 用户下,su - oracle 输入如下命令回车:

    $ORACLE_HOME/bin/dbca -silent -responseFile /home/oracle/etc/dbca.rsp
    

    执行完以上命令之后,屏幕会变成白板,其实此时是输入 oracle 的 sys 和 system
    的密码,输入两次,然后会显示执行的百分比进度同 时 会 提 示 : oracle 的 日 志 文 件 是/u01/app/oracle/cfgtoollogs/dbca/orcl/orcl.log然后检查并修改 oracle 命令的权限(6751),如果权限不对,输入如下命令修改:

    chmod 6751 $ORACLE_HOME/bin/oracle
    

    4.9 建库后实例检查
    启动监听端口,输入如下命令:lsnrctl start
    建库后实例检查,输入如下命令:

    ps -ef | grep ora | grep -v grep | wc -l
    ps -ef | grep ora | grep -v grep
    ps -ef|grep oracle|egrep -v "bash|su|grep|ps" 
    

    检查到 sqlplus 进程才算正常,可以配置下面的服务文件

    oracle 3695 3413 0 14:46 pts/1 00:00:00 sqlplus
    oracle 11082 1 0 15:19 ? 00:00:00 /u01/app/oracle/product/11.2.0/db_1/bin/tnslsnr LISTENER -inherit 
    

    建库后监听状态检查,输入如下命令:lsnrctl status

    五、开机启动

    5.1 配置修改
    切换到 root 用户,su – root,输入如下命令:

    vi /home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/dbstart 
    

    将下列内容加入该文件:

    ORACLE_HOME_LISTNER=$ORACLE_HOME //在 65 行添加
    

    保存退出后输入如下命令:

    vi /home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/dbshut 
    

    将下列内容加入该文件:

    ORACLE_HOME_LISTNER=$ORACLE_HOME //在 39 行添加
    

    保存后退出,接着输入:vi /etc/oratab把末尾的 N 改成 Y,如下:

    orcl:/home/oracle/app/oracle/product/11.2.0/dbhome_1:Y
    

    5.2 创建启动文件
    修改文件配置,切换到 root 用户,su – root,输入如下命令:
    vi /etc/rc.d/init.d/oracled
    以下内容粘贴到新文件中,ORACLE_HOME=自己安装的目录

    #! /bin/bash
    # chkconfig: 345 90 10
    # description: The Oracle Database is an Object-Relational Database
    Management System.
    #
    # processname: oracle
    . /etc/rc.d/init.d/functions
    LOCKFILE=/var/lock/subsys/oracle
    ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1
    ORACLE_USER=oracle
    case "$1" in
    'start')
     if [ -f $LOCKFILE ]; then
     echo $0 already running.
     exit 1
     fi 
     echo -n $"Starting Oracle Database:"
     su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"
     su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
     ##su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
     touch $LOCKFILE
     ;;
    'stop')
     if [ ! -f $LOCKFILE ]; then
     echo $0 already stopping.
     exit 1
     fi
     echo -n $"Stopping Oracle Database:"
     su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
     su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
     ##su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
     rm -f $LOCKFILE
     ;;
    'restart')
     $0 stop
     $0 start
     ;;
    'status')
     if [ -f $LOCKFILE ]; then
     echo $0 started.
     else
     echo $0 stopped.
     fi
     ;; 
     *)
     echo "Usage: $0 [start|stop|status]"
     exit 1
    esac
    exit 0 
    

    修改权限配置,同样是 root 用户下,su – root,输入如下命令:

    chown oracle.dba /etc/init.d/oracled
    chmod a+x /etc/init.d/oracled
    chkconfig --add oracled
    chkconfig oracled on //添加 oracled 服务开机启动 
    

    设置 oracle 用户的 sudo 权限,使用 systemctl 命令管理 oracled 服务,输入如下
    命令:chattr -i /etc/sudoers

    visudo
    

    i 键进入编辑模式,在该文件的 95 行左右添加一行内容如下:

    oracle   ALL=(ALL)   NOPASSWD:  /etc/init.d/oracled,/usr/bin/systemctl * oracled*
    

    oracle 服务的启动关闭重启命令如下:

    su - oracle //su – root 也可以
    sudo systemctl start oracled
    sudo systemctl stop oracled
    sudo systemctl restart oracled 
    
    作者:嘟嘟噜~
    本文版权归作者和博客园共有,转载时必须在文章页面给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    codeforces 459C Pashmak and Buses(模拟,组合数A)
    HDU 4639 Hehe(字符串处理,斐波纳契数列,找规律)
    HDU 1671 Phone List(字符处理)
    网页爬虫【原创】【开源】
    asp.net mvc 配合前端js的CMD模块化部署思想,小思路
    [转]阎宏博士的JAVA与模式
    [转]使用设计模式改善程序结构(三)
    [转]使用设计模式改善程序结构(二)
    [转]使用设计模式改善程序结构(一)
    html符号转换
  • 原文地址:https://www.cnblogs.com/xujint/p/14415537.html
Copyright © 2011-2022 走看看