Linux安装Oracle服务器贡献版

原创文章,转载请保留或注明出处:https://www.jianshu.com/p/54a2d8bd8da7

目录
1 编写目的
2 安装前准备
   2.1 安装方式
   2.2 操作系统的选择
   2.3 JDK的安装
   2.4 下载Oracle
3 Centos系统配置
   3.1 网络配置
   3.2 修改主机名
   3.3 修改系统标识
   3.4 修改系统时间
   3.5 关闭selinux
   3.6 永久性关闭防火墙
   3.7 重启电脑
4 Oracle安装参数配置
   4.1 修改内核参数
   4.2 修改验证登录配置资源
   4.3 修改操作系统对Oracle用于资源的限制
   4.4 修改Oracle用户最大进程数
   4.5 创建Oracle用户
   4.6 设置Oracle环境变量
   4.7 安装必需的补丁矩阵
5 正式安装Oracle
6 创建数据库实例
7 Oracle创建监听
8 Oracle开机自启
9 Oracle常用操作
   9.1 启动数据库和监听
   9.2 停止数据库和监听
   9.3 查询锁表和解锁
   9.4 更多操作
10 Oracle性能优化
11 总结

1 编写目的

前些时候公司需要对某系统做压力测试,提供了几台装了Window的退役服务器用于本次压测,需要安装一台Linux服务器作为DB服务器,已经很多年没有接触过Oracle的安装,期间遇到了一些问题,网上也看了许多关于Linux安装Oracle的文章,如果全部照搬,Oracle未必能够顺利的安装起来,这篇文章借鉴了大量的网络资料和个人的经验,希望这篇文章有所突破,对大家有所帮助,在与大家的交流过程中,我会尽力的把所有关键细节和注意事项记录于此,供大家学习交流之用。

2 安装前的准备

2.1 安装方式

在安装Oracle的过程中,需要用到大量的库,安装这些库我们有两种方式,本文采用的是第二种安装方式:

  • rpm离线安装(需要提前准备需要的库及依赖库);
  • yum命令在线安装,简洁方便一步到位,这种方式必须联网。

2.2 操作系统的选择

本次使用的是64位的Centos6.9,注意Centos默认安装Oracle是装不上去的,需要做一定的修改,装Oracle的时候建议大家选择RedHat,安装Oracle的时候需要调出它的图形化界面进行安装,所以在Centos的时候最好安装桌面版的Linux系统,如果安装的是非桌面版的Linux系统,在安装Oracle的时候,需要单独给系统安装桌面化工具。

关于服务器操作系统的安装,不是本文重点,大家若有兴趣,以后再单独讲解。

2.3 JDK的安装

官网下载rpm包,用rpm命令直接安装即可,JDK安装后用命令# java –version确认是否正确,如果服务器只用于Oracle的安装,可以不配置JDK环境变量:


JDK版本号

2.4 下载Oracle

版本号为Oracle?11.2.0.1.0确保一下两个文件都下载,并在执行安装之前将它们解压缩到同一个目录中,下载地址:https://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linx8664soft-100572.html

Linux安装Oracle服务器贡献版_第1张图片
Oracle下载页面

3 Centos系统配置

3.1 网络配置

常用的有两种方式,本文采用的是第二种基于图形化界面的配置,本次压测只在局域网测试,故本文中的网络配置也只满足局域网:

  • 第一种,通过配置文件配置,修改/etc/sysconfig/network-scripts中的ifcfg-em1或者ifcfg-eth0文件
    Linux安装Oracle服务器贡献版_第2张图片
    图3-1-1

    本次压测服务器有4个网络配置文件ifcfg-em1、ifcfg-em2、ifcfg-em3、ifcfg-em4,对应不同的网口,通常情况下,我们选择第一个即可。

  • 第二种,用图形化界面配置,root下输入命令:#setup会出来一个配置窗口,按下图操作保存即可。
    Linux安装Oracle服务器贡献版_第3张图片
    图3-1-2 图形化界面配置网络

3.2 修改主机名

