最近由于手头项目要用Oracle数据库,前段时间也在CentOS搭过一个数据库服务器,用的还是以前的老办法,安装依赖包->改系统配置、环境变量->创建用户、用户组,最后去安装,当时是因为工作进度的原因直接按照老的经验就装上了,我有两个好习惯,一个是喜欢总结,一个是喜欢化繁为简,虽然当时记录了安装过程,还是觉得配置的有些麻烦,同时还发现现在Oracle对CentOS7支持的不好,基于这个原因,自己在空闲时间就去研究有没有简化Oracle在Linux系统上安装的方法,查了一下资料,发现果然是有滴~
Oracle是一个很有尿性的公司,我最佩服他的地方是他的商业模式是非常成功的,收购开源项目->企业化深度定制->服务收费,基于这种模式,凡是被他收购的项目都会有一个特点,就是会做的越来越别扭,越来越不合群,尽管还是个人开源免费的,这么做的原因大概是为了打造完善的自家的产品生态,为他的企业化深度定制铺路,秉着这个思路,我开始狂逛Oracle的官网,发现的确如此,在数据库环境搭建上,Oracle无论软件还是硬件有着非常完整的、优秀的解决方案,也有着非常完善的服务和收费方案,这是非常经典的美资企业特点,当然,老美喜欢分享的性格我还是非常赞赏的,个人开发都有免费的。
根据我的需要,摘出了以后可能会经常用到的东西,组合一下,分享出来,主要是虚拟机VirtualBox,Oracle开发的专门适用于Oracle数据库的Linux系统OEL(Oracle Enterprise Linux),还有Oracle11gR2数据库管理软件,这三个东西可以完全模拟出一个Oracle数据库环境,我自己称他们为Oracle全家桶。
VirtualBox没什么好说的,很久之前就用了,网上教程大把的,不介绍了。
OEL是个好东西,他是用RedHat改的,我以前一直用CentOS,用OEL就会完全不陌生,OEL最大的好处是对亲兄弟Oracle数据库软件支持的太爽了,谁用谁知道啊。
Oracle11gR2,太熟了,怎么用就不说了,这次主要讲怎么快速、简单的在OEL上装他。
首先,安装VirtualBox,在VirtualBox上装好OEL,跟装CentOS7几乎一模一样。
然后,从Oracle官网上下载好11gR2的Linux安装包,传到OEL上,解压到指定目录,创建好安装目录。
接下来就是神器登场了,一条命令,yum install oracle-rdbms-server-11gR2-preinstall,他帮你做了以下事情:
(1)自动安装oracle所需的RPM包
(2)自动创建oracle用户和group组
(3)自动配置/etc/sysctl.conf内核参数
(4)自动配置/etc/security/limits.conf参数
(5)关闭NUMA=OFF (关闭非一致内存访问)
你只需要配置一下环境变量/home/oracle/.bash_profile,再让他生效,所有的配置就都完成了。
日志贴出来:
[root@localhost software]# yum install oracle-rdbms-server-11gR2-preinstall
已加载插件:langpacks, ulninfo
正在解决依赖关系
--> 正在检查事务
---> 软件包 oracle-rdbms-server-11gR2-preinstall.x86_64.0.1.0-5.el7 将被 安装
--> 正在处理依赖关系 gcc,它被软件包 oracle-rdbms-server-11gR2-preinstall-1.0-5.el7.x86_64 需要
--> 正在处理依赖关系 gcc-c++,它被软件包 oracle-rdbms-server-11gR2-preinstall-1.0-5.el7.x86_64 需要
--> 正在处理依赖关系 compat-libcap1,它被软件包 oracle-rdbms-server-11gR2-preinstall-1.0-5.el7.x86_64 需要
--> 正在处理依赖关系 ksh,它被软件包 oracle-rdbms-server-11gR2-preinstall-1.0-5.el7.x86_64 需要
--> 正在处理依赖关系 libaio-devel,它被软件包 oracle-rdbms-server-11gR2-preinstall-1.0-5.el7.x86_64 需要
--> 正在处理依赖关系 glibc-devel,它被软件包 oracle-rdbms-server-11gR2-preinstall-1.0-5.el7.x86_64 需要
--> 正在处理依赖关系 compat-libstdc++-33,它被软件包 oracle-rdbms-server-11gR2-preinstall-1.0-5.el7.x86_64 需要
--> 正在处理依赖关系 libstdc++-devel,它被软件包 oracle-rdbms-server-11gR2-preinstall-1.0-5.el7.x86_64 需要
--> 正在检查事务
---> 软件包 compat-libcap1.x86_64.0.1.10-7.el7 将被 安装
---> 软件包 compat-libstdc++-33.x86_64.0.3.2.3-72.el7 将被 安装
---> 软件包 gcc.x86_64.0.4.8.5-16.el7_4.1 将被 安装
--> 正在处理依赖关系 cpp = 4.8.5-16.el7_4.1,它被软件包 gcc-4.8.5-16.el7_4.1.x86_64 需要
--> 正在处理依赖关系 libmpc.so.3()(64bit),它被软件包 gcc-4.8.5-16.el7_4.1.x86_64 需要
---> 软件包 gcc-c++.x86_64.0.4.8.5-16.el7_4.1 将被 安装
---> 软件包 glibc-devel.x86_64.0.2.17-196.el7_4.2 将被 安装
--> 正在处理依赖关系 glibc-headers = 2.17-196.el7_4.2,它被软件包 glibc-devel-2.17-196.el7_4.2.x86_64 需要
--> 正在处理依赖关系 glibc-headers,它被软件包 glibc-devel-2.17-196.el7_4.2.x86_64 需要
---> 软件包 ksh.x86_64.0.20120801-34.el7 将被 安装
---> 软件包 libaio-devel.x86_64.0.0.3.109-13.el7 将被 安装
---> 软件包 libstdc++-devel.x86_64.0.4.8.5-16.el7_4.1 将被 安装
--> 正在检查事务
---> 软件包 cpp.x86_64.0.4.8.5-16.el7_4.1 将被 安装
---> 软件包 glibc-headers.x86_64.0.2.17-196.el7_4.2 将被 安装
--> 正在处理依赖关系 kernel-headers >= 2.2.1,它被软件包 glibc-headers-2.17-196.el7_4.2.x86_64 需要
--> 正在处理依赖关系 kernel-headers,它被软件包 glibc-headers-2.17-196.el7_4.2.x86_64 需要
---> 软件包 libmpc.x86_64.0.1.0.1-3.el7 将被 安装
--> 正在检查事务
---> 软件包 kernel-headers.x86_64.0.3.10.0-693.11.1.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
================================================================================
Package 架构 版本 源 大小
================================================================================
正在安装:
oracle-rdbms-server-11gR2-preinstall
x86_64 1.0-5.el7 ol7_latest 21 k
为依赖而安装:
compat-libcap1 x86_64 1.10-7.el7 ol7_latest 17 k
compat-libstdc++-33 x86_64 3.2.3-72.el7 ol7_latest 190 k
cpp x86_64 4.8.5-16.el7_4.1 ol7_latest 5.9 M
gcc x86_64 4.8.5-16.el7_4.1 ol7_latest 16 M
gcc-c++ x86_64 4.8.5-16.el7_4.1 ol7_latest 7.2 M
glibc-devel x86_64 2.17-196.el7_4.2 ol7_latest 1.1 M
glibc-headers x86_64 2.17-196.el7_4.2 ol7_latest 675 k
kernel-headers x86_64 3.10.0-693.11.1.el7 ol7_latest 6.0 M
ksh x86_64 20120801-34.el7 ol7_latest 883 k
libaio-devel x86_64 0.3.109-13.el7 ol7_latest 12 k
libmpc x86_64 1.0.1-3.el7 ol7_latest 49 k
libstdc++-devel x86_64 4.8.5-16.el7_4.1 ol7_latest 1.5 M
事务概要
================================================================================
安装 1 软件包 (+12 依赖软件包)
总下载量:40 M
安装大小:88 M
Is this ok [y/d/N]: y
Downloading packages:
(1/13): compat-libcap1-1.10-7.el7.x86_64.rpm | 17 kB 00:00
(2/13): compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm | 190 kB 00:01
(3/13): cpp-4.8.5-16.el7_4.1.x86_64.rpm | 5.9 MB 00:02
(4/13): gcc-c++-4.8.5-16.el7_4.1.x86_64.rpm | 7.2 MB 00:02
(5/13): glibc-devel-2.17-196.el7_4.2.x86_64.rpm | 1.1 MB 00:00
(6/13): glibc-headers-2.17-196.el7_4.2.x86_64.rpm | 675 kB 00:00
(7/13): gcc-4.8.5-16.el7_4.1.x86_64.rpm | 16 MB 00:06
(8/13): ksh-20120801-34.el7.x86_64.rpm | 883 kB 00:00
(9/13): libaio-devel-0.3.109-13.el7.x86_64.rpm | 12 kB 00:00
(10/13): libmpc-1.0.1-3.el7.x86_64.rpm | 49 kB 00:00
(11/13): kernel-headers-3.10.0-693.11.1.el7.x86_64.rpm | 6.0 MB 00:02
(12/13): oracle-rdbms-server-11gR2-preinstall-1.0-5.el7.x8 | 21 kB 00:00
(13/13): libstdc++-devel-4.8.5-16.el7_4.1.x86_64.rpm | 1.5 MB 00:00
--------------------------------------------------------------------------------
总计 3.8 MB/s | 40 MB 00:10
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : libmpc-1.0.1-3.el7.x86_64 1/13
正在安装 : libstdc++-devel-4.8.5-16.el7_4.1.x86_64 2/13
正在安装 : cpp-4.8.5-16.el7_4.1.x86_64 3/13
正在安装 : ksh-20120801-34.el7.x86_64 4/13
正在安装 : libaio-devel-0.3.109-13.el7.x86_64 5/13
正在安装 : compat-libcap1-1.10-7.el7.x86_64 6/13
正在安装 : compat-libstdc++-33-3.2.3-72.el7.x86_64 7/13
正在安装 : kernel-headers-3.10.0-693.11.1.el7.x86_64 8/13
正在安装 : glibc-headers-2.17-196.el7_4.2.x86_64 9/13
正在安装 : glibc-devel-2.17-196.el7_4.2.x86_64 10/13
正在安装 : gcc-4.8.5-16.el7_4.1.x86_64 11/13
正在安装 : gcc-c++-4.8.5-16.el7_4.1.x86_64 12/13
正在安装 : oracle-rdbms-server-11gR2-preinstall-1.0-5.el7.x86_64 13/13
验证中 : cpp-4.8.5-16.el7_4.1.x86_64 1/13
验证中 : glibc-devel-2.17-196.el7_4.2.x86_64 2/13
验证中 : oracle-rdbms-server-11gR2-preinstall-1.0-5.el7.x86_64 3/13
验证中 : kernel-headers-3.10.0-693.11.1.el7.x86_64 4/13
验证中 : gcc-c++-4.8.5-16.el7_4.1.x86_64 5/13
验证中 : compat-libstdc++-33-3.2.3-72.el7.x86_64 6/13
验证中 : compat-libcap1-1.10-7.el7.x86_64 7/13
验证中 : libaio-devel-0.3.109-13.el7.x86_64 8/13
验证中 : libmpc-1.0.1-3.el7.x86_64 9/13
验证中 : libstdc++-devel-4.8.5-16.el7_4.1.x86_64 10/13
验证中 : glibc-headers-2.17-196.el7_4.2.x86_64 11/13
验证中 : ksh-20120801-34.el7.x86_64 12/13
验证中 : gcc-4.8.5-16.el7_4.1.x86_64 13/13
已安装:
oracle-rdbms-server-11gR2-preinstall.x86_64 0:1.0-5.el7
作为依赖被安装:
compat-libcap1.x86_64 0:1.10-7.el7
compat-libstdc++-33.x86_64 0:3.2.3-72.el7
cpp.x86_64 0:4.8.5-16.el7_4.1
gcc.x86_64 0:4.8.5-16.el7_4.1
gcc-c++.x86_64 0:4.8.5-16.el7_4.1
glibc-devel.x86_64 0:2.17-196.el7_4.2
glibc-headers.x86_64 0:2.17-196.el7_4.2
kernel-headers.x86_64 0:3.10.0-693.11.1.el7
ksh.x86_64 0:20120801-34.el7
libaio-devel.x86_64 0:0.3.109-13.el7
libmpc.x86_64 0:1.0.1-3.el7
libstdc++-devel.x86_64 0:4.8.5-16.el7_4.1
完毕!
惊不惊喜,刺不刺激!后续就切换到oracle用户启动./runInstaller,正常安装,一切正常直到完成。
oracle-rdbms-server-11gR2-preinstall在OEL上直接装就行,在RedHat上还要先搭建一个本地yum服务器,我就不演示了。
所以说,Oracle现在把自己的产品生态搞得越来越牛逼了,对他生态之外的会越来越排斥,Java也是这样,所以我很看好Kotlin(又扯远了~~~)。