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 <>/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 <>/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里就可以完成数据库开机启动。

你可能感兴趣的:(centos7.5下安装oracle database11g总结)