Oracle 11g tar包方式安装数据库软件
本文中源库的ORACLE_HOME目录为/u01/app/oracle/product/11.2.0/db_1,目标环境的ORACLE_HOME目录规划为/u01/app/oracle/product/11.2.0/db_1
源库的数据库版本11.2.0.4,操作系统linux 7,其余linux版本和oracle11g版本,操作基本都类似
一、步骤简述
1、安装操作系统 2、关闭防火墙和selinux安全设置 3、配置yum源 4、安装依赖包(oracle软件安装时必须使用到的) 5、创建用户和组(用于安装oracle数据库软件) 6、配置操作系统参数和内核限制 7、规划和创建Oracle数据库软件和Oracle数据库安装目录 8、Oracle用户环境变量设置(确保ORACLE_BASE,ORACLE_HOME环境变量与源tar数据库一致) 9、源Oracle环境下,,tar一个oracle安装目录,保持权限、用户一致 10、tar包传输到目标服务器上,解压,保持权限、用户一致 11、重新构建Inventory,这一步很重要 12、简单验证备注:其中1到6步骤,可以参考我的文章《Oracle 11g 单机安装总结_linux7》,这里不再赘述
二、具体步骤
前提:本文从7步开始进行详细描述
7、规划和创建Oracle数据库软件和Oracle数据库安装目录
安装目录 mkdir -p /u01/app/oracle mkdir -p /u01/soft mkdir -p /u01/psu mkdir -p /oradata mkdir -p /u01/app/oracle/product/11.2.0 chown -R oracle:oinstall /u01 chown -R oracle:oinstall /oradata 备注: 这里需要特别注意,要保持与tar源数据库软件目录一致,例如源数据库安装软件ORACLE_HOME目录为/u01/app/oracle/product/11.2.0/db_1,则新建安装目录也必须一致,否则不能成功!重要说明:
这里需要创建至ORACLE_HOME目录的上一级目录
例如源环境ORACLE_HOME目录为/u01/app/oracle/product/11.2.0/db_1,则创建如下:
mkdir -p /u01/app/oracle/product/11.2.0
因为tar包时,db_1目录会跟随一起tar,解压时,会自动生产db_1目录
8、Oracle用户环境变量设置(确保ORACLE_BASE,ORACLE_HOME环境变量与源tar数据库一致)
ORACLE_SID可以不一致 ORACLE_BASE和ORACLE_HOME的环境变量必须与源tar数据库一致9、源Oracle环境下,,tar一个oracle安装目录,保持权限、用户一致
tar命令用root用户,经过验证,文件属性都是保持原有的 tar命令 cd /u01/app/oracle/product/11.2.0/ tar -czvf db_1.tar.zip ./db_110、传输到目标服务器上,解压,保持权限、用户一致
源环境上: root用户执行 cd /u01/app/oracle/product/11.2.0/ scp db_1.tar.zip 192.168.11.19:/u01/app/oracle/product/11.2.0 备注:192.168.11.19为本文实验中的目标环境(需要安装数据库的环境) 目标环境上: root用户执行 root解压命令 cd /u01/app/oracle/product/11.2.0/ tar -xzvf db_1.tar.zip . 简单验证是否tar包安装成功 su - oracle sqlplus -v sqlplus /nolog11、重新构建Inventory,这一步很重要
在操作系统环境相同的情况下,可能有一些数据库管理员,使用tar的方式复制数据库软件,而忘记了Inventory目录的复制或重构,导致后期打补丁时遇到了麻烦。重构步骤如下: 1)源库环境检查 [root@host01 11.2.0]# cat /etc/oraInst.loc inventory_loc=/u01/app/oraInventory inst_group=oinstall [root@host01 11.2.0]# cd /u01/app/oraInventory/ContentsXML [root@host01 ContentsXML]# cat inventory.xml <?xml version="1.0" standalone="yes" ?> <!-- Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. --> <!-- Do not modify the contents of this file by hand. --> <INVENTORY> <VERSION_INFO> <SAVED_WITH>11.2.0.4.0</SAVED_WITH> <MINIMUM_VER>2.1.0.6.0</MINIMUM_VER> </VERSION_INFO> <HOME_LIST> <HOME NAME="OraDb11g_home1" LOC="/u01/app/oracle/product/11.2.0/db_1" TYPE="O" IDX="1"/> </HOME_LIST> <COMPOSITEHOME_LIST> </COMPOSITEHOME_LIST> </INVENTORY> 其中HOME NAME="OraDb11g_home1" LOC="/u01/app/oracle/product/11.2.0/db_1"这两个键值对是后续需要使用的 2)目标环境中oracle用户执行重建 su - oracle $ORACLE_HOME/oui/bin/runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="/u01/app/oracle/product/11.2.0/db_1" ORACLE_HOME_NAME="OraDb11g_home1" 备注:ORACLE_HOME和ORACLE_HOME_NAME这两个值就是上面步骤查询出来的两个键值对信息 安装输出提示,执行/u01/app/oraInventory/orainstRoot.sh脚本(以root用户执行) 输出如下,表示创建成功: Starting Oracle Universal Installer... Checking swap space: must be greater than 500 MB. Actual 2028 MB Passed The inventory pointer is located at /etc/oraInst.loc The inventory is located at /u01/app/oraInventory Please execute the '/u01/app/oraInventory/orainstRoot.sh' script at the end of the session. //这里提示需要root执行脚本 'AttachHome' was successful. 3)检查和验证 a.$ORACLE_HOME/OPatch/opatch lsinv 命令可以正常执行 b.目标服务器上下面目录中文件内容正常(刚tar安装后,目标服务器上根本没有/u01/app/oraInventory目录) cat /u01/app/oraInventory/ContentsXML/inventory.xml c.目标服务器上/etc/oraInst.loc文件也正常生成(刚tar安装后,目标服务器上根本没有/etc/oraInst.loc文件) cat /etc/oraInst.loc至此完成tar包方式数据库软件安装
三、总结
如果不进行Inventory信息重建,使用opatch是会出现如下类似错误 $ORACLE_HOME/OPatch/opatch lsinv Oracle Interim Patch Installer version 11.2.0.3.36 Copyright (c) 2026, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/11.2.0/db_1 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/11.2.0/db_1/oraInst.loc OPatch version : 11.2.0.3.36 OUI version : 11.2.0.4.0 Log file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2026-03-11_01-26-43AM_1.log LsInventorySession failed: OPatch failed to locate Central Inventory. Possible causes are: The Central Inventory is corrupted The oraInst.loc file specified is not valid. OPatch failed with error code 73