Linux下 Oracle数据库安装详解

作者: 程序员大佬超 | 来源:发表于2020-01-19 14:28 被阅读0次

    安装环境

    系统:Linux CentOS7 64位
    Oracle版本:Oracle 11g R2

    文章重点

    1、安装前准备
    2、安装详解
    3、相关使用配置
    4、遇到的问题及解决方法


    一、安装前准备

    1、创建运行oracle数据库的系统用户和用户组

    [yxc@localhost ~]$ su root  #切换到root
    Password: 
    [root@localhost ~]# groupadd oinstall  #创建用户组oinstall
    [root@localhost ~]# groupadd dba  #创建用户组dba
    [root@localhost ~]# useradd -g oinstall -g dba -m oracle  #创建oracle用户,并加入到oinstall和dba用户组
    [root@localhost ~]# passwd oracle  #设置用户oracle的登陆密码,不设置密码,在CentOS的图形登陆界面没法登陆
    Changing password for user oracle.
    New password:   # 密码
    BAD PASSWORD: The password is shorter than 8 characters
    Retype new password:   # 确认密码
    passwd: all authentication tokens updated successfully.
    [root@localhost ~]# id oracle # 查看新建的oracle用户
    uid=1001(oracle) gid=1002(dba) groups=1002(dba)
    

    如下图所示:


    创建用户及用户组.png

    2、修改/etc/sysctl.conf文件,输入命令:vi /etc/sysctl.conf ,将下列内容加入该文件。

    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
    

    使用/sbin/sysctl -p命令使 sysctl.conf 配置生效。

    3、修改操作系统核心参数
    输入命令:vi /etc/security/limits.conf,将下列内容加入该文件。

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

    4.、修改/etc/pam.d/login 文件,输入命令:vi /etc/pam.d/login,将下列内容加入该文件。

    session required /lib/security/pam_limits.so
    session required pam_limits.so
    

    5、 编辑 /etc/profile ,输入命令: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
    

    6、创建数据库软件目录和数据文件存放目录,注意磁盘空间即可,这里我放到oracle用户下,输入如下命令:

    mkdir /home/oracle/app
    mkdir /home/oracle/app/oracle
    mkdir /home/oracle/app/oradata
    mkdir /home/oracle/app/oracle/product
    

    7、更改目录属主为 oracle 用户所有,输入命令:

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

    8、切换为oracle用户登录

    su - oracle
    

    9、配置 oracle 用户环境变量
    编辑 bash_profile ,输入命令:vi .bash_profile,添加如下环境变量。

    export ORACLE_BASE=/home/oracle/app
    export ORACLE_HOME=$ORACLE_BASE/oracle/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
    

    10、切换为 root 用户,关闭 selinux

    su root
    # 修改/etc/selinux/config文件
    vi /etc/selinux/config
    

    修改SELINUX为disabled,如下:

    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #     enforcing - SELinux security policy is enforced.
    #     permissive - SELinux prints warnings instead of enforcing.
    #     disabled - No SELinux policy is loaded.
    SELINUX=disabled   #此处修改为disabled
    # SELINUXTYPE= can take one of three two values:
    #     targeted - Targeted processes are protected,
    #     minimum - Modification of targeted policy. Only selected processes are protected. 
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted 
    

    二、软件包依赖

    安装oracle之前需要许多软件包依赖,如果可用外网,使用如下命令安装。

    yum 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 ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
    

    查看这些软件包版本,可使用如下命令,如有未安装的会有提示。

    rpm -q binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
    

    如果 compat-libstdc++ 安装提示No package compat-libstdc++ available.,请使用命令yum install compat-libstdc++-33安装。
    使用rpm -qa | grep "compat-libstdc"可查看。

    三、安装

    1、下载安装包

    官网下载地址:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#11g,这里下载11g R2版本,两个包都下载,如下:

    download.png
    2、安装

    解压安装包,命令如下:

    unzip linux.x64_11gR2_database_1of2.zip
    unzip linux.x64_11gR2_database_2of2.zip
    

    解压完成后,database目录如下


    unzip.png

    切换到oracle用户

    su - oracle
    

    进入 database 目录,使用./runInstaller命令安装,如下

    cd database
    ./runInstaller
    

    注:如果安装过程中出现弹窗很小,显示不全的问题,安装命令换为如下即可。

    ./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
    

    不出意外的话,恭喜你,将弹出安装界面,如果遇到display at least 256 colors这个问题,请看文末的解决办法。弹出安装界面后安装过程比较简单,就不细说了,步骤截图如下。

    1configureSU.png

    安装选项,三个选项分别为:①创建并配置一个新数据库。②只安装数据库软件,适用于已有Oracle数据库数据用于数据迁移的。③升级已有数据库。这里选择第一个选项。


    2installOption.png 3systemClass.png 4gridOption.png 5installType.png 6languages.png 7dbEdition.png 8installLocation.png 8installLocation.png 9createInventory.png 10configurationType.png 11databaseIdentifiers.png 12configOption.png 13managementOptions.png 14dbStorage.png 15Backup.png 16schemaPwd.png 17OprSysGroup.png 18PrerequisiteChecks.png 19Summary.png 20InstallProduct.png 21dbca.png 22pwdManage.png 23unlockPwdM.png 24shScript.png

    这里提示执行这两个脚本,执行即可,如下:


    25runScript.png 26finish.png

    至此,数据库安装成功。
    注:listener.ora和tnsnames.ora所在路径为
    /home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/

    3、防火墙设置

    oracle数据库默认端口号1521,这里设置防火墙开放1521端口,如下

    firewall-cmd --add-port=1521/tcp --permanent --zone=public
    #重启防火墙(修改配置后要重启防火墙)
    firewall-cmd --reload
    

    四、相关使用

    1、启动与关闭数据库
    //oracle11为需要执行的oracle实例
    export ORACLE_SID=oracle11
    
    sqlplus /nolog
    connect /as sysdba
    
    //启动数据库
    startup
    //关闭数据库
    shutdown
    
    //查看登录的数据库实例
    select instance_name from v$instance;
    //查看当前登录的用户
    show user
    //查看数据字典包含哪些字段
    desc dba_users;
    
    2、启动和停止监听器

    在oracle用户下的OS层面执行,而不是在sqlplus中执行

    //启动监听
    lsnrctl start
    //停止监听
    lsnrctl stop
    
    3、解锁用户
    alter user username account unlock;
    //例如解锁scott用户,如下:
    alter user scott account unlock;
    
    4、创建用户
    sqlplus /nolog
    //登录指定数据库
    conn sys/pwd@oracle11 as sysdba;
    

    查看用户表空间放置位置:

    select name from v$datafile;
    

    创建用户表空间

    CREATE TABLESPACE NOTIFYDB DATAFILE '/home/oracle/app/oradata/oracle11/scsdb.dbf' SIZE 200M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; 
    

    创建用户,指定密码和上面创建的用户表空间

    CREATE USER yxc IDENTIFIED BY yxc DEFAULT TABLESPACE NOTIFYDB;
    

    赋予权限

    grant connect,resource to yxc;
    grant unlimited tablespace to yxc;
    grant create database link to yxc;
    grant select any sequence,create materialized view to yxc;
    

    五、问题及解决方法

    1、使用dbca创建数据库时,中文乱码

    使用如下命令启动 dbca 即可

    export LANG="en_US:UTF-8"
    dbca
    
    2、【ORACLE】安装时遇到“display at least 256 colors”

    解决方法:
    方式1:

    su - root
    password
    DISPLAY=:0.0
    export DISPLAY
    ehco $DISPLAY
    xhost
    xhost +
    
    su - oracle
    DISPLAY=:0.0
    export DISPLAY
    echo $DISPLAY
    

    方式2:也可以直接将DISPLAY写入配置文件

    vim .bash_profile
    //配置display变量
    export display=:0.0 
    
    生效配置文件
    source .bash_profile 
    
    3、安装过程中弹出错误,如下图所示
    installError.png

    查看日志如下:


    errorLog.png

    可能是glibc的版本过高所致(高于2.14),解决办法:
    下载安装glibc-static-2.17-292.el7.x86_64.rpm,如下图所示,如需下载此包请前往:传送门

    安装glibc.png

    修改文件/home/oracle/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk,将

    ctxhx: $(CTXHXOBJ)
        $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
    

    改为:

    ctxhx: $(CTXHXOBJ)
        -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a
    
    ins_ctx.png

    接着又提示错误如下:


    installError2.png

    莫要慌张,修改
    /home/oracle/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk文件,将

    $(MK_EMAGENT_NMECTL)
    

    改为:

    $(MK_EMAGENT_NMECTL) -lnnz11
    
    ins_emagent.png

    保存后点击 Retry 即可,如下:


    retry.png
    4、plsql连接数据库时,报如下错误
    plsql连接报错.png

    解决:listener.ora中加入如下内容,其中orcl改为你的数据库实例名称

    SID_LIST_LISTENER =  
    (SID_LIST =  
      (SID_DESC =  
      (GLOBAL_DBNAME = orcl)
      (SID_NAME = orcl)
      )
    )
    
    listenerora.png

    原创不易,转载请注明出处!最后感兴趣的可以关注下我的公众号(公众号搜索chaodev)。

    相关文章

      网友评论

        本文标题:Linux下 Oracle数据库安装详解

        本文链接:https://www.haomeiwen.com/subject/suthzctx.html