• CentOS 7安装Oracle 11gR2以及设置自启动(1)


    一、环境准备

    1、正确无误的CentOS 7系统环境

    虚拟机要求:

    内存至少2G

    处理器至少2个

    根分区要大于20G(安装oracle很占空间,空闲空间要足够)

    2、正确的JDK环境

     CentOS 7安装JDK:https://www.cnblogs.com/djlsunshine/p/10164680.html

    3、Oracle11g安装包

    下载地址:

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

     

    下载完成:

    二、  安装前准备

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

    创建用户组oinstall和dba

    # groupadd oinstall

    # groupadd dba

    创建oracle用户,并加入到oinstall和dba用户组

    # useradd -g oinstall -G dba -m oracle

    -g:指定用户所属的群组
    -G:指定用户所属的附加群组
    -m:自动建立用户的登入目录

    设置oracle用户的登录密码

    # passwd oracle

    查看新建的oracle用户

    # id oracle

    2、创建oracle数据库安装目录

    创建安装目录

    # mkdir -p /usr/oracle

    配置文件目录

    # mkdir -p /usr/oraInventory

    软件包解压目录

    # mkdir -p /usr/orapackage

    设置目录所有者为oinstall用户组的oracle用户

    # chown -R oracle:oinstall /usr/oracle

    # chown -R oracle:oinstall /usr/oraInventory

    # chown -R oracle:oinstall /usr/orapackage

    3、安装包准备

    把安装包上传到Linux中

    剪切到创建好的oracle安装包目录

    # mv linux.x64_11gR2_database_1of2.zip /usr/orapackage/

    # mv linux.x64_11gR2_database_2of2.zip /usr/orapackage/

    解压到当前目录

    # unzip linux.x64_11gR2_database_1of2.zip 

    # unzip linux.x64_11gR2_database_2of2.zip 

    4、修改OS系统标识

    oracle默认不支持CentOS系统安装,修改文件 /etc/RedHat-release

    查看版本信息

     # cat /proc/version 

    # cat /etc/redhat-release 

     # vi /etc/redhat-release 

    修改为redhat-7

    # cat /etc/redhat-release 

    5、安装oracle数据库所需要的软件包

    参考官网:

    https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm

    Oracle Linux 7 and Red Hat Enterprise Linux 7  

    The following packages (or later versions) must be installed:

    binutils-2.23.52.0.1-12.el7.x86_64 
    compat-libcap1-1.10-3.el7.x86_64 
    compat-libstdc++-33-3.2.3-71.el7.i686
    compat-libstdc++-33-3.2.3-71.el7.x86_64
    gcc-4.8.2-3.el7.x86_64 
    gcc-c++-4.8.2-3.el7.x86_64 
    glibc-2.17-36.el7.i686 
    glibc-2.17-36.el7.x86_64 
    glibc-devel-2.17-36.el7.i686 
    glibc-devel-2.17-36.el7.x86_64 
    ksh
    libaio-0.3.109-9.el7.i686 
    libaio-0.3.109-9.el7.x86_64 
    libaio-devel-0.3.109-9.el7.i686 
    libaio-devel-0.3.109-9.el7.x86_64 
    libgcc-4.8.2-3.el7.i686 
    libgcc-4.8.2-3.el7.x86_64 
    libstdc++-4.8.2-3.el7.i686 
    libstdc++-4.8.2-3.el7.x86_64 
    libstdc++-devel-4.8.2-3.el7.i686 
    libstdc++-devel-4.8.2-3.el7.x86_64 
    libXi-1.7.2-1.el7.i686 
    libXi-1.7.2-1.el7.x86_64 
    libXtst-1.2.2-1.el7.i686 
    libXtst-1.2.2-1.el7.x86_64 
    make-3.82-19.el7.x86_64 
    sysstat-10.1.5-1.el7.x86_64

    To use ODBC on Linux x86-64, the following additional ODBC RPMs are required:

    On Oracle Linux 7, and Red Hat Enterprise Linux 7:

    unixODBC-2.3.1-6.el7.x86_64 or later
    unixODBC-2.3.1-6.el7.i686 or later
    unixODBC-devel-2.3.1-6.el7.x86_64 or later
    unixODBC-devel-2.3.1-6.el7.i686 or later

    安装所需安装包

    [root@localhost ~]# yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686

    检测是否31个包都有安装(版本号只能大于规定的版本,不能小于

    [root@localhost ~]# rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst  make sysstat  unixODBC unixODBC-devel

    注意:我安装的时候并没有把全部的装上,有些安装包的源和包不好找,而且在网上自己下的话,软件的依赖性不好解决。我只安装成功了18个包,所以后期安装oracle的时候报错,但不影响。

    6、关闭防火墙、关闭selinux

    # systemctl stop firewalld

    # vi /etc/selinux/config 

    设置临时生效

    # setenforce 0

    7、修改内核参数

     # vi /etc/sysctl.conf 

    # System default settings live in /usr/lib/sysctl.d/00-system.conf.
    # To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file
    #
    # For more information, see sysctl.conf(5) and sysctl.d(5).
    net.ipv4.icmp_echo_ignore_broadcasts = 1
    net.ipv4.conf.all.rp_filter = 1
    fs.file-max = 6815744                       #设置一个进程可以打开的最大打开文件数
    fs.aio-max-nr = 1048576                     #限制未完成的并发请求,避免I/O系统故障
    kernel.shmall = 2097152                     #共享内存的总量,应不小于shmmax/page_size缺省值就是2097152
    kernel.shmmax = 2147483648                  #最大共享内存的段大小,不小于物理内存的一半
    kernel.shmmni = 4096                        #整个系统共享内存端的最大数
    kernel.sem = 250 32000 100 128              #设置的信号量
    net.ipv4.ip_local_port_range = 9000 65500   #可使用的IPv4端口范围
    net.core.rmem_default = 262144              #默认接收缓冲区大小
    net.core.rmem_max= 4194304                  #接收缓冲区最大值
    net.core.wmem_default= 262144               #默认的发送缓冲区大小
    net.core.wmem_max= 1048576                  #发送缓冲区最大值

    使配置参数生效

    # sysctl -p

    8、设置用户限制,提高软件运行性能

     # 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
    oracle hard stack 32768

    9、配置用户的环境变量

    # vi /home/oracle/.bash_profile 

    添加如下内容

    export ORACLE_BASE=/usr/oracle                            #oracl安装目录
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1       #oracle路径
    export ORACLE_SID=orcl                                    #oracle启动数据库实例名
    export ORACLE_TERM=xterm                                  #xterm窗口模式安装
    export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH              #添加系统环境变量
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib     #添加系统环境变量
    export LANG=C                                             #防止安装过程出现乱码
    export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK    #设置Oracle客户端字符集,必须与Oracle客户端安装时设置的字符集保持一致。有的是设为AL32UTF8,根据需要自行设定。

    使配置生效

    # source /home/oracle/.bash_profile 

    三、oracle安装

    1、使用Oracle账户登录

     

    2、为了防止安装时提示框出错无法显示,启动安装时添加本地JDK路径

    $ vi + /etc/profile

    执行命令开始安装

    $ cd /usr/orapackage/database/

    $ ls

    $ ./runInstaller -jreLoc /usr/java/jdk1.8

    3、安装界面安装流程

    去除选中,不自动接收Oracle的安全更新,next。

    第一项为企业级应用

    第二项只安装数据库

    第三项为升级现有数据库

    第一项为桌面类:一般适用于台式机和笔记本,包含最小数据库和最低配置要求,安装时只有基本选项。

    第二项为服务类:适用于服务器,例如,它会向您提供数据中心和用于支持企业级的应用程序。

    选择要执行的数据库安装类型

    单实例数据库安装

    重迭集群数据库安装

     选择典型安装

    会自动根据配置的环境变量获取路径,设置orcl用户的密码,确认密码

     输入的密码不符合oracle推荐的标准,不要管,直接点击yes

     默认选择

    这几个系统报错是因为现有的包的版本比检测要高,忽略即可

     

    到summer过程,若有需要可以保存一下文件,然后点击Finish

    当安装进度达到68%时,会出现如下图所示报错

    解决办法:

    查找安装目录下该文件:/usr/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk

    # vi /usr/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk 

    修改如下文件内容(11行左右)

    ctxhx: $(CTXHXOBJ) 
    $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) 
    修改为: 
    ctxhx: $(CTXHXOBJ) 
    -static $(LINK_CTXHX) $(CTXHXOBJ)$(INSO_LINK) /usr/lib64/libc.a

    保存(:wq)后,点击Retry继续安装

    有如下图所示报错

    打开此安装目录下文件:/usr/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk

    # vi /usr/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk 

    修改如下内容(190行左右)

    $(MK_EMAGENT_NMECTL)
    修改为   
    $(MK_EMAGENT_NMECTL) -lnnz11

     

    保存(:wq)后,点击continue继续安装

    漫长的等待过程……

     点击OK

     打开控制端,以root权限执行所示两个脚本

    # sh /usr/oraInventory/orainstRoot.sh 

    # sh /usr/oracle/product/11.2.0/db_1/root.sh 

    点击OK,安装完成,关闭界面

    4、创建Oracle监听

    $ netca 

    在oracle用户的图形界面oracle用户中,新开启一个终端,直接输入命令netca会弹出如下界面:

    创建监听服务(充当oracle服务器,让别的oracle客户端连接本oracle服务器)

    监听名随便起

    选择监听器协议,默认TCP,点击Next

    配置监听端口,默认1521,点击Next

    然后弹出这个,大概意思是:

    使用另一个端口号:

    为该侦听器提供的信息目前正由该计算机上的另一个侦听器使用

    您可以按原样继续进行配置,但在冲突解决之前无法启动此侦听器。您想继续进行配置吗?

    换一个端口号

    配置完成,提示是否增加另外的监听器,选择No,点击Next

    有两个监听可选,默认和刚刚创建的监听

    点击Finish结束配置程序,命令行界面会提示配置的信息并将新的监听器启动

    详情请参考:

    https://jingyan.baidu.com/article/47a29f24442f65c0142399c2.html

    监听器的启动和停止

    lsnrctl start LISTENER            #启动名为LISTENER的监听器
    lsnrctl stop LISTENER             #关闭名为LISTENER的监听器

     查看监听器运行状态

    lsnrctl status LISTENER           #查看名为LISTENER的监听器的运行状态

     $ lsnrctl status djl

    查看所有监听运行状态

    $ lsnrctl status

    查看监听文件

    $ cat /usr/oracle/product/11.2.0/db_1/network/admin/listener.ora

    # listener.ora Network Configuration File: /usr/oracle/product/11.2.0/db_1/network/admin/listener.ora
    # Generated by Oracle configuration tools.
    
    ADR_BASE_DJL = /usr/oracle
    
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        )
      )
    
    ADR_BASE_LISTENER = /usr/oracle
    
    DJL =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1520))
        )
      )

    $ cd /usr/oracle/product/11.2.0/db_1/network/admin/

    $ cat listener.ora

    # listener.ora Network Configuration File: /usr/oracle/product/11.2.0/db_1/network/admin/listener.ora
    # Generated by Oracle configuration tools.
    
    ADR_BASE_DJL = /usr/oracle
    
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        )
      )
    
    ADR_BASE_LISTENER = /usr/oracle
    
    DJL =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1520))
        )
      )

    $ cat sqlnet.ora

    # sqlnet.ora Network Configuration File: /usr/oracle/product/11.2.0/db_1/network/admin/sqlnet.ora
    # Generated by Oracle configuration tools.
    
    NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
    
    ADR_BASE = /usr/oracle

    5、安装oracle数据库实例

    $ dbca

    选择创建一个新的数据库,即新的实例

    默认为普通的事务数据库,点击Next

    填写数据库实例名(填写数据的全局名称和数据库id)

    已经默认创建的数据库实例名为orcl

    设置密码,所有用户使用同一密码,点击Next

     点击yes(密码设置的太简单了,不符合oracle要求规范,是否继续)

    选择用本地的数据文件模版地址,点击Next

    设置数据恢复路径,默认,点击next

    设置创建实例方案表空间,可以不创建,点击Next

    设置数据库内存,若作为服务器数据库设置为70%

    设置连接数,默认为150,根据需要设置

    设置字符集,选择与安装Oracle时的设置相同的字符集ZHS16GBK如果Oracle用的字符集为AL32UTF8,就选择AL32UTF8。当然,如果这里字符集选错了,安装好了也是可以修改的,只是稍有麻烦。

    设置连接类型,共享内存或者独享内存,也可以默认,点击Next

    选择Generate Database Creation Scripts(生成数据库创建脚本),可以为手工建库脚本提供参考

    点击Finish,完成创建

     可保存,也可不保存

    创建数据库,创建完成后点击Exist退出。又是一个漫长等待的过程……

    6、创建表空间和用户授权

    (1)、连接数据库

    $ sqlplus / as sysdba

    (2)、创建数据库表空间

    语法:
    create tablespace 表空间名 
    datafile ‘物理地址(相当于文件路径)’
    size初始大小(单位M)
    autoextend on next每次自增的大小(单位M)
    maxsize unlimited (此关键字用于不限制表空间大小)

    SQL> create tablespace test1_teblespace
    datafile '/usr/oracle/oradata/orcl/test1_teblespace.dbf'
    size 500M
    autoextend on next 100M
    maxsize unlimited;

    (3)、创建用户并指定表空间

    语法:
    create user 用户名 identified by 口令[即密码] default tablespace 表空间名;

    SQL> create user test1 identified by test1 default tablespace test1_teblespace;

    (4)、给用户授予权限

    语法:
    grant 权限1, 权限2, 权限3…… to 用户名

    SQL> grant connect,resource,dba to test1;

    (5)、删除表空间

    语法:
    drop tablespace 表空间名 including contents and datafiles cascade constraints;

    SQL> drop tablespace test1_teblespace including contents and datafiles cascade constraints;

    including contents   删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间无法删除。
    including datafiles  删除表空间中的数据文件
    cascade constraints  同时删除表空间中表的外键参照

     (6)、删除用户

    语法:
    drop user 用户名 cascade; 
    最后这个级联特别有用(删除用户以及所有关联的数据库对象)

    SQL> drop user test1 cascade;  

     

    四、  设置数据库自启动

     方法一:

     1、安装好Oracle数据库后: 执行 dbstart和dbshut

    $ dbshut

    $ dbstart

    错误原因:dbstart和dbshut脚本文件中ORACLE_HOME_LISTNER的设置有问题

    分别打开两个文件修改如下内容

    ORACLE_HOME_LISTNER=$1
    修改为:
    ORACLE_HOME_LISTNER=$ORACLE_HOME

    $ vim $ORACLE_HOME/bin/dbstart

    $ vi $ORACLE_HOME/bin/dbshut

    修改后保存退出,问题解决

    2、Linux启动时自动启动Oracle监听和实例

    第一步:修改/etc/oratab文件

    找到:   orcl:/usr/oracle/product/11.2.0/db_1:N   
    修改为: orcl:/usr/oracle/product/11.2.0/db_1:Y
    (这个路径跟安装路径有关,$ORACLE_SID:$ORACLE_HOME:<N|Y>)

    $ vi /etc/oratab 

    第二步:把lsnrctl start和dbstart添加到rc.local文件中:

     root权限执行

    # vi /etc/rc.d/rc.local 

    添加:

    su - oracle -lc "/usr/oracle/product/11.2.0/db_1/bin/lsnrctl start"
    su - oracle -lc "/usr/oracle/product/11.2.0/db_1/bin/dbstart"

    说明:

    第一行为开机启动数据库监听服务,第二行为开机启动数据库。(路径跟安装路径相关)。

    注意:CentOs7中/etc/rc.d/rc.local不会开机执行,需添加执行权限。

    查看/etc/rc.d/rc.local的权限

     # ll /etc/rc.d/rc.local 

    添加执行权限

    # chmod +x /etc/rc.d/rc.local 

    3、重启电脑后查看是否自启动成功

    # reboot

    查看监听是否自启动成功

    $ lsnrctl status LISTENER

    查看Oracle服务状态

    $ ps -aux | grep oracle

    4、oracle的启动或关闭管理

    启动

    $ dbstart

    关闭

    $ dbshut 

     CentOS 7安装Oracle 11gR2以及设置自启动(2)

     https://www.cnblogs.com/djlsunshine/p/10201170.html

    参考博客

    CentOS 7安装Oracle 11gR2以及设置自启动

    https://www.cnblogs.com/VoiceOfDreams/p/8308601.html 

  • 相关阅读:
    vim跳转(一)
    代理服务器
    python类
    python 删除/查找重复项
    DNS缓存
    DNS查询过程
    http返回头中content-length与Transfer-Encoding: chunked的问题释疑
    jquery mouseover与mouseenter,mouserout与mouseleave的区别
    php提示Call-time pass-by-reference has been deprecated in的解决方法
    uboot启动内核(3)
  • 原文地址:https://www.cnblogs.com/djlsunshine/p/10166029.html
Copyright © 2020-2023  润新知