zoukankan      html  css  js  c++  java
  • CentOS 7静默(无图形化界面)安装Oracle 11g

    准备CentOS 7 系统环境

    我以 CentOS-7-x86_64-DVD-1511.iso 为例,简述Oracle 11g的安装过程。

    由于是使用静默模式(silent)安装的,无需使用图形化界面,我选择了最小安装的服务器版的CentOS 7。

    安装过程可参考 https://jingyan.baidu.com/article/fd8044fade8ac35031137a82.html

    安装完成后,只有命令行界面。

     

    为了方便命令操作,我使用了远程连接工具Xshell

    我在这里和大家分享下绿色版的XshellXftpPortable:

    http://pan.baidu.com/s/1pL5DL4B

    下载后解压即可使用

     

    下载 Oracle 11g

    Oracle官方网站

    http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

    我的机器安装的是CentOS7 64位系统,因此下载的Oracle版本也是64位的

     

    11.2.0.2.0  zlinux64版本的Oracle是安装在IBM服务器的,CentOS 7是无法安装的。

    下载完成后,有两个压缩文件

    linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2.zip

     

    通过Xftp将压缩文件上传到 /db/

    安装依赖包

    安装依赖包之前,个人建议将yum源修改为aliyun源,下载速度快些,执行如下命令即可:

    cd /etc

    mv yum.repos.d yum.repos.d.bak

    mkdir yum.repos.d

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

    yum clean all

    yum makecache

     

    修改成功后,安装如下依赖包:

    yum -y install binutils

    compat-libstdc++-33

    elfutils-libelf

    elfutils-libelf-devel

    expat

    gcc

    gcc-c++

    glibc

    glibc-common

    glibc-devel

    glibc-headers

    libaio

    libaio-devel

    libgcc

    libstdc++

    libstdc++-devel

    make

    pdksh

    sysstat

    unixODBC

    unixODBC-devel

    安装完成后显示如下界面

     

    使用如下命令检查依赖是否安装完整

    rpm -q

    binutils

    compat-libstdc++-33

    elfutils-libelf

    elfutils-libelf-devel

    expat

    gcc

    gcc-c++

    glibc

    glibc-common

    glibc-devel

    glibc-headers

    libaio

    libaio-devel

    libgcc

    libstdc++

    libstdc++-devel

    make

    pdksh

    sysstat

    unixODBC

    unixODBC-devel | grep "not installed"

    发现 pdksh 没有安装

     

    执行 yum -y install pdksh,发现CentOS 7 没有相关安装包可用

    通过wget命令直接下载pdksh的rpm包,我下载到了/tmp/

    wget -O /tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm

    下载完成后,进入 /tmp/

     

    rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm

     

    再次检查依赖包是否安装完整

    rpm -q

    binutils

    compat-libstdc++-33

    elfutils-libelf

    elfutils-libelf-devel

    expat

    gcc

    gcc-c++

    glibc

    glibc-common

    glibc-devel

    glibc-headers

    libaio

    libaio-devel

    libgcc

    libstdc++

    libstdc++-devel

    make

    pdksh

    sysstat

    unixODBC

    unixODBC-devel | grep "not installed"

     

    到此依赖包安装完整

    添加oracle用户组和用户

    groupadd oinstall

    groupadd dba

    groupadd asmadmin

    groupadd asmdba

    useradd -g oinstall -G dba,asmdba oracle -d /home/oracle

    添加完成后,查看oracle用户

    id oracle

    初始化oracle用户的密码

    passwd oracle

     

    配置hostname(本机IP映射)

    vim /etc/hosts

    192.168.154.154 centos-oracle

    测试hostname

    ping -c 3 centos-oracle

     

    优化OS内核参数

    kernel.shmmax 参数设置为物理内存的一半

    vim /etc/sysctl.conf

    fs.aio-max-nr=1048576

    fs.file-max=6815744

    kernel.shmall=2097152

    kernel.shmmni=4096

    kernel.shmmax = 1073741824

    kernel.sem=250 32000 100 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=1048586

    使参数生效

    sysctl -p

     

    限制oracle用户的shell权限

    vim /etc/security/limits.conf

    oracle              soft    nproc   2047

    oracle              hard    nproc   16384

    oracle              soft    nofile  1024

    oracle              hard    nofile  65536

    vim /etc/pam.d/login

    session  required   /lib64/security/pam_limits.so

    session  required   pam_limits.so

    vim /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

    创建oracle安装目录

    mkdir -p /db/app/oracle/product/11.2.0

    mkdir /db/app/oracle/oradata

    mkdir /db/app/oracle/inventory

    mkdir /db/app/oracle/fast_recovery_area

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

    chmod -R 775 /db/app/oracle

    配置oracle用户环境变量

    su - oracle

    vim .bash_profile

    umask 022

    export ORACLE_HOSTNAME=centos-orcl

    export ORACLE_BASE=/db/app/oracle

    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/

    export ORACLE_SID=ORCL

    export PATH=.:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH

    export LC_ALL="en_US"

    export LANG="en_US"

    export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"

    export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

    以上配置完成后,个人建议重启下系统

    reboot

    解压oracle压缩文件到 /db

    cd /db/

    unzip linux.x64_11gR2_database_1of2.zip -d /db

    unzip linux.x64_11gR2_database_2of2.zip -d /db

    解压完成后

    mkdir /db/etc/

    cp /db/database/response/* /db/etc/

    vim /db/etc/db_install.rsp

    oracle.install.option=INSTALL_DB_SWONLY

    DECLINE_SECURITY_UPDATES=true

    UNIX_GROUP_NAME=oinstall

    INVENTORY_LOCATION=/u01/app/oracle/inventory

    SELECTED_LANGUAGES=en,zh_CN

    ORACLE_HOSTNAME=centos-oracle

    ORACLE_HOME=/db/app/oracle/product/11.2.0

    ORACLE_BASE=/db/app/oracle

    oracle.install.db.InstallEdition=EE

    oracle.install.db.isCustomInstall=true

    oracle.install.db.DBA_GROUP=dba

    oracle.install.db.OPER_GROUP=dba

    开始安装

    su - oracle

    ./runInstaller -silent -ignorePrereq -responseFile /db/etc/response/db_install.rsp

    安装期间可以使用tail命令监看oracle的安装日志

    tail -f /db/app/oracle/inventory/logs/installActions2017-07-12_03-48-29PM.log

     

    安装完成,提示Successfully Setup Software.

    根据提示完成配置

     

    su root

    sh /db/app/oracle/inventory/orainstRoot.sh

    sh /db/app/oracle/product/11.2.0/root.sh

     

    配置静默监听

    su - oracle

    netca /silent /responsefile /db/etc/netca.rsp

     

    查看监听端口

    netstat -tnulp | grep 1521


    静默创建数据库

    TOTALMEMORY 设置为总内存的80%

    vi /db/etc/dbca.rsp

    GDBNAME = "orcl"

    SID = "orcl"

    SYSPASSWORD = "oracle"

    SYSTEMPASSWORD = "oracle"

    SYSMANPASSWORD = "oracle"

    DBSNMPPASSWORD = "oracle"

    DATAFILEDESTINATION =/db/app/oracle/oradata

    RECOVERYAREADESTINATION=/db/app/oracle/fast_recovery_area

    CHARACTERSET = "AL32UTF8"

    TOTALMEMORY = "1638"

    执行静默建库

    dbca -silent -responseFile /db/etc/dbca.rsp

     

    查看oracle实例进程

    ps -ef | grep ora_ | grep -v grep

     

    查看监听状态

    lsnrctl status

     

    登录sqlplus,查看实例状态

    sqlplus / as sysdba

    select status from v$instance;

     

    查看数据库编码

    select userenv('language') from dual;

     

    查看数据库版本信息

    select * from v$version;

     

    激活scott用户

    alter user scott account unlock;

    alter user scott identified by tiger;

    select username,account_status from all_users;

     

    Navicat远程连接Oracle

    开放1521端口

    firewall-cmd --zone=public --add-port=1521/tcp --permanent

    firewall-cmd --reload

    官方网站

    http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

    下载 instantclient-basic,解压压缩文件

     

    下载Navicat

    http://pan.baidu.com/s/1c2GP9U4

    打开Navicat,工具→选项

    打开OCI界面,在右侧OCI library一栏中选择instantclient-basic解压目录下的oci.dll,然后点击确定。

     

    重启Navicat,点击连接,选中Oracle

     

    IP为Oracle服务器的IP地址,服务名为Oracle的实例名,可忽略大小写

    select instance_name from v$instance;

     

    用户名使用刚激活的scott,密码为tiger,填完以上信息后点击连接测试

     

    到此Navicat远程连接Oracle数据库成功

    设置Oracle开机启动

    vi /db/app/oracle/product/11.2.0/bin/dbstart

    ORACLE_HOME_LISTNER=$ORACLE_HOME

    vi /db/app/oracle/product/11.2.0/bin/dbshut

    ORACLE_HOME_LISTNER=$ORACLE_HOME

    vi /etc/oratab

    orcl:/db/app/oracle/product/11.2.0:Y

    vi /etc/rc.d/init.d/oracle

    [plain] view plain copy
     
    1. #! /bin/bash  
    2. # oracle: Start/Stop Oracle Database 11g R2  
    3. #  
    4. # chkconfig: 345 90 10  
    5. # description: The Oracle Database is an Object-Relational Database Management System.  
    6. #  
    7. # processname: oracle  
    8. . /etc/rc.d/init.d/functions  
    9. LOCKFILE=/var/lock/subsys/oracle  
    10. ORACLE_HOME=/db/app/oracle/product/11.2.0  
    11. ORACLE_USER=oracle  
    12. case "$1" in  
    13. 'start')  
    14.    if [ -f $LOCKFILE ]; then  
    15.       echo $0 already running.  
    16.       exit 1  
    17.    fi  
    18.    echo -n $"Starting Oracle Database:"  
    19.    su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"  
    20.    su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"  
    21.    su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"  
    22.    touch $LOCKFILE  
    23.    ;;  
    24. 'stop')  
    25.    if [ ! -f $LOCKFILE ]; then  
    26.       echo $0 already stopping.  
    27.       exit 1  
    28.    fi  
    29.    echo -n $"Stopping Oracle Database:"  
    30.    su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"  
    31.    su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"  
    32.    su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"  
    33.    rm -f $LOCKFILE  
    34.    ;;  
    35. 'restart')  
    36.    $0 stop  
    37.    $0 start  
    38.    ;;  
    39. 'status')  
    40.    if [ -f $LOCKFILE ]; then  
    41.       echo $0 started.  
    42.       else  
    43.       echo $0 stopped.  
    44.    fi  
    45.    ;;  
    46. *)  
    47.    echo "Usage: $0 [start|stop|status]"  
    48.    exit 1  
    49. esac  
    50. exit 0  

    开机启动oracle

    systemctl enable oracle

    开机启动问题

    oracle ORA-12547: TNS:lost contact

    cd /db/app/oracle/product/11.2.0/bin/

    chmod 6751 oracle

    TNS-12555: TNS:permission denied

    cd /var/tmp

    chown -R oracle:oinstall .oracle

     

    藏经阁技术资料分享群二维码

    藏经阁技术资料分享群二维码
  • 相关阅读:
    OSG-提示“error reading file e:1.jpg file not handled”
    OSG-加载地球文件报0x00000005错误,提示error reading file simple.earth file not handled
    QT-找开工程后,最上方提示the code model could not parse an included file, which might lead to incorrect code completion and highlighting, for example.
    我的书《Unity3D动作游戏开发实战》出版了
    java中无符号类型的第三方库jOOU
    Windows批处理备份mysql数据
    使用 DevTools 时,通用Mapper经常会出现 class x.x.A cannot be cast to x.x.A
    Java版本,Java版本MongoDB驱动,驱动与MongoDB数据库,Spring之间的兼容性
    Jrebel本地激活方法
    wget下载指定网站目录下的所有内容
  • 原文地址:https://www.cnblogs.com/wangsongbai/p/9175946.html
Copyright © 2011-2022 走看看