• Centos安装Oracle及问题处理


    安装Oracle前准备

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

    [jonathan@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)
    

      

    创建oracle数据库安装目录

    [jonathan@localhost ~]$ su root
    Password:
    [root@localhost]# mkdir -p /data/oracle  #oracle数据库安装目录
    [root@localhost]# mkdir -p /data/oraInventory  #oracle数据库配置文件目录
    [root@localhost]# mkdir -p /data/database  #oracle数据库软件包解压目录
    [root@localhost]# cd /data
    [root@localhost data]# ls  #创建完毕检查一下(强迫症)
    database  oracle  oraInventory
    [root@localhost data]# chown -R oracle:oinstall /data/oracle  #设置目录所有者为oinstall用户组的oracle用户
    [root@localhost data]# chown -R oracle:oinstall /data/oraInventory
    [root@localhost data]# chown -R oracle:oinstall /data/database
    

      

    修改OS系统标识

    oracle默认不支持CentOS系统安装,Oracle Database 11g Release 2 的 OS要求参考:link

    修改文件 /etc/RedHat-release

    [root@localhost data]# cat /proc/version
    Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015
    [root@localhost data]# cat /etc/redhat-release  
    CentOS Linux release 7.1.1503 (Core)
    [root@localhost data]# vi /etc/redhat-release
    [root@localhost data]# cat /etc/redhat-release
    redhat-7
    [root@localhost data]#
    

      

    下载oracle数据库所需要的软件包

    下载地址 :https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html?intcmp=ocom-hp-0219

    把file1 和file2 下载下来

    下载完成后,使用Xftp 软件上传到centos中,我这里放在(/home/oracle)目录中(这里不进行操作说明)

    关闭防火墙

    CentOS 7.2默认使用的是firewall作为防火墙

    [root@localhost /]# systemctl status firewalld.service  #查看防火墙状态,运行中
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
       Active: active (running) since Thu 2016-04-07 18:54:29 PDT; 2h 20min ago
     Main PID: 802 (firewalld)
       CGroup: /system.slice/firewalld.service
               └─802 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
    
    Apr 07 18:54:25 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
    Apr 07 18:54:29 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
    [root@localhost /]# systemctl stop firewalld.service  #关闭防火墙
    [root@localhost /]# systemctl status firewalld.service  #再次查看防火墙状态,发现已关闭
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
       Active: inactive (dead) since Thu 2016-04-07 21:15:34 PDT; 9s ago
     Main PID: 802 (code=exited, status=0/SUCCESS)
    
    Apr 07 18:54:25 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
    Apr 07 18:54:29 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
    Apr 07 21:15:33 localhost systemd[1]: Stopping firewalld - dynamic firewall daemon...
    Apr 07 21:15:34 localhost systemd[1]: Stopped firewalld - dynamic firewall daemon.
    [root@localhost /]# systemctl disable firewalld.service  #禁止使用防火墙(重启也是禁止的)
    Removed symlink /etc/systemd/system/dbus-org.Fedoraproject.FirewallD1.service.
    Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
    [root@localhost /]#
    

      

    关闭selinux(需重启生效)
    [root@localhost /]# vi /etc/selinux/config
    [root@localhost /]# cat /etc/selinux/config

    将 SELINUX=disabled #此处修改为disabled

    修改内核参数

    [root@localhost /]# vi /etc/sysctl.conf

    在最下面添加以下内容:

    net.ipv4.icmp_echo_ignore_broadcasts = 1
    net.ipv4.conf.all.rp_filter = 1
    fs.file-max = 6815744 #设置最大打开文件数
    fs.aio-max-nr = 1048576
    kernel.shmall = 2097152 #共享内存的总量,8G内存设置:2097152*4k/1024/1024
    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
    
    

      

    使配置参数生效

    [root@localhost /]# sysctl -p
    net.ipv4.icmp_echo_ignore_broadcasts = 1
    net.ipv4.conf.all.rp_filter = 1
    sysctl: setting key "fs.file-max": Invalid argument
    fs.file-max = 6815744 #设置最大打开文件数
    fs.aio-max-nr = 1048576
    sysctl: setting key "kernel.shmall": Invalid argument
    kernel.shmall = 2097152 #共享内存的总量,8G内存设置:2097152*4k/1024/1024
    sysctl: setting key "kernel.shmmax": Invalid argument
    kernel.shmmax = 2147483648 #最大共享内存的段大小
    sysctl: setting key "kernel.shmmni": Invalid argument
    kernel.shmmni = 4096 #整个系统共享内存端的最大数
    kernel.sem = 250 32000 100 128
    sysctl: setting key "net.ipv4.ip_local_port_range": Invalid argument
    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
    [root@localhost /]#
    

      

    配置用户的环境变量

    [root@localhost /]# vi /home/oracle/.bash_profile 
    添加以下内容:

    export ORACLE_BASE=/data/oracle #oracle数据库安装目录
    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=en_US #防止安装过程出现乱码
    export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK  #设置Oracle客户端字符集
    

      

    生效

    [root@localhost /]# source /home/oracle/.bash_profile

    解压安装包

    [oracle@localhost /]$ cd /home/oracle  #进入/home/oracle目录(之前使用Xftp上传的位置)
    [oracle@localhost src]$ ls
    linux.x64_11gR2_database_1of2.zip  linux.x64_11gR2_database_2of2.zip
    [oracle@localhost src]$ unzip linux.x64_11gR2_database_1of2.zip -d /data/database/  #解压
    (省略...)
    [oracle@localhost src]$ unzip linux.x64_11gR2_database_2of2.zip -d /data/database/  #解压
    (省略...)
    [oracle@localhost src]$ su root
    Password:
    [root@localhost src]# chown -R oracle:oinstall /data/database/database/
    

      

    oracle安装

    登录oracle用户

    退出当前用户 登录oracle用户

    启动oralce安装

    到/data/database/database/目录下,执行./runInstaller

    会启动图形界面进行安装

    弹出图形安装界面,安装数据库软件和实例

     

    点击下一步

     

    点击下一步

    实际开发中,服务器没有图形界面,我们选择服务类安装,下一步

     不需要集群,选择单实例安装,下一步

    下一步

    选择语言,下一步

    下一步

    选择目录,下一步

    下一步

    下一步

     

    内存

    字符集

    下一步

    下一步

    下一步

    设置密码

    下一步

    先决条件检查,缺少依赖包(直接忽略 进行安装)

     

    finish配置完成

    等待安装完成

    安装成功之后,会弹出这个界面:

    设置密码

     

    然后会让你以root身份登录终端,执行以下脚本。

    执行脚本:

    [root@localhost myos]su root
    
    [root@localhost myos]# cd /home/myos/application/oracle/oraInventory
    
    [root@localhost oraInventory]# sh orainstRoot.sh
    
    [root@localhost oraInventory]# cd /home/myos/application/oracle/oracle/product/11.2.0/dbhome_1
    
    [root@localhost dbhome_1]# sh root.sh
    

      

    安装完成

    上面安装成功之后,服务监听和本地网络服务应该是就配置好了,我实际安装的过程中都会提示服务名称已经存在。如果没有的话,我们可以按照下面的步骤进行配置。

    15. 配置监听

    打开终端,输入:
    
    [root@localhost dbhome_1]# netca
    
    Oracle Net Services Configuration:

    弹出界面:

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

     

     

     

    配置本地网络服务

    配置本地网络服务名(充当oracle客户端,连接别的oracle服务器)

     

    我填的是自己服务器的名称,不知道填其他服务器的ip可不可以

     进行连接测试

     

    连接成功

     

    到此就配置完毕了。

    查看监听状态

    [myos@localhost ~]$ lsnrctl status
    
    LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 05-APR-2018 18:06:52
    
    Copyright (c) 1991, 2009, Oracle.  All rights reserved.
    
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
    
    STATUS of the LISTENER
    
    ------------------------
    
    Alias                     LISTENER
    
    Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
    
    Start Date                05-APR-2018 17:41:44
    
    Uptime                    0 days 0 hr. 25 min. 8 sec
    
    Trace Level               off
    
    Security                  ON: Local OS Authentication
    
    SNMP                      OFF
    
    Listener Parameter File   
    
    /home/myos/application/oracle/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
    
    Listener Log File         
    
    home/myos/application/oracle/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
    
    Listening Endpoints Summary...
    
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
    
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
    
    Services Summary...
    
    Service "orcl" has 1 instance(s).
    
      Instance "orcl", status READY, has 1 handler(s) for this service...
    
    Service "orclXDB" has 1 instance(s).
    
      Instance "orcl", status READY, has 1 handler(s) for this service...
    
    The command completed successfully
    

      其中:

    1、Linux oracle数据库listener.ora存放路径
    
    /home/myos/application/oracle/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
    
    2、Linux oracle数据库tnsnames.ora存放路径
    
    /home/myos/application/oracle/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
    
    3、ORACLE启动监听器
    (1)切换至普通安装用户(我的是myos)
    su - myos 
    (2)启动监听器
    lsnrctl start 
    (3)停止监听器
    lsnrctl stop
    

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

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

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

    [oracle@localhost ~]$ vim /etc/oratab    //如果没有这个文件,下面问题有说明
    找到:   orcl:/data/oracle/oracle/product/11.2.0/db_1:N      
    修改为: orcl:/data/oracle/oracle/product/11.2.0/db_1:Y
    (每个人安装路径不一定一样)

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

    root权限执行

    [root@localhost oracle]# vim /etc/rc.d/rc.local

    添加:

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

    说明:

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

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

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

    [root@localhost oracle]# ll /etc/rc.d/rc.local

    添加执行权限

    [root@localhost oracle]# chmod +x /etc/rc.d/rc.local

    完成。

    问题一  

    如果使用Navicat Premium软件远程连接不了Centos的Oracle数据库

    出现:“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”

    具体操作步骤如下:

    一、修改数据库服务器中listener.ora文件内容

    命令:

    [oracle@localhost admin]$ vi /data/oracle/product/11.2.0/db_1/network/admin/listener.ora
    修改为:

    # listener.ora Network Configuration File: /data/oracle/product/11.2.0/db_1/network/admin/listener.ora
    # Generated by Oracle configuration tools.
    
    
    SID_LIST_LISTENER =
      (SID_LIST =
          (SID_DESC =
             (GLOBAL_DBNAME = orcl)
             (ORACLE_HOME = /data/oracle/product/11.2.0/db_1)
             (SID_NAME = orcl)
          )
       )
    LISTENER =
        (DESCRIPTION =
             (ADDRESS =
                 (PROTOCOL = TCP)
                    (HOST = 192.168.0.102) #这里为centos的ip地址
                    (PORT = 1521)
             )
         )
    
    ADR_BASE_LISTENER = /data/oracle
    

     

    二、修改数据库服务器中tnsnames.ora文件内容

    命令:

    [oracle@localhost admin]$ vi /data/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora

    修改为:

    # tnsnames.ora Network Configuration File: /data/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
    # Generated by Oracle configuration tools.
    
    
    rcl =
    
      (DESCRIPTION =
    
        (ADDRESS_LIST =
    
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.102)(PORT = 1521))  #这里的host为centos的ip地址
    
        )
    
        (CONNECT_DATA =
    
          (SID = orcl)
    
        )
    
      )
                                                                                          
    

      修改完成。

    重启监听

    lsnrctl start

    使用Navicat Premium软件远程连接

    即可连接成功

     问题二

    远程连接oracle数据库出现
    ERROR:
    ORA-01034: ORACLE not available
    ORA-27101: shared memory realm does not exist
    Process ID: 0
    Session ID: 0 Serial number: 0

    解决方式

    SQL> conn / as sysdba
    Connected to an idle instance.
    SQL> startup
    ORACLE instance started.
    

      

    问题三

    远程连接Oracle出现
    ora-01033:oracle initializationg or shutdown in progress  

    解决

    lsnrctl start  //启动数据库监听
    

      

    问题四

     /etc/oratab 文件不存在

    解决

    原因是安装oracle的时候,忘记去执行 一个root.sh文件了 找到该文件 执行 ./root.sh
    

      

  • 相关阅读:
    linq语法2 GLenn
    sql 拼接字符串 GLenn
    每日算法 20130225 GLenn
    linq语法1 GLenn
    每日算法 20130227 GLenn
    每日算法 20130226 GLenn
    jquery ajax 分页 GLenn
    PhoneGap应用开发对策:如何通过苹果审核?
    Xcode 4.1/4.2/4.3/4.4/4.5 + iOS 5.1.1免证书(iDP)开发+真机调试+生成IPA全攻略
    rails 散乱记录
  • 原文地址:https://www.cnblogs.com/pxblog/p/10545073.html
Copyright © 2020-2023  润新知