安装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

  

Centos安装Oracle及问题处理的更多相关文章

  1. centos 安装oracle 11g r2(一)-----软件安装

    centos 安装oracle 11g r2(一)-----软件安装 1.进入管理员权限 [anzerong@localhost ~]# su - root password [root@localh ...

  2. centos 安装oracle 11g r2(三)-----表空间创建

    centos 安装oracle 11g r2(三)-----表空间创建 创建表空间前要保证监听与数据库实例已经启动 1.启动监听 [oracle@localhost ~]$ lsnrctl start ...

  3. centos 安装oracle 11g r2(二)-----监听配置与创建数据库实例

    centos 安装oracle 11g r2(二)-----监听配置与创建数据库实例 一.监听配置(命令:netca) 1.以 oracle 用户输入命令,启动图形化工具配置监听 [oracle@lo ...

  4. CentOS 安装Oracle 11g R2

    CentOS 安装Oracle 11g R2 学习了-/ https://www.osyunwei.com/archives/5445.html

  5. 阿里云centos安装oracle

    目录 阿里云centos安装oracle 阿里云默认没有swap分区,oracle安装需要 安装Oracle所需的依赖包 创建用户和组 关闭SELINUX(阿里云缺省关闭) 开始安装 使用" ...

  6. CentOS安装Oracle数据库详细介绍及常见问题汇总

    一.安装前准备 1.软件硬件要求 操作系统:CentOS 6.4(32bit)Oracle数据库版本:Oracle 10g(10201_database_linux32.zip)最小内存:1G(检查命 ...

  7. centos安装oracle 11g 完全图解

    摘要: 说明: Linux服务器操作系统:CentOS 5.8 32位(注意:系统安装时请单独分区/data用来安装oracle数据库) Linux服务器IP地址:192.168.21.150 Ora ...

  8. 转---CentOS安装Oracle数据库详细介绍及常见问题汇总

    一.安装前准备 1.软件硬件要求 操作系统:CentOS 6.4(32bit)Oracle数据库版本:Oracle 10g(10201_database_linux32.zip)最小内存:1G(检查命 ...

  9. CentOS安装Oracle 11gR2(x64)

    本文主要步骤是参考:https://www.linuxidc.com/Linux/2014-02/97374.htm 后来自己加入了一些安装过程中遇到的问题和解决方法.使用图形界面安装Oracle已经 ...

随机推荐

  1. 代码注释中的专有词——TODO、FIXME和XXX

    [时间:2017-09] [状态:Open] [关键词:代码注释,TODO, FIXME, XXX] 阅读开源代码时可能经常遇到TODO.FIXME.XXX的单词,通常这些都是有其特殊含义的. 中文版 ...

  2. js实现根据文本下标位置添加特殊标识

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. php curl post josn + header

    <meta charset="utf8"> <?php ini_set("max_execution_time",1800000); $arr ...

  4. Linux连接redis客户端出现Could not connect to Redis at 127.0.0.1:6379: Connection refused

    打开两个窗口,一个执行 命令,另外一个窗口执行

  5. iOS电量获取

    一.Ios获取方法 Instrument电量工具获取 操作步骤: a) 手机不能连接数据线,kill掉后台所有app进程 b) 点击设置,选择开发,点击Logging,开启Energy,点击Start ...

  6. [转]SpringMVC+ Mybatis 配置多数据源 + 手动切换数据源

    正确可行的解决方法:使用Spring提供的AbstractRoutingDataSource类来根据请求路由到不同的数据源.具体做法是先设置两个不同的dataSource代表不同的数据源,再建一个总的 ...

  7. Android用户点击返回按钮两次退出整个APP

    最近的APP项目有一个需求就是连续点击两次返回按钮,退出整个APP,而不是返回到上一个页面,这个连续是有时间限制的,在我的项目里,我设置成2秒钟,如果两秒之内点击了两次,就代表用户想要退出整个APP, ...

  8. sbt spark2.3.1 idea打包Caused by: java.lang.ClassNotFoundException: scala.Product$class

    今天同事在服务区上面装的是最新版本的hadoop3.10和spark2.3.1,因为用scala开发, 所以我想用sbt进行开发.过程中遇到各种坑,刚开始用的jdk10,结果也报错,后来改成jdk1. ...

  9. DeBug Python代码全靠print函数?换用这个一天2K+Star的工具吧,改进版

    pysnooper是代码debug神器,比无限low print好很多和也比日志debug好一些,比断点调试也好一些,这个很犀利的装饰器. https://www.toutiao.com/a66829 ...

  10. Nginx 反向代理获取设备真实的IP地址

    package com.das.common.util; import org.apache.commons.lang3.StringUtils; import org.springframework ...