在安装Centos的过程中,会输入主机名,默认为localhost,系统安装好后,如果需要再次修改主机名,需要修改两个地方:

  • 第一处,编辑# vi /etc/sysconfig/network保存,再执行# source/etc/sysconfig/network
    图3-2-1 修改主机名
  • 第二处,编辑#vi /etc/hosts把hostname添加进去,保存。
    图3-2-2 把主机名添加到hosts

3.3 修改系统标识

前面我们提到Oracle无法识别Centos会导致安装失败,也就是Oracle默认不支持在Centos系统上的安装,需要修改系统标识。

执行# vi /etc/redhat-release查看当前系统标识:
图3-3-1 当前系统标识

修改后的系统标识

注意:具体修改成Red Hat为哪个版本需要根据你选择的系统版本来决定
图3-3-2 修改后的系统标识

3.4 修改系统时间

  • 执行命令:#date -s “yyyy-MM-dd HH:mm:ss”
  • 执行命令:#hwclock –w,将当前时间和日期写入BIOS,避免重启后失效

3.5 关闭selinux

执行命令:#vi /etc/selinux/config,将SELINUX的值修改为disabled,如下图:
Linux安装Oracle服务器贡献版_第4张图片
图3-5 关闭selinu

3.6 永久性关闭防火墙

在安装Oracle的时候,建议把防火墙彻底关闭,一劳永逸,等安装好后,再根据需要打开防火墙配置需要的端口,依次执行命令:

// 关闭防火墙
# chkconfig iptables off
// 停止防火墙服务
# service iptables stop
//执行命令,查看关闭状态:
# chkconfig --list iptables

如下图所示:


图3-6-1
//查看防火墙状态
# service iptables status

如下图所示:


图3-6-2

3.7 重启电脑

以上我们做了许多参数的配置修改,重启电脑,以保证参数是生效,本章节作为Oracle安装过程中非常重要的环节,所以这里强调了要重启下电脑,为下面Oracle的安装做充分铺垫。

4 Oracle安装参数配置

4.1 修改内核参数

  • 第一步,执行#vi /etc/sysctl.conf,在文件最后加上以下参数:
// 在/etc/sysctl.conf后面增加以下参数
#文件系统最大异步io
fs.aio-max-nr= 1048576??
#文件系统中文件的最大个数
fs.file-max= 6815744?????
kernel.shmall= 2097152
#这个参数非常关键,不能小于给Oracle分配的内存值,Oracle安装时,默认为总内存的40%
kernel.shmmax= 536870912??
#最小共享内存大小bytes
kernel.shmmni= 4096??
kernel.sem= 250 32000 100 128
#端口的范围9000 65500
net.ipv4.ip_local_port_range= 9000 65500
net.core.rmem_default= 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048586
  • 第二步,执行#sysctl –p使参数生效

4.2 修改验证登录配置资源

执行命令# vi /etc/pam.d/login在最后一行加上session? required /lib64/security/pam_limits.so,如下图:
Linux安装Oracle服务器贡献版_第5张图片
图4-2

4.3 修改操作系统对Oracle用于资源的限制

执行:# /etc/security/limits.conf,在文件末尾加上以下配置:

oracle?soft??? nproc?? 2047
oracle?hard??? nproc?? 16384
oracle?soft??? nofile? 1024
oracle?hard??? nofile? 65536
oracle?hard??? stack?? 10240

如下图所示:
Linux安装Oracle服务器贡献版_第6张图片
图4-3

4.4 修改Oracle用户最大进程数

执行命令# vi /etc/profile,在该文件最后加上以下内容:

if [ $USER = "oracle" ]; then
? if [ $SHELL ="/bin/ksh" ]; then
??? ulimit -p16384
??? ulimit -n65536
? else
??? ulimit -u16384 -n 65536
? fi
fi

如下图所示:
Linux安装Oracle服务器贡献版_第7张图片
图4-4

4.5 创建Oracle用户

逐个执行以下命令,在Centos上创建Oracle用户

# groupadd oinstall
# groupadd dba
# useradd –g oinstall –G dba oracle //把创建的oracle用户加入到oinstall和dba附属组
# passwd oracle //给oracle用户设置登录密码,提示会输入两次密码

