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_1

10、传输到目标服务器上,解压,保持权限、用户一致

复制代码
源环境上:
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 /nolog

11、重新构建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
相关推荐
顶点多余2 小时前
Mysql——表的约束
数据库·mysql
娇娇yyyyyy2 小时前
QT编程(7): Qt主窗口和菜单栏
数据库·qt·microsoft
Leon-Ning Liu2 小时前
Oracle 19C RAC升级到 26ai RAC
数据库·oracle
人间打气筒(Ada)2 小时前
mysql数据恢复实战
数据库·sql·mysql·xtrabackup·全量备份·增量备份·物理备份
爬山算法2 小时前
MongoDB(36)如何使用聚合进行分组?
数据库·mongodb
Natalia_Portman2 小时前
springboot整合DolphinDB
java·数据库·spring boot·后端·db
云边有个稻草人2 小时前
MySQL迁金仓:高兼容+自动化,国产化迁移低成本落地实战
数据库·mysql·国产数据库·kingbasees·金仓数据库·mysql迁移金仓
MrMua2 小时前
mysql与postgresql对比
数据库·mysql·postgresql