最近一直忙,本想每周有更新的,但老板一句话,就得去干活,想实现这个愿望,看来真的很难,做一天好人容易,要一辈子做好人,难。所以,看到德哥,尹总监,Yan,每天都在发文,那是何等的热爱和毅力,一个字,服。
废话不多说,回归正文。
目录
一、背景
二、创建自己的最新ORACLE安装包
1. 准备ORACLE 19.3的安装介质
2. 解压到后面我们要安装的ORACLE_HOME位置
3. 准备补丁工具(opatch)
4. 解压OPATCH
5. 准备RU本身的安装包,并解压
6. 合并安装包
7. 打包自己可以安装的安装包
8. 创建GI的最新安装包
三、克隆生产环境的安装包
1.克隆GI
2.克隆DB
四、保持联系
一、背景
ORACLE每个季度都在发布 RU,比如:ORACLE 19C ,19.19,19.20,19.21,19.22,19.23,7月16日才发布了19.24,
每次我们上OCP课程时,总希望让同学们用到到上课时为止ORACLE最新的版本,包含RU,于是,每次ORACLE发布了最新的RU后,我们都会去打包一个全新的ORACLE完整安装包,同学们只需要安装这一个安装包,安装好后,就是最新的版本,不需要一步步去安装RU。节省了同学们的时间。
于是有同学问了,能否把这个方法告诉我们,我们工作中,也可以这样做,特别是做服务的同学,可能有这个实际需求。
另外,有一些操作系统的新版本,比如RHEL9,OPENEULER,ANOSLIS新版本,如果要安装19C ,必须要新版本等等。
基于此,我们把方法告诉大家,就是自己去做安装包,甚至做一些定制。
有人说,ORACLE官方不是有最新的完整安装包吗,我们去实际找找:
以LINUX X86-64为例,我们找了ORACLE的官方下载源,只找到19.3的安装包:
去MOS上,也没有找到对应的完整安装包,只有RU
在 Oracle Software Delivery Cloud 上只找到19.3
我们看到官网上确实没有整合最新的安装包
我们可以自己来实现安装包整合,每次出现RU,我们就可以自己对安装包完成DIY,实现自己的想要的功能,去掉不想要的功能呢,大大缩小安装包。
这个还要从ORACLE安装包的机制说起,在ORACLE 12.2以前,要安装ORACLE数据库,我们必须使用ORACLE的安装包来安装数据库,这个安装包是真正的安装包,包含文件安装到什么地方,都由安装包负责,ORACLE 从12.2开始,提供了一种GOLD IMAGE的东西,就是一个已经在机器上安装好的可以运行的文件,这种文件,拿来在自己机器上解开就可以使用的那种,是不是有点象绿色软件的味道,如果要搬到另外一台机器,是不是直接就可以拷贝到另外一台机器,理论上是可以的,这个后面再表。
我们要做自己的ORACLE 安装DIY,就是利用这种方式方式来实现。
二、创建自己的最新ORACLE安装包
方法如下:
1. 准备ORACLE 19.3的安装介质
比如:
LINUX.X64_193000_db_home.zip
2. 解压到后面我们要安装的ORACLE_HOME位置
使用oracle用户解压:
$ unzip -d $ORACLE_HOME LINUX.X64_193000_db_home.zip
3. 准备补丁工具(opatch)
每个RU的READ ME文件中,都写了这个OPATCH的版本要求
见:
所以,在安装之前,需要先去下载指定版本的OPATCH工具。
我们这里以 19.23为例,先去下载 opatch 12.2.0.1.42,如下:
p6880880_190000_Linux-x86-64.zip
4. 解压OPATCH
unzip -d $ORACLE_HOME p6880880_190000_Linux-x86-64.zip
5. 准备RU本身的安装包,并解压
这个根据你要的RU版本,去MOS上下载。
比如我们使用19.24的RU,下载文件如下:
p36582781_190000_Linux-x86-64.zip
解压到当前目录即可
比如我们放在 \u01\setup\ru
unzip p36582781_190000_Linux-x86-64.zip
6. 合并安装包
cd \u01\setup\ru\36582781
$ORACLE_HOME/runInstall -noconfig -applyRU \u01\setup\ru\36582781
参数说明:
-noconfig 不进行配置
-applyRU 应用RU
实际运行:
7. 打包自己可以安装的安装包
为了拷贝,对安装包进行压缩,当然,你也可以根据自己的需求,进行定制化
进入 ORACLE_HOME目录
# cd /u01/app/oracle/product/19.24.0/dbhome_1
# zip -9 -r /tmp/LINUX.X64_1924_db_home.zip .
[root@dbserver dbhome_1]# ls -ltrh /tmp/LINUX.X64_1924_db_home.zip
-rw-r--r-- 1 root root 5.8G Jul 23 13:03 /tmp/LINUX.X64_1924_db_home.zip
后面就可以把这个 LINUX.X64_1924_db_home.zip 拿去直接安装了。
8. 创建GI的最新安装包
如果是GI呢,方法类似
只是GI的命令由runInstaller 变成 gridSetup
完整命令为:
$GRID_HOME/gridSetup.sh -noconfig -applyRU /u01/setup/ru/36522439/36582629/
创建包方法,和前面数据库一样。
# cd /u01/app/19.24/grid
# zip -9 -r /tmp/LINUX.X64_1924_grid_home.zip .
三、克隆生产环境的安装包
如果我们想按照生产环境搭建一个完全一样的测试环境,手头没有数据库对应版本的安装包,能否直接把生产环境的数据库运行文件,包含GI,能否做一个克隆呢?
答案是肯定的
方法如下:
1.克隆GI
如果是GI,直接使用GRID用户登录
su - grid
export DISPLAY=yourip:0.0
$ORACLE_HOME/gridsetup -createGoldImage -destinationLocation /tmp/19c_gihome
克隆完后,在/tmp/19c_gihome/ 下面创建最后的安装包
[root@dbserver dbhome_1]# ls -ltrh /tmp/19c_gihome/grid_home_2024-07-23_12-45-37PM.zip
-rw-r--r-- 1 grid oinstall 5.6G Jul 23 12:58 /tmp/19c_gihome/grid_home_2024-07-23_12-45-37PM.zip
修改一个名字即可
[root@dbserver dbhome_1]# mv /tmp/19c_gihome/grid_home_2024-07-23_12-45-37PM.zip /tmp/LINUX.X64_1924_grid_home.zip
[root@dbserver dbhome_1]# ls -ltrh /tmp/LINUX.X64_1924_grid_home.zip
-rw-r--r-- 1 grid oinstall 5.6G Jul 23 12:58 /tmp/LINUX.X64_1924_grid_home.zip
然后拿去在测试库环境直接安装,版本和生产库环境完全一样。
2.克隆DB
如果是DB,直接使用oracle 用户登录
su - oracle
export DISPLAY=yourip:0.0
$ORACLE_HOME/runInstaller -createGoldImage -destinationLocation /tmp/19c_dbhome
[oracle@dbserver dbhome_1]$ ls -ltrh /tmp/19c_dbhome/db_home_2024-07-23_01-24-31PM.zip
-rw-r--r-- 1 oracle oinstall 5.6G Jul 23 13:36 /tmp/19c_dbhome/db_home_2024-07-23_01-24-31PM.zip
[oracle@dbserver dbhome_1]$ mv /tmp/19c_dbhome/db_home_2024-07-23_01-24-31PM.zip /tmp/LINUX.X64_1924_db_home.zip
然后拿去在测试库环境直接安装,版本和生产库环境完全一样。
四、保持联系
----------------------------------------------------------------------------------
如果你对数据库技术感兴趣,我们还可以在微信群:水煮数据库 进行交流,主要交流日常运维中用到的数据库相关问题,包含但不限于:ORACLE,PG,MYSQL,SQLSERVER,OB,TIDB,达梦,TDSQL,OPENGAUSS,人大金仓,GBASE等等,加我微信吧:zq24803366,备注:水煮数据库, 我拉你入群。