centos7.5下安装oracle database11g总结

Centos7.5 安装oracle database 11g

1.说明

最近项目经常接触到oracle database11g,做个记录

时间点:2018年7月

环境和版本

centos 7.5(图形界面,如果你用的是字符界面系统,我暂时还没有研究过)

oracle database linux 11g

2.系统准备

linux的oracle安装和windows有个最大的不同,就是你必须用oracle用户来操作,这在前期设定上必须要注意的

同时要对各类配置文件增加一些配置项

2.1 修改配置文件/etc/security/limits.conf
cat <<EOF>>/etc/security/limits.conf
proc 2047
oracle hard nofile 65536
oracle hard nproc 16384
oracle soft nofile 1024
EOF

2.2 修改/etc/sysctl.conf
cat <<EOF>>/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
EOF
2.3 创建oinstall和dba组,和oracle用户
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba -m oracle
passwd oracle
2.4 修改oracle用户的相关变量和创建一些必要的目录
# 以下javahome目录根据实机java目录更正,要su到oracle用户执行,避免你还要修改权限
su - oracle
vi ~/.bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=.:$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export JAVA_HOME=/opt/jdk1.7.0_80/
export PATH=$PATH:$JAVA_HOME/jre/bin
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPAT

# :wq保存完以后,立即载入
source ~/.bash_profile

# 退出oracle用户
exit

3.开始安装

3.1 安装包和图形设置

解压安装包和安装

安装包一般下载下来有两个,分别解压以后合并

# 在安装之前还有一些设置,以root用户操作
chmod -R 755 <压缩包解压目录>/database
chown -R oracle:oinstall <压缩包解压目录>

# 以下是图形显示许可,通过该命令让oracle用户可以执行图形程序
xhost +

# 然后切换到oracle用户
su - oracle

# display设置和语言设置,设置成英文是为了不乱码
export DISPLAY=:0.0
export LANG=en_US

# 开始安装
cd <压缩包目录>/database
./runInstaller
3.2 图形安装相关
3.2.1 跳过验证相关
2018-07-26 23-55-34 的屏幕截图.png

2018-07-26 23-55-47 的屏幕截图.png
2018-07-26 23-55-55 的屏幕截图.png
3.2.2 选择安装类型

本教程为了之后配置详细,所以安装选项里选的是只安装数据库软件,数据配置在后面配置。

2018-07-26 23-56-06 的屏幕截图.png
2018-07-26 23-56-16 的屏幕截图.png
3.2.3 选择需要的语言包(国内项目别忘了中文勾上)
2018-07-26 23-56-50 的屏幕截图.png
2018-07-26 23-56-59 的屏幕截图.png
3.2.4 选择要安装的位置

这一项要注意了,如果你事前没有创建好相应的目录,请切另一个终端用root创建目录,然后还要把权限改成oracle:oinstall,不然就会出现以下报错。

2018-07-26 23-57-08 的屏幕截图.png
2018-07-26 23-57-26 的屏幕截图.png

打开一个终端,用root用户创建以上两个目录,然后权限改成oracle:oinstall

mkdir -p /u01/app/oracle
mkdir -p /app/oracle/product/11.2.0/dbhome_1
chown -R oracle:oinstall /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/dbhome_1
2018-07-26 23-59-45 的屏幕截图.png
2018-07-26 23-59-56 的屏幕截图.png
3.2.5 额外选项

以下是一些优化项和额外功能需要的依赖,如果你不能提供这些功能(rpm相关依赖),那就请忽略,选右上角的Ignore All

2018-07-27 00-00-08 的屏幕截图.png
2018-07-27 00-00-23 的屏幕截图.png
2018-07-27 00-00-30 的屏幕截图.png
2018-07-27 00-00-36 的屏幕截图.png
2018-07-27 00-00-45 的屏幕截图.png
3.2.6 初始化脚本

安装完以后会提示你要运行一个初始化脚本,该脚本必须是root用户运行。你可以运行也可以不运行,是一些系统方面的相关配置,例如创建oracle开机启动的/etc/oratab文件

2018-07-27 00-08-42 的屏幕截图.png
2018-07-27 00-09-00 的屏幕截图.png

4.配置和创建数据库实例

oracle方面,实例对应的是Mysql的数据库。

用oracle用户,如果你之前配好了环境变量,那dbca应该可以运行。

运行前最好运行以下两个命令

export DISPLAY=:0.0
export LANG=en_US
4.1创建数据库类型
2018-07-27 00-11-29 的屏幕截图.png
2018-07-27 00-11-34 的屏幕截图.png

这边只是测试用,所以选择第一个就可以了,如果项目有明确规定,根据项目来

2018-07-27 00-11-42 的屏幕截图.png
4.2 实例名

