• 小白爬坑的第一天:Oracle数据库版本11g在Linux无图形界面下的静默安装。


           之前在Windows server上安装Oracle 11g是有图形界面的对于我这样的新手是非常友好的。可是今天想要在Linux上使用下Oracle(我自己使用MySQL更多,Oracle使用的很少),虽然centos是可以安装图形界面的,但是我们知道大部分的Linux服务器基于资源暂用是不使用图形界面的,那么要怎么在无图形界面下进行安装呢。。。下面的我的小段爬坑经历,有不对的地方还望能够指出。

    一、准备centos系统(centos6与centos7有比较大的区别,具体的系统命令参考各自的手册就好,当然也可以使用其他Linux)这里我使用的是centos7.3x

    安装过程省略(我使用的是带开发工具的最小安装)

    二、下载Oracle 11g R2和其他软件工具

    1.

    官方下载地址:https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

    选择64位下载。一共有两个文件:linux.x64_11gR2_database_1of2.zip 和linux.x64_11gR2_database_2of2.zip

    ps:为保证文件完整性可以测下md5值与官方比对。

    2.为方便操作VMware里的Linux虚拟机,使用远程登录工具进行操作:

    xshell和xftp:链接: https://pan.baidu.com/s/1MQYcPpgSNLQRNQ7srl7bEA 提取码: 63fn  (此为学校or家庭使用的免费版,企业版请购买正版)

    putty:链接: https://pan.baidu.com/s/1ygPEXSb37laU5g_CwJqDLg 提取码: w9ui 

    ftp工具也可以使用:filezilla(个人认为也是比较好用的一款工具)

    三、安装

    1.安装依赖包:

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

    使用yum方式不能安装pdksh因此需要自己去下载安装:

    安装pdksh的RPM包:

    cd /opt
    wget http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
    rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm

    ps:有可能会遇到

    pdksh和ksh只能保留一个,这里我们保留pdksh

    这里我把yum源改成了国内的yum源使用的是系统自带的yum源有时候会很慢,更换方法为:

    创建备份

    mkdir /back
    cd /etc
    mv yum.repos.d /back/yum.repos.d.bak

    更新阿里的yum源

    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      #生成缓存

     检查安装的依赖包,使用rpm -qa 或者再次使用yum来检查所有包是否安装。

    2.安装前的环境准备

    添加用户和用户组:

    groupadd oinstall
    groupadd dba
    useradd -g oinstall -G dba oracle

    oinstall为Oracle的主组,dba设置为附加组

    初始化Oracle用户密码:

    passwd oracle

    在安装centos时我没有进行主机名初始化,现在来配置hostname:

    vim /etc/hosts

    ip地址的查看方式:ifconfig 或者ip addr

    修改好了以后:ping 修改的主机名 能ping通就ok!

    优化系统内核参数:

    因为是虚拟机的原因我们选择最小化(具体配置需要根据自己的硬件参照手册进行修改):

    vim /etc/sysctl.conf     #在文本末尾加入

    fs.aio-max-nr = 1048576

    fs.file-max = 6815744

    kernel.shmall = 2097152

    kernel.shmmax = 4294967295

    kernel.shmmni = 4096

    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用户权限

    vim /etc/security/limits.conf   #末尾加入

    oracle              soft    nproc   2047          #oracle 在 linux上打开 proc 数量

    oracle              hard    nproc   16384     

    oracle              soft    nofile  1024           #oracle 在 linux上打开 file 数量

    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 /app/oracle/product/11.2.0
    mkdir -p /app/oracle/inventory
    mkdir -p /app/oracle/oradata
    chown -R oracle:oinstall /app

    配置Oracle环境变量

    vim ~oracle/.bash_profile

    ps:

    export ORACLE_BASE=app/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/db_1 #path路径设置方法与jdk基本一致
    export ORACLE_SID=orcl # 最多 8个字符 ; 操作系统和 oracle实例关联的纽带 ;ORACLE_HOME+ORACLE_SID==>hash==> 共享内存段
    export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin #将安装后的 oracle 命令追加到执行搜索路径
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #动态库的位置
    export nls_lang="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" #客户端字符集设置

    到此重启系统:

    reboot 
    init 6
    shutdown -r now
    #上面3个命令都可以用于重启。

    hostname等设置已经生效

    3.开始安装

     使用xftp或者其他ftp工具上传从官网下载的安装包:(也可以直接使用wget工具直接将安装包下载到Linux)这是上传到/opt路径下

    分别解压2个压缩包:

    [root@centos7 opt]# unzip linux.x64_11gR2_database_1of2.zip
    [root@centos7 opt]# unzip linux.x64_11gR2_database_2of2.zip
    [root@centos7 opt]# cd ./database/
    [root@centos7 database]# ls
    doc  install  response  rpm  runInstaller  sshsetup  stage  welcome.html
    [root@centos7 database]# cd ./response/
    [root@centos7 response]# ls
    dbca.rsp  db_install.rsp  netca.rsp
    [root@centos7 response]# 

    进入响应文件夹有3个文件分别是数据库静默响应文件、数据库安装响应文件以及监听响应文件。

    修改安装响应文件:

    [root@centos7 response]# vim ./db_install.rsp

    修改以下选项:

     29 oracle.install.option=INSTALL_DB_SWONLY  #安装选项
    37 ORACLE_HOSTNAME=centos7 #hostname
    42 UNIX_GROUP_NAME=oinstall #主组
    47 INVENTORY_LOCATION=/app/oracle/inventory
    78 SELECTED_LANGUAGES=en,zh_CN 

    83 ORACLE_HOME=/app/oracle/product/11.2.0

    88 ORACLE_BASE=/app/oracle

       99 oracle.install.db.InstallEdition=EE    #版本

       108 oracle.install.db.isCustomInstall=true

       142 oracle.install.db.DBA_GROUP=dba   #admin管理组名

       147 oracle.install.db.OPER_GROUP=dba   #oper操作员组名

       160 oracle.install.db.config.starterdb.type=GENERAL_PURPOSE

       170 oracle.install.db.config.starterdb.SID=orcl

       200 oracle.install.db.config.starterdb.memoryLimit=800      #根据自己设定的物理内存设置,一般为物理内存的40%-60%

       233 oracle.install.db.config.starterdb.password.ALL=123456   #设置所有用户密码,方便后面更改。

    开始静默安装:

    [root@centos7 response]# su oracle
    [oracle@centos7 response]$ ls
    dbca.rsp  db_install.rsp  netca.rsp
    [oracle@centos7 response]$ cd ../
    [oracle@centos7 database]$ ls
    doc  install  response  rpm  runInstaller  sshsetup  stage  welcome.html
    [oracle@centos7 database]$ ./runInstaller -silent -ignorePrereq -responseFile /opt/database/response/db_install.rsp

    另起一个终端查看安装实时日志:

    注意安装过程会持续一会,没有出现[FATAL]或者[error]安装程序仍在运行。也可通过安装日志来确定安装进程:

     看到如下表示安装成功:

    按要求运行脚本:

    到此Oracle 11g r2就安装成功了!

    4.配置Oracle。

    配置监听:

     在Oracle用户下执行:

    [oracle@centos7 ~]$ netca /silent /responseFile /opt/database/bakrsp/netca.rsp

    我这里备份了response里的文件,bakrsp是备份目录,不需要备份直接从response文件夹中的文件执行!

    结果反馈:

    检查监听状态:

    [oracle@centos7 ~]$ netstat -tnulp | grep 1521
    (Not all processes could be identified, non-owned process info
     will not be shown, you would have to be root to see it all.)
    tcp6       0      0 :::1521                 :::*                    LISTEN      18790/tnslsnr       

    创建数据库:

    [oracle@centos7 ~]$ dbca -silent -responseFile /opt/database/bakrsp/dbca.rsp

    dbca.rsp可以根据自己的安装情况修改,大致需要修改的选项差不多有:

    GDBNAME
    SID
    SYSPASSWORD
    SYSTEMPASSWORD
    SYSMANPASSWORD
    DBSNMPPASSWORD
    DATAFILEDESTINATION
    CHARACTERSET = "AL32UTF8"
    TOTALMEMORY = "1638"     #物理内存的40-80%,一般80%

    查看监听状态:

    [oracle@centos7 ~]$ lsnrctl status

    结果为:

    如果遇到:上图中的实例状态REDAY为“UNKNOW”则需要检查自己的监听配置,或者查看/app/oracle/product/11.2.0/network/admin目录下的监听文件参考自己的情况进行排查。

    最后,登录数据库:

    [oracle@centos7 ~]$ lsnrctl start
    [oracle@centos7 ~]$ sqlplus / as sysdba

    常见问题:

    1. startup后出现:

      解决方法:参考:https://www.linuxidc.com/Linux/2012-12/76976.htm

    2. 无法使用
       sqlplus / as sysdba 登录,解决方法在/app/oracle/product/11.2.0/network/admin中编辑sqlnet文件加入SQLNET.AUTHENTICATION_SERVICES=(ALL)
    3. startup后出现:

     

     这个情况比较复杂具体参考:https://www.linuxidc.com/Linux/2016-10/135746.htm

    看到这个基本就问题不大了:

    尝试远程连接:

    由于是在虚拟机内,可以关掉防火墙:

    [root@centos7 ~]# systemctl stop firewalld

    连接成功。。。。爬坑第一天到此结束啦。。。

    PS:至于增加开机启动添加到服务等事宜,大家可以参考论坛等,或者我也会在开一个随笔来记录下。下一篇就说说简单点的MySQL的安装配置吧。

  • 相关阅读:
    Jzoj4782 Math
    Jzoj4778 数列编辑器
    Jzoj4778 数列编辑器
    力扣算法题—067二进制求和
    力扣算法题—066加一
    最小凸包算法
    力扣算法题—065有效数字
    力扣算法题—064最小路径之和
    力扣算法题—063不同路径2
    力扣算法题—062不同路径
  • 原文地址:https://www.cnblogs.com/observe/p/10405608.html
Copyright © 2020-2023  润新知