如何实现ORACLE19c 安装包DIY

        最近一直忙,本想每周有更新的,但老板一句话,就得去干活,想实现这个愿望,看来真的很难,做一天好人容易,要一辈子做好人,难。所以,看到德哥,尹总监,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,备注:水煮数据库, 我拉你入群。
 

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值