4.6 设置Oracle环境变量

  • 安装Oracle时,必须要保证环境变量中的安装目录和实际的安装目录一致,有部分同学在安装的时候就是吃了安装目录的亏,本文我们将Oracle安装到/home/oracle/app目录下。
  • 配置Oracle环境变量时,必须切换到新创建的Oracle用户下,执行命令:#su – oracle
  • 修改oracle用户私有的环境变量,执行命令# vi .bash_profile,在文件末尾加入以下配置:
export ORACLE_BASE=/home/oracle/app
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl? //SID注意和自己即将建立的SID对应
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

4.7 安装必需的补丁矩阵

  • 系统默认的yum安装源支持不是很好,最好把它修改成阿里或者网易的镜像YUM源,阿里的可以访问http://mirrors.aliyun.com/help/centos,首先备份原文件,执行以下命令:# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup,然后再执行命令:# wget-O /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-6.repo下载阿里的YUM,最后使用命令:#yum makecache重新缓存。
  • 在安装Oracle之前,需要安装以下的rpm软件包,加括号32bit注解的是软件包32位版本,对应同名未加注解的则是该软件包的64位版本,在64位版本的操作系统上,两种版本都需要安装。
- binutils-2.17.50.0.6
- compat-libstdc++-33-3.2.3
- compat-libstdc++-33-3.2.3 (32 bit)
- elfutils-libelf-0.125
- elfutils-libelf-devel-0.125
- gcc-4.1.2
- gcc-c++-4.1.2
- glibc-2.5-24
- glibc-2.5-24 (32 bit)
- glibc-common-2.5
- glibc-devel-2.5
- glibc-devel-2.5 (32 bit)
- glibc-headers-2.5
- ksh-20060214
- libaio-0.3.106
- libaio-0.3.106 (32 bit)
- libaio-devel-0.3.106
- libaio-devel-0.3.106 (32 bit)
- libgcc-4.1.2
- libgcc-4.1.2 (32 bit)
- libstdc++-4.1.2
- libstdc++-4.1.2 (32 bit)
- libstdc++-devel 4.1.2
- make-3.81
- sysstat-7.0.2
  • 采用yum安装,执行以下命令:
// 逐个执行
#yum install -y binutils*
#yum install -y compat-libstdc*
#yum install -y elfutils-libelf*
#yum install -y gcc*
#yum install -y glibc*
#yum install -y ksh*
#yum install -y libaio*
#yum install -y libgcc*
#yum install -y libstdc*
#yum install -y make*
#yum install -y sysstat*
#yum install libXp* -y
#yum install -y glibc-kernheaders
  • 检查lib是否安装齐全,执行以下命令:
#rpm -q --queryformat %-{name}-%{version}-%{release}-%{arch}"\n" \compat-libstdc++-33 glibc-kernheaders glibc-headers libaio libgcc glibc-develxorg-x11-deprecated-libs
  • 如果缺少包,就继续安装缺失的软件包。

5 安装Oracle

  • 前面的工作都是为这一步工作做铺垫,在正式安装Oracle之前,以上操作完成后,最好重启一下服务器,使用oracle用户登录服务器
  • 将下载好的Oracle压缩文件用ftp上传到”/home/oracle”目录下,逐个执行以下命令解压:
# unzip linux.x64_11gR2_database_1of2.zip
# unzip linux.x64_11gR2_database_1of2.zip

解压的文件在/home/oracle/database目录下。

  • 具体安装步骤如下:
    5.1 使用oracle用户,执行命令:
// 进入挤压目录执行runInstaller
# cd /home/oracle/database
# ./runInstaller

当检查通过,会出现Oracle的安装界面

如果此时安装界面出现乱码,可能是系统语言为中文导致,需要临时修改系统语言。

//查看Linux系统语言
#echo $LANG?
//修改Linux系统语言
#echo LANG=’en_US’

若修改了Linux系统语言,需要关闭安装程序,再重新执行安装命令。
5.2 去掉勾选I wish to receive security updates via My Oracle Support选项,点击Next


Linux安装Oracle服务器贡献版_第8张图片
图5-2

5.3 选择只安装数据库,不创建实例。我们可以等数据库安装完成后再安装实例,当然也可以选择第一个选项,安装数据库的同时创建数据库实例一步到位,只是安装时间会稍微长一点,如下图:


