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
相关推荐
yuzhiboyouye11 小时前
所有的 SQL 都要经过 Explain 优化,是什么意思
数据库·sql
洛水水11 小时前
Redis 实现限流功能的几种方法
数据库·redis·缓存
l1t11 小时前
DeepSeek总结的postgresql 数据分析师 vs width_bucket()
数据库·postgresql
米高梅狮子11 小时前
Redis
数据库·redis·mysql·缓存·docker·容器·github
dinl_vin11 小时前
FastAPI 系列 ·(四):数据库集成——SQLAlchemy 2.0 异步 ORM 与 Alembic 迁移
java·数据库·fastapi
坚定信念,勇往无前12 小时前
electron-vite 安装better-sqlite3
javascript·数据库·electron
大明者省12 小时前
Ubuntu22.04 宝塔面板与 XFCE 远程桌面端口兼容性分析
运维·服务器·数据库·笔记
liudanzhengxi12 小时前
巧用ULN2003A轻松扩展单片机IO口
数据库·mongodb
Teable任意门互动12 小时前
深度解析:AI 赋能开源多维表格,实现企业全场景数据整合与高效应用
数据库·人工智能·低代码·信息可视化·开源·数据库开发