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环境变量:

Linux安装Oracle服务器贡献版
文章图片
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服务器贡献版
文章图片
Oracle下载页面
3 Centos系统配置 3.1 网络配置 常用的有两种方式,本文采用的是第二种基于图形化界面的配置,本次压测只在局域网测试,故本文中的网络配置也只满足局域网:


  • 第一种,通过配置文件配置,修改/etc/sysconfig/network-scripts中的ifcfg-em1或者ifcfg-eth0文件 Linux安装Oracle服务器贡献版
    文章图片
    图3-1-1 本次压测服务器有4个网络配置文件ifcfg-em1、ifcfg-em2、ifcfg-em3、ifcfg-em4,对应不同的网口,通常情况下,我们选择第一个即可。


  • 第二种,用图形化界面配置,root下输入命令:#setup会出来一个配置窗口,按下图操作保存即可。 Linux安装Oracle服务器贡献版
    文章图片
    图3-1-2 图形化界面配置网络
3.2 修改主机名 在安装Centos的过程中,会输入主机名,默认为localhost,系统安装好后,如果需要再次修改主机名,需要修改两个地方:


  • 第一处,编辑# vi /etc/sysconfig/network保存,再执行# source/etc/sysconfig/network Linux安装Oracle服务器贡献版
    文章图片
    图3-2-1 修改主机名


  • 第二处,编辑#vi /etc/hosts把hostname添加进去,保存。 Linux安装Oracle服务器贡献版
    文章图片
    图3-2-2 把主机名添加到hosts
3.3 修改系统标识
前面我们提到Oracle无法识别Centos会导致安装失败,也就是Oracle默认不支持在Centos系统上的安装,需要修改系统标识。


执行# vi /etc/redhat-release查看当前系统标识: Linux安装Oracle服务器贡献版
文章图片
图3-3-1 当前系统标识
修改后的系统标识

注意:具体修改成Red Hat为哪个版本需要根据你选择的系统版本来决定 Linux安装Oracle服务器贡献版
文章图片
图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服务器贡献版
文章图片
图3-5 关闭selinu 3.6 永久性关闭防火墙
在安装Oracle的时候,建议把防火墙彻底关闭,一劳永逸,等安装好后,再根据需要打开防火墙配置需要的端口,依次执行命令:
// 关闭防火墙 # chkconfig iptables off // 停止防火墙服务 # service iptables stop //执行命令,查看关闭状态: # chkconfig --list iptables

如下图所示:

Linux安装Oracle服务器贡献版
文章图片
图3-6-1
//查看防火墙状态 # service iptables status

如下图所示:

Linux安装Oracle服务器贡献版
文章图片
图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服务器贡献版
文章图片
图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服务器贡献版
文章图片
图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服务器贡献版
文章图片
图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服务器贡献版
文章图片
图5-2
5.3 选择只安装数据库,不创建实例。我们可以等数据库安装完成后再安装实例,当然也可以选择第一个选项,安装数据库的同时创建数据库实例一步到位,只是安装时间会稍微长一点,如下图:

Linux安装Oracle服务器贡献版
文章图片
图5-3
5.4 选择单实例数据库,如下图:
Linux安装Oracle服务器贡献版
文章图片
图5-4
5.5 从左边列表选择简体中文和繁体中文支持加入到右边的列表,也可以只选择简体中文,English需要保留,如下图:
Linux安装Oracle服务器贡献版
文章图片
图5-5
5.6 选择第一个选项,安装企业版本,如下图:

Linux安装Oracle服务器贡献版
文章图片
图5-6
5.7 这里的Oracle Base目录,需要和“4.6章节设置Oracle环境变量”中的.bash_profile文件中配置的ORACLE_BASE变量值保持一致,如下图:
Linux安装Oracle服务器贡献版
文章图片
图5-7
5-8 这里的两个Group与前面“4.5章节创建Oracle用户”中的两个group保持一致,如下图:
Linux安装Oracle服务器贡献版
文章图片
图5-8
5.9 安装到这一步的时,可能会报以下类似的错误,发生这种情况的时候,按“4.7安装必需的补丁矩阵”中需要的必须库清单进行检查,我们会发现有的库实际上已经安装成功了,只是版本号对不上,实际安装的版本号比推荐的版本号还要高,遇到这种情况是Centos版本较高,所以Oracle 11g check的时候识别不到高版本的lib,我们可以勾选”Ignore All”忽略,继续安装,如下图:
Linux安装Oracle服务器贡献版
文章图片
图5-9-1
Linux安装Oracle服务器贡献版
文章图片
图5-9-2
5-10 如果出现下图的这种情况,需要切换到root用户执行下这两个路径的.sh脚本,执行第二个.sh脚本的时候,会提示输入参数,不用输入直接执行即可,执行这两个脚本的时候,不要关闭Oracle安装界面,执行完成后,继续安装。
Linux安装Oracle服务器贡献版
文章图片
图5-10
5-11 安装完成,如下图:
Linux安装Oracle服务器贡献版
文章图片
图5-11 6 创建数据库实例 以上的步骤,我们已经完成了Oracle的安装,接下来,我们要为Oracle创建数据库,也就是Oracle实例。使用oracle用户登录,新开启一个终端,执行命令:
// 打开Oracle 图形化界面命令 # dbca

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

Linux安装Oracle服务器贡献版
文章图片
图6-1
Linux安装Oracle服务器贡献版
文章图片
图6-2
Linux安装Oracle服务器贡献版
文章图片
图6-3
Linux安装Oracle服务器贡献版
文章图片
图6-4
Linux安装Oracle服务器贡献版
文章图片
图6-5
Linux安装Oracle服务器贡献版
文章图片
图6-6
Linux安装Oracle服务器贡献版
文章图片
图6-7
Linux安装Oracle服务器贡献版
文章图片
图6-8
Linux安装Oracle服务器贡献版
文章图片
图6-9
Linux安装Oracle服务器贡献版
文章图片
图6-10
Linux安装Oracle服务器贡献版
文章图片
图6-11
安装完成,用oracle用户登录,在终端我们可执行#sqlplus命令,然后分别输入用户名和密码,验证是否安装成功,单纯的使用Sqlplus命令时,不用启动监听,需要注意的时候,这一步操作如果远程机器没有安装sqlplus的话,需要在oracle服务器上面来完成操作。
7 Oracle创建监听 同样使用oracle用户登录,新开启一个终端,执行命令:
// 打开Oracle 图形化界面命令 # netca

会弹出如下界面:

Linux安装Oracle服务器贡献版
文章图片
图7-1
创建监听服务,让其他Oracel客户端可以远程连接Oracle服务器,如下图:

Linux安装Oracle服务器贡献版
文章图片
图7-2
Linux安装Oracle服务器贡献版
文章图片
图7-3
Linux安装Oracle服务器贡献版
文章图片
图7-4
Linux安装Oracle服务器贡献版
文章图片
图7-5
Linux安装Oracle服务器贡献版
文章图片
图7-6
配置本地网络服务名,充当Oracle客户端,如下图:

Linux安装Oracle服务器贡献版
文章图片
图7-7
输入上面章节“6 创建数据库”创建的Oracle数据库的实例名“orcl”,如下图:
Linux安装Oracle服务器贡献版
文章图片
图7-8
Linux安装Oracle服务器贡献版
文章图片
图7-9
输入Oracle服务器的IP地址,这里可以输入本文中IP:192.168.1.118或者127.0.0.1,如下图:
Linux安装Oracle服务器贡献版
文章图片
图7-10
Linux安装Oracle服务器贡献版
文章图片
图7-11
Linux安装Oracle服务器贡献版
文章图片
图7-12
Linux安装Oracle服务器贡献版
文章图片
图7-13
Linux安装Oracle服务器贡献版
文章图片
图7-14
Linux安装Oracle服务器贡献版
文章图片
图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服务器贡献版
文章图片
图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服务器贡献版】多年的工作,不同的阅历,认真写好每一篇文字,这是一种生活态度

    推荐阅读