Linux安装Oracle服务器贡献版_第9张图片
图5-3

5.4 选择单实例数据库,如下图:
Linux安装Oracle服务器贡献版_第10张图片
图5-4

5.5 从左边列表选择简体中文和繁体中文支持加入到右边的列表,也可以只选择简体中文,English需要保留,如下图:
Linux安装Oracle服务器贡献版_第11张图片
图5-5

5.6 选择第一个选项,安装企业版本,如下图:


Linux安装Oracle服务器贡献版_第12张图片
图5-6

5.7 这里的Oracle Base目录,需要和“4.6章节设置Oracle环境变量”中的.bash_profile文件中配置的ORACLE_BASE变量值保持一致,如下图:
Linux安装Oracle服务器贡献版_第13张图片
图5-7

5-8 这里的两个Group与前面“4.5章节创建Oracle用户”中的两个group保持一致,如下图:
Linux安装Oracle服务器贡献版_第14张图片
图5-8

5.9 安装到这一步的时,可能会报以下类似的错误,发生这种情况的时候,按“4.7安装必需的补丁矩阵”中需要的必须库清单进行检查,我们会发现有的库实际上已经安装成功了,只是版本号对不上,实际安装的版本号比推荐的版本号还要高,遇到这种情况是Centos版本较高,所以Oracle 11g check的时候识别不到高版本的lib,我们可以勾选”Ignore All”忽略,继续安装,如下图:
Linux安装Oracle服务器贡献版_第15张图片
图5-9-1

Linux安装Oracle服务器贡献版_第16张图片
图5-9-2

5-10 如果出现下图的这种情况,需要切换到root用户执行下这两个路径的.sh脚本,执行第二个.sh脚本的时候,会提示输入参数,不用输入直接执行即可,执行这两个脚本的时候,不要关闭Oracle安装界面,执行完成后,继续安装。
Linux安装Oracle服务器贡献版_第17张图片
图5-10

5-11 安装完成,如下图:
Linux安装Oracle服务器贡献版_第18张图片
图5-11

6 创建数据库实例

以上的步骤,我们已经完成了Oracle的安装,接下来,我们要为Oracle创建数据库,也就是Oracle实例。使用oracle用户登录,新开启一个终端,执行命令:

// 打开Oracle 图形化界面命令
# dbca

会弹出如下界面,按步骤执行即可:


Linux安装Oracle服务器贡献版_第19张图片
图6-1

Linux安装Oracle服务器贡献版_第20张图片
图6-2

Linux安装Oracle服务器贡献版_第21张图片
图6-3

Linux安装Oracle服务器贡献版_第22张图片
图6-4

Linux安装Oracle服务器贡献版_第23张图片
图6-5

Linux安装Oracle服务器贡献版_第24张图片
图6-6

Linux安装Oracle服务器贡献版_第25张图片
图6-7

Linux安装Oracle服务器贡献版_第26张图片
图6-8

Linux安装Oracle服务器贡献版_第27张图片
图6-9

Linux安装Oracle服务器贡献版_第28张图片
图6-10

Linux安装Oracle服务器贡献版_第29张图片
图6-11

安装完成,用oracle用户登录,在终端我们可执行#sqlplus命令,然后分别输入用户名和密码,验证是否安装成功,单纯的使用Sqlplus命令时,不用启动监听,需要注意的时候,这一步操作如果远程机器没有安装sqlplus的话,需要在oracle服务器上面来完成操作。

7 Oracle创建监听

同样使用oracle用户登录,新开启一个终端,执行命令:

// 打开Oracle 图形化界面命令
# netca

会弹出如下界面:


Linux安装Oracle服务器贡献版_第30张图片
图7-1

创建监听服务,让其他Oracel客户端可以远程连接Oracle服务器,如下图:


Linux安装Oracle服务器贡献版_第31张图片
图7-2

Linux安装Oracle服务器贡献版_第32张图片
图7-3

Linux安装Oracle服务器贡献版_第33张图片
图7-4

Linux安装Oracle服务器贡献版_第34张图片
图7-5

Linux安装Oracle服务器贡献版_第35张图片
图7-6

