如何实现ORACLE19c 安装包DIY

news2024/9/22 7:39:43

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1943382.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

言语理解与表达

** 言语理解与表达 1.逻辑填空 2.语句表达 3.阅读理解

MTK 安卓14 launcher3修改桌面模式,替换某些应用图标,以及定制化Hotseat

原生的launcher的Hotseat如下图(1)所示,我想把效果改成图(2) 图(1) 图(2) 一:定制化HotSeat 修改的类:packages/apps/Launcher3/com/android/launcher3/Hotseat.java (1).修改hotseat的宽 Hotseat------->setInsetsOverridepublic void…

Java 22 中的4个永久特性

功能处于孵化或预览阶段是什么意思? 实际上,这是向 Java 编程语言添加新功能的新过程,Java 社区使用这种过程来在 API 和工具处于早期实验阶段时从社区获得反馈(孵化功能)或已经完全指定但尚未永久的阶段(…

ConstraintLayout属性说明

ayout_constraintTop_toTopOf:将某一控件的顶部与另一控件的顶部对齐。 layout_constraintTop_toBottomOf:将某一控件的顶部与另一控件的底部对齐。 layout_constraintBottom_toTopOf:将某一控件的底部与另一控件的顶部对齐。 layout_cons…

3GPP R18 Multi-USIM是怎么回事?(四)

前几篇主要是MUSIM feature NAS 部分内容的总结,这篇开始看RRC部分相关的内容,由于RRC部分内容过长,也分成了2篇。这篇就着重看下musim gap以及RRC触发UE离开RRC Connected mode相关的内容,直入正题, 上面的内容在overview中有提到,对应的是如下38.300中的描述。 处于网络…

【Node.js基础02】fs、path模块

目录 一:fs模块-读写文件 1 加载fs模块对象 2 读制定文件内容文件 3 向文件中写入内容 二:path模块-路径处理 1 问题引入 2 __dirname内置变量 使用方法 一:fs模块-读写文件 fs模块封装了与本机文件系统交互方法和属性 1 加载fs模块…

Win11 改造

记录一些安装 win11 系统之后,对使用不习惯的地方,进行的个人改造 右键菜单 Hiyoung006/Win11Useable: 将Win11右键菜单及资源管理器恢复为Win10样式的脚本 切换到旧版右键菜单: reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34…

Chapter18 基于物理的渲染——Shader入门精要学习

Chapter18 基于物理的渲染 一、PBS理论和数学基础1.光是什么微表面模型 2.渲染方程3.精确光源4.双向反射分布函数 BRDF5.漫反射项(Lambert 模型)Lambertian BRDF为:Disney BRDF中漫反射项 6.高光反射项微面元理论BRDF的高光反射项①菲涅尔反射…

LabVIEW和IQ测试仪进行WiFi测试

介绍一个使用LabVIEW和LitePoint IQxel-MW IQ测试仪进行WiFi测试的系统。包括具体的硬件型号、如何实现通讯、开发中需要注意的事项以及实现的功能。 使用的硬件​ IQ测试仪型号: LitePoint IQxel-MW 电脑: 配置高效的台式机或笔记本电脑 路由器: 支持802.11ax (Wi-Fi 6) 的…

便携气象站:科技助力气象观测

在科技飞速发展的今天,便携气象站以其轻便、高效、全面的特点,正逐渐改变着气象观测的传统模式。这款小巧而强大的设备,不仅为气象学研究和气象灾害预警提供了有力支持,更为户外活动、农业生产等领域带来了诸多便利。 便携气象站是…

遗传算法模型Python代码——用Python实现遗传算法案例

一、遗传算法概述 1.1适用范围 遗传算法(Genetic Algorithm, GA)是一种启发式搜索算法,广泛应用于以下领域: 优化问题:如函数优化、路径规划、资源分配等。机器学习:用于特征选择、超参数优化等。经济与…

服务器系统盘存储不够,添加数据盘并挂载(阿里云)

目录 1.获取数据盘设备名称 2.为数据盘创建分区 3.为分区创建文件系统 4.配置开机自动挂载分区 阿里云数据盘挂载说明链接:在Linux系统中初始化小于等于2 TiB的数据盘_云服务器 ECS(ECS)-阿里云帮助中心 1.获取数据盘设备名称 sudo fdisk -lu 运行结果如下所示…

解决 elementUI 组件在 WebStorm 中显示为未知标签的问题

解决 elementUI 组件在 WebStorm 中显示为未知标签的问题 一、问题 自从转到 ts 之后,编辑器就一直提示用到的 elementUI 标签未知,一直显示一溜黄色警示,很烦: 二、解决 把它改成大写就可以了。 如下: 把整个项目…

【C++】学习笔记——哈希_2

文章目录 十八、哈希3. 实现哈希表哈希表的存储节点哈希函数哈希表的定义哈希表的插入哈希表的查找哈希表的删除测试函数完整代码结果 未完待续 十八、哈希 3. 实现哈希表 哈希表的实现方法有蛮多种,这里我们选一个比较经典的开散列法来实现哈希表。由于STL库里的…

使用PicGo操作gitee图床(及web端html不能访问图片的解决办法)

1.新建仓库 2.输入仓库名称,也就是图床名称,必须设置开源可见 也可以在创建仓库后,点击管理->基本信息->是否开源进行设置 鼠标悬浮到右上角头像->设置 点击私人令牌 点击生成新令牌,填写描述,直接点提交即可 点击提交后输入登录密码会生成一个token秘钥,如下,这个…

新版本异次元荔枝V4自动发卡系统源码

新版本异次元荔枝V4自动发卡系统源码,增加主站货源系统,支持分站自定义支付接口,目前插件大部分免费,UI页面全面更新,分站可支持对接其他分站产品,分站客服可自定义,支持限定优惠。 源码下载&a…

matlab--legend利用for循环添加图例

第一种方法 %% 第一种方法 R 1:4; THETA1 atand(R./1.8); legend_name {}; for i 1:4THETA atand(R(i)./1.8);intTheta floor(THETA);R_THERA 1.8 - (R(i)./tand(intTheta-10:intTheta10));R_THERA1 1.8 - (R(i)/tand(intTheta));plot(R_THERA);grid on;hold onlegend…

Git之repo sync -c与repo sync -dc用法区别(四十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

了解Linux中的shell脚本

目录 1、什么是shell 2、编写第一个shell文件 3、shell的权限 4、变量 5、 shell传递参数 6、shell数组 7、shell基本运算符 7.1 算术运算符 7.2 关系运算符 7.3 布尔运算符 7.4 逻辑运算符 7.5 字符串运算符 8、控制语句 8.1 if 8.2 for 8.3 while语句 9、其他 1、…

C++~~string模拟实现(3)

目录 1.传统写法和现代写法 2.对于流提取的优化 3.简单机制了解 4.string类的几个构造函数总结 4.1基本用法 4.2两个赋值方式 4.3拷贝构造 4.4获取字符 4.5一个容易混淆的对比 4.6创建对象 1.传统写法和现代写法 (1)上面的代码里面的左边部分是…