实例名就是你的数据库名,也是你连接你的数据库用到的名字,所以该参数请根据要求填写。我这里是测试用的,用的默认名orcl

[图片上传失败...(image-b5c2ec-1532875421244)]

4.3 管理选项

这里要注意的是,不开启oracle监听是无法下一步的,请打开一个终端,用oracle用户执行以下命令打开监听程序

lsnrctl start
2018-07-27 00-11-59 的屏幕截图.png
4.4 用户密码

你可以分别为每个默认用户设定一个密码,也可以用统一一个密码。

2018-07-27 00-12-27 的屏幕截图.png
4.5 数据库文件存放位置

该选项如果在正式的生产环境里,一般都是要挂盘的,根据挂盘位置更改,我这里测试就默认了。

2018-07-27 00-12-34 的屏幕截图.png
2018-07-27 00-12-39 的屏幕截图.png
4.6 模板和脚本

该选项给你选择是否用示例模板或着自定义脚本来定制你的数据库。

2018-07-27 00-12-48 的屏幕截图.png
4.7 参数设定

一些相关参数的选择,我这里只是定义了字符集为中文字符集。

但要注意的是国家设定里,依然选择UTF,不然会造成???返回信息的情况。

2018-07-27 00-13-10 的屏幕截图.png
4.8 数据库存储结构

该选项让你查看你的数据库存储结构和进行一些设定

2018-07-27 00-13-46 的屏幕截图.png
4.9 安装确认和是否创建模板,或是自定义脚本

该选项就是开始创建数据库了,还可以选择是否创建模板和脚本,便于以后批量创建相同的数据库。

2018-07-27 00-13-38 的屏幕截图.png
2018-07-27 00-13-46 的屏幕截图.png
2018-07-27 00-13-58 的屏幕截图.png
2018-07-27 00-14-02 的屏幕截图.png
2018-07-27 00-19-00 的屏幕截图.png

5 安装完后的配置和验证

5.1 listener.ora文件和tnsnames.ora文件

以下两个文件是关于监听服务的,如果缺失这两个文件,你的数据库就无法外部连接,所以请根据以下配置,其中localhost是oracle可以识别的主机名,我这里写的是本地。

listener.ora文件

# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = /u01/app/oracl

tnsnames.ora文件

# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

REORATEST =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = reoratest)
    )
  )

修改完以后请重启监听

lsnrctl stop
lsnrctl start
5.2 验证
5.2.1 本地验证

oracle用户输入sqlplus system/<你之前设定的密码>@<实例名>

如下如果不需要输入密码,说明你设定监听是正确的,如果要输入密码,说明你设定的监听有问题,请依次确认

1.listener.ora文件格式,权限,主机名

2.tnsnamer.ora文件格式,权限,主机名

3.用tnsping <主机名>来确认你的主机名是不是有问题。

[oracle@localhost ~]$ sqlplus system/123456@orcl

SQL*Plus: Release 11.2.0.4.0 Production on Sun Jul 29 22:12:12 2018

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select status from V$instance;

STATUS
------------
OPEN

SQL> quit;
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

有问题的输出

[oracle@localhost ~]$ sqlplus system/nihahah@orcl

SQL*Plus: Release 11.2.0.4.0 Production on Sun Jul 29 22:11:47 2018

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

ERROR:
ORA-01017: invalid username/password; logon denied


Enter user-name: ^C

5.2.2 外部连接测试

外部sql连接工具我这里推荐oracle sql developer,免费好用.

不要用什么navicat premium的,收费还经常oci文件有问题,搞得我一直觉得是我设置有问题。

1532874038085.png
1532874148757.png

6 开机启动数据库相关

根据以上你已经完成了oracle相关的安装和配置,但是开机启动也是重要的一项,为了开机启动数据库,你要修改/etc/oratab文件,让你数据库的条目后面的参数为Y

然后我写了一个开机启动数据库的脚本,供参考

#!/bin/bash

lisenerfile="/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora"
tnsnerfile="/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora"

myhostname=`uname -n`
longname=`grep $myhostname /etc/hosts|awk '{print $2}'`

lisneraddr=`awk '/HOST =/{split($(NF-2),a,")");print a[1]}' $lisenerfile`

if [ "$lisneraddr" != "$longname" ];then
    sed -i "s/$lisneraddr/$longname/" $lisenerfile
fi

tnsneraddr=`awk '/HOST =/{split($(NF-2),a,")");print a[1]}' $tnsnerfile`

if [ "$tnsneraddr" != "$longname" ];then
    sed -i "s/$tnsneraddr/$longname/" $tnsnerfile
fi

su - oracle -c "dbstart"
su - oracle -c "lsnrctl start"

该脚本是为了vmware模板部署虚拟机时配的,可以看到我特别修改了监听文件中的hostname名。把这个脚本加到/etc/rc.local里就可以完成数据库开机启动。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容