配置本地网络服务名,充当Oracle客户端,如下图:


Linux安装Oracle服务器贡献版_第36张图片
图7-7

输入上面章节“6 创建数据库”创建的Oracle数据库的实例名“orcl”,如下图:
Linux安装Oracle服务器贡献版_第37张图片
图7-8

Linux安装Oracle服务器贡献版_第38张图片
图7-9

输入Oracle服务器的IP地址,这里可以输入本文中IP:192.168.1.118或者127.0.0.1,如下图:
Linux安装Oracle服务器贡献版_第39张图片
图7-10

Linux安装Oracle服务器贡献版_第40张图片
图7-11

Linux安装Oracle服务器贡献版_第41张图片
图7-12

Linux安装Oracle服务器贡献版_第42张图片
图7-13

Linux安装Oracle服务器贡献版_第43张图片
图7-14

Linux安装Oracle服务器贡献版_第44张图片
图7-15

8 Oracle开机自启

Oracle服务器一般来说最好是手动启动,方便及时定位和解决问题,在不通的OS下,启动的设置有些出入,这里只介绍Centos中Oracle开机自启的设置方式。
用root账户登录,执行命令#vi /etc/rc.local在文件的最后加上如下内容:

su - oracle -lc"/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start"
su - oracle -c"/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/dbstart"

如图所示:


Linux安装Oracle服务器贡献版_第45张图片
图8-1

重启DB服务器生效。

9 Oracle常用操作

9.1 启动数据库和监听

用oracle用户登录,启动监听执行命令:

// 查看监听状态:
# lsnrctl status
// 启动监听:
# lsnrctl start
// 启动数据库,必须以dba身份进入sqlplus才能启动:
# sqlplus / as sysdba
SQL>startup

9.2 停止数据库和监听

用oracle用户登录,启动监听执行命令:

// 停止监听:
# lsnrctl stop
// 关闭数据库,必须以dba身份进入sqlplus才能启动:
# sqlplus / as sysdba
SQL>shutdown immediate

9.3 查询锁表和解锁

在使用数据库的时候,锁表是很难避免的,可以通过以下SQL查询锁表情况和解锁:

// 查询锁表情况:
select * from v$session t1, v$locked_object t2 wheret1.sid = t2.SESSION_ID;
// 解锁:
alter system kill session '176,58';? --SID和serial#

9.4 更多操作

网络上资料很多,这里只做介绍,不做具体操作,Oracle安装好后,如果作为系统服务器,需要考虑的问题有很多,如下:

  • A. 创建新用户:授予特定的权限,指定表空间
  • B. 表空间:系统默认使用的表空间是USERS,每个表空间的单元块是32G,很快就会爆满,所以我们要定义自己的表空间,并将其设置为自动扩容

10 Oracle性优化

Oracle11g的SGA和PGA设置为多大最合适?

  • Oracle官方文档推荐:
    MEMORY_TARGET=物理内存x 80%
    MEMORY_MAX_SIZE=物理内存x 80%

  • 对于OLTP系统:
    SGA_TARGET=(物理内存x 80%) x 80%
    SGA_MAX_SIZE=(物理内存x 80%) x80%
    PGA_AGGREGATE_TARGET=(物理内存x 80%) x20%

  • 对于DSS系统:
    SGA_TARGET=(物理内存x 80%) x 50%
    SGA_MAX_SIZE=(物理内存x 80%) x50%
    PGA_AGGREGATE_TARGET=(物理内存 x 80%) x 50%

11 总结

在安装Oracle的过程中,受不同硬件和软件环境的影响,可能会出现各种千奇百怪的问题,不过不要紧,百度几乎都能找到答案,笔者在安装过程中就遇到过虚拟内存不足类似的问题,都非常容易解决。很多技术或者工具,可能只是在某个企业或者某段时间用过,若多年不用,再次用的时候可能就会忘记某些细节,多年前,笔者在红帽子上面装Oracle感觉非常顺利,这次在Centos上也相当于从头再来,若有疑问,欢迎留言交流。

多年的工作,不同的阅历,认真写好每一篇文字,这是一种生活态度

你可能感兴趣的:(Linux安装Oracle服务器贡献版)