Linux安装Oracle服务器贡献版
原创文章,转载请保留或注明出处:https://www.jianshu.com/p/54a2d8bd8da7
目录1 编写目的 前些时候公司需要对某系统做压力测试,提供了几台装了Window的退役服务器用于本次压测,需要安装一台Linux服务器作为DB服务器,已经很多年没有接触过Oracle的安装,期间遇到了一些问题,网上也看了许多关于Linux安装Oracle的文章,如果全部照搬,Oracle未必能够顺利的安装起来,这篇文章借鉴了大量的网络资料和个人的经验,希望这篇文章有所突破,对大家有所帮助,在与大家的交流过程中,我会尽力的把所有关键细节和注意事项记录于此,供大家学习交流之用。
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 总结
2 安装前的准备 2.1 安装方式 在安装Oracle的过程中,需要用到大量的库,安装这些库我们有两种方式,本文采用的是第二种安装方式:
- rpm离线安装(需要提前准备需要的库及依赖库);
- yum命令在线安装,简洁方便一步到位,这种方式必须联网。
关于服务器操作系统的安装,不是本文重点,大家若有兴趣,以后再单独讲解。
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
文章图片
Oracle下载页面
3 Centos系统配置 3.1 网络配置 常用的有两种方式,本文采用的是第二种基于图形化界面的配置,本次压测只在局域网测试,故本文中的网络配置也只满足局域网:
-
第一种,通过配置文件配置,修改/etc/sysconfig/network-scripts中的ifcfg-em1或者ifcfg-eth0文件
文章图片
图3-1-1 本次压测服务器有4个网络配置文件ifcfg-em1、ifcfg-em2、ifcfg-em3、ifcfg-em4,对应不同的网口,通常情况下,我们选择第一个即可。
-
第二种,用图形化界面配置,root下输入命令:#setup会出来一个配置窗口,按下图操作保存即可。
文章图片
图3-1-2 图形化界面配置网络
-
第一处,编辑# vi /etc/sysconfig/network保存,再执行# source/etc/sysconfig/network
文章图片
图3-2-1 修改主机名 -
第二处,编辑#vi /etc/hosts把hostname添加进去,保存。
文章图片
图3-2-2 把主机名添加到hosts
前面我们提到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,避免重启后失效
执行命令:#vi /etc/selinux/config,将SELINUX的值修改为disabled,如下图:
文章图片
图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使参数生效
执行命令# vi /etc/pam.d/login在最后一行加上session? required /lib64/security/pam_limits.so,如下图:
文章图片
图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
如下图所示:
文章图片
图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
如下图所示:
文章图片
图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
- 如果缺少包,就继续安装缺失的软件包。
- 前面的工作都是为这一步工作做铺垫,在正式安装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
文章图片
图5-2
5.3 选择只安装数据库,不创建实例。我们可以等数据库安装完成后再安装实例,当然也可以选择第一个选项,安装数据库的同时创建数据库实例一步到位,只是安装时间会稍微长一点,如下图:
文章图片
图5-3
5.4 选择单实例数据库,如下图:
文章图片
图5-4
5.5 从左边列表选择简体中文和繁体中文支持加入到右边的列表,也可以只选择简体中文,English需要保留,如下图:
文章图片
图5-5
5.6 选择第一个选项,安装企业版本,如下图:
文章图片
图5-6
5.7 这里的Oracle Base目录,需要和“4.6章节设置Oracle环境变量”中的.bash_profile文件中配置的ORACLE_BASE变量值保持一致,如下图:
文章图片
图5-7
5-8 这里的两个Group与前面“4.5章节创建Oracle用户”中的两个group保持一致,如下图:
文章图片
图5-8
5.9 安装到这一步的时,可能会报以下类似的错误,发生这种情况的时候,按“4.7安装必需的补丁矩阵”中需要的必须库清单进行检查,我们会发现有的库实际上已经安装成功了,只是版本号对不上,实际安装的版本号比推荐的版本号还要高,遇到这种情况是Centos版本较高,所以Oracle 11g check的时候识别不到高版本的lib,我们可以勾选”Ignore All”忽略,继续安装,如下图:
文章图片
图5-9-1
文章图片
图5-9-2
5-10 如果出现下图的这种情况,需要切换到root用户执行下这两个路径的.sh脚本,执行第二个.sh脚本的时候,会提示输入参数,不用输入直接执行即可,执行这两个脚本的时候,不要关闭Oracle安装界面,执行完成后,继续安装。
文章图片
图5-10
5-11 安装完成,如下图:
文章图片
图5-11 6 创建数据库实例 以上的步骤,我们已经完成了Oracle的安装,接下来,我们要为Oracle创建数据库,也就是Oracle实例。使用oracle用户登录,新开启一个终端,执行命令:
// 打开Oracle 图形化界面命令
# dbca
会弹出如下界面,按步骤执行即可:
文章图片
图6-1
文章图片
图6-2
文章图片
图6-3
文章图片
图6-4
文章图片
图6-5
文章图片
图6-6
文章图片
图6-7
文章图片
图6-8
文章图片
图6-9
文章图片
图6-10
文章图片
图6-11
安装完成,用oracle用户登录,在终端我们可执行#sqlplus命令,然后分别输入用户名和密码,验证是否安装成功,单纯的使用Sqlplus命令时,不用启动监听,需要注意的时候,这一步操作如果远程机器没有安装sqlplus的话,需要在oracle服务器上面来完成操作。
7 Oracle创建监听 同样使用oracle用户登录,新开启一个终端,执行命令:
// 打开Oracle 图形化界面命令
# netca
会弹出如下界面:
文章图片
图7-1
创建监听服务,让其他Oracel客户端可以远程连接Oracle服务器,如下图:
文章图片
图7-2
文章图片
图7-3
文章图片
图7-4
文章图片
图7-5
文章图片
图7-6
配置本地网络服务名,充当Oracle客户端,如下图:
文章图片
图7-7
输入上面章节“6 创建数据库”创建的Oracle数据库的实例名“orcl”,如下图:
文章图片
图7-8
文章图片
图7-9
输入Oracle服务器的IP地址,这里可以输入本文中IP:192.168.1.118或者127.0.0.1,如下图:
文章图片
图7-10
文章图片
图7-11
文章图片
图7-12
文章图片
图7-13
文章图片
图7-14
文章图片
图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"
如图所示:
文章图片
图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,很快就会爆满,所以我们要定义自己的表空间,并将其设置为自动扩容
- 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%
【Linux安装Oracle服务器贡献版】多年的工作,不同的阅历,认真写好每一篇文字,这是一种生活态度
推荐阅读
- Mac安装Chromedriver
- MongoDB,Wondows下免安装版|MongoDB,Wondows下免安装版 (简化版操作)
- MAC安装Mongo
- Linux下面如何查看tomcat已经使用多少线程
- Beego打包部署到Linux
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- react|react 安装
- VueX--VUE核心插件
- oracle|oracle java jdk install
- python-安装sublime遇到异常