ORACLE 10.2.0.1 单机升级至10.2.0.4

ORACLE 10.2.0.1 单机升级至10.2.0.4

1 安装Oracle软件

 

1.1 安装文件

Oracle 10G 安装,目标是10.2.0.4 ,这里是先安装10.2.0.1,然后再升级到 10.2.0.4 . 需要提前下载 以下几个文件:

  • p6810189_10204_Linux-x86-64.zip
  • 10201_database_linux_x86_64.cpio.gz

解压到Oracle 的$HOME路径,执行下面命令,进行解压:

gunzip 10201_database_linux_x86_64.cpio.gz
cpio -idmv < 10201_database_linux_x86_64.cpio
unzip p6810189_10204_Linux-x86-64.zip

解压后的结果如下:

[oracle@boss1 ~]$ ls
10201_database_linux_x86_64.cpio  database  Disk1  p6810189_10204_Linux-x86-64.zip  README.html

其中database 是10.2.0.1的安装包。 Disk1 是 升级包。

1.2 安装依赖包

rpm -q binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel libgcc libgcc libstdc++ libstdc++ libstdc++-devel make sysstat libXp.i686 libXt.i686 libXtst.i686 |grep "not installed"|xarsg -i yum install -y {}

如果 libXp.i686 libXt.i686 libXtst.i686 三个包没有安装上,oracle 安装进行在执行configToolFailedCommands时,会报错。所以安装完成后,最好再确认一下是否有相关的库文件:

ls -la /lib/libXt.so.6
ls -la /lib/libXtst.so.6
ls -la /lib/libXp.so.6
ls -la /usr/lib/libXt.so.6
ls -la /usr/lib/libXtst.so.6
ls -la /usr/lib/libXp.so.6

如果没有。请参考下面的处理方式。

如果在安装过程中出现如下错误提示:

SEVERE:OUI-10104: 一些 Configuration Assistant 失败。强烈建议您此时重试这些 Configuration Assistant。如果任何 "建议" 的 Assistant 没有成功运行, 那么将无法正确配置系统。请选择运行失败的 Assistant, 然后单击 ‘重试‘ 按钮进行重试。
--------------------------------------
"/u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/configToolFailedCommands" 脚本包含所有失败的, 跳过的或取消的命令。可使用此文件在 OUI 外运行这些 Configuration Assistant。请注意, 执行此脚本前, 您可能需要用口令 (如果有) 来更新此脚本。
"/u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/configToolAllCommands" 脚本包含要由 Configuration Assistant 执行的所有命令。可使用此文件在 OUI 外运行 Configuration Assistant。请注意, 执行此脚本前, 您可能需要用口令 (如果有) 更新此脚本。

那么就需要手动将这些库文件链接到系统库路径中。注意,使用root用户执行。

ln -s $ORACLE_HOME/lib32/stubs/libXp.so.6  /lib/libXp.so.6
ln -s $ORACLE_HOME/lib32/stubs/libXt.so.6  /lib/libXt.so.6
ln -s $ORACLE_HOME/lib32/stubs/libXtst.so.6 /usr/lib/libXtst.so.6

在本示例中,执行的命令如下:

ln -s /u01/app/oracle/product/10.2.0/db_1/lib32/stubs/libXp.so.6  /lib/libXp.so.6
ln -s /u01/app/oracle/product/10.2.0/db_1/lib32/stubs/libXt.so.6  /lib/libXt.so.6
ln -s /u01/app/oracle/product/10.2.0/db_1/lib32/stubs/libXtst.so.6 /usr/lib/libXtst.so.6

1.3 修改内核参数

以root用户执行。

cat >> /etc/sysctl.conf <<EOF
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
EOF

sysctl -p

cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF

# 下面可以不执行,主要是限制其他用户权限。
cat >> /etc/profile <<EOF
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
EOF

1.4 添加用户和组

root 用户执行。

groupadd -g 501 oinstall
groupadd -g 502 dba
useradd -g oinstall -G dba oracle
passwd oracle

1.5 修改Oracle用户环境变量

以Oracle 用户执行。

cat >> .bash_profile <<EOF
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/dbhome1
ORACLE_SID=boss1
PATH=$PATH:$ORACLE_HOME/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH
EOF
. .bash_profile

1.6 创建相关路径

root用户执行。

chown -R oracle:oinstall /u01/
chmod -R 775 /u01

以Oracle 用户执行:

mkdir -p $ORACLE_HOME

1.7 修改oracle系统兼容列表

Oracle 兼容哪些系统, 是在配置文件中配置的。我们可以修改这些配置文件,达到正常安装的目的。但是这并不是万能的。版本差距过大,同样安装不了。

cd ~/database/install
vi oraparam.ini
#找到下面两行;
[Certified Versions]
Linux=redhat-3,SuSE-9,redhat-4,UnitedLinux-1.0,asianux-1,asianux-2
# 第二行,是oracle10G支持的系统列表。我们把el5,el6 也加进去。如下:
Linux=redhat-3,SuSE-9,redhat-4,UnitedLinux-1.0,asianux-1,asianux-2,redhat-5,redhat-6
# 这样配置后,RHEL/CentOS 5、6两个版本都可以正常安装Oracle 10G。
vi  oraparamsilent.ini
# 相同的方式,调整 oraparamsilent.ini 中的默认配置。

1.8 修改响应文件

oracle 用户执行。

RESPONSEFILE_VERSION=2.2.1.0.0
UNIX_GROUP_NAME=oinstall                                # 配置oracle 用户的组,一般为oinstall
FROM_LOCATION="../stage/products.xml"
NEXT_SESSION_RESPONSE=<Value Unspecified>
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1         # 配置ORACLE_HOME 变量值。
ORACLE_HOME_NAME="OraDBHome1"                           # 配置ORACLE_HOME 别名,记住此名。
TOPLEVEL_COMPONENT={"oracle.server","10.2.0.1.0"}
DEINSTALL_LIST={"oracle.server","10.2.0.1.0"}
SHOW_SPLASH_SCREEN=false
SHOW_WELCOME_PAGE=false
SHOW_NODE_SELECTION_PAGE=false
SHOW_SUMMARY_PAGE=false
SHOW_INSTALL_PROGRESS_PAGE=false
SHOW_CONFIG_TOOL_PAGE=false
SHOW_XML_PREREQ_PAGE=false
SHOW_ROOTSH_CONFIRMATION=true
SHOW_END_SESSION_PAGE=false
SHOW_EXIT_CONFIRMATION=false
NEXT_SESSION=false
NEXT_SESSION_ON_FAIL=false
SHOW_DEINSTALL_CONFIRMATION=false
SHOW_DEINSTALL_PROGRESS=false
RESTART_SYSTEM=<Value Unspecified>
RESTART_REMOTE_SYSTEM=<Value Unspecified>
REMOVE_HOMES=<Value Unspecified>
ORACLE_HOSTNAME=<Value Unspecified>
SHOW_END_OF_INSTALL_MSGS=false
CLUSTER_NODES=<Value Unspecified>
COMPONENT_LANGUAGES={"en"}
INSTALL_TYPE="EE"
s_nameForDBAGrp=<Value Required>
s_nameForOPERGrp=<Value Required>
n_configurationOption=<Value Required>
s_ASMSYSPassword=""
s_ASMSYSPasswordAgain=""
n_dbType=<Value Required>
oracle.assistants.server:s_responseFileName=<Value Unspecified>
s_globalDBName=<Value Required>
s_dbSid=<Value Required>
s_dbRetChar="WE8ISO8859P1"
b_loadExampleSchemas=false
b_useDBControl=true
b_receiveEmailNotification=false
s_dlgEMSMTPServer=<Value Unspecified>
s_dlgEMEmailAddress=<Value Unspecified>
s_dlgEMCentralAgentSelected=<Value Unspecified>
n_dbStorageType=<Value Unspecified>
s_mountPoint=<Value Unspecified>
s_rawDeviceMapFileLocation=<Value Unspecified>
b_enableAutoBackup=false
b_useFileSystemForRecovery=true
s_dlgRBORecoveryLocation=<Value Unspecified>
s_dlgRBOUsername=<Value Unspecified>
s_dlgRBOPassword=<Value Unspecified>
s_dlgASMCfgDiskGroupName="DATA"
s_dlgASMCfgDiskDiscoveryString=<Value Unspecified>
n_dlgASMCfgRedundancySelected=<Value Unspecified>
sl_dlgASMCfgSelectableDisks=<Value Unspecified>
sl_dlgASMCfgDiskSelections=<Value Unspecified>
sl_dlgASMDskGrpSelectedGroup={" "," "," "," "}
b_centrallyManageASMInstance=true
b_useSamePassword=true
s_superAdminSamePasswd=<Value Unspecified>
s_superAdminSamePasswdAgain=<Value Unspecified>
sl_superAdminPasswds=<Value Unspecified>
sl_superAdminPasswdsAgain=<Value Unspecified>
n_performUpgrade=0
n_upgradeDB=0
s_dbOHSelectedForUpgrade=""
s_dbSIDSelectedForUpgrade=""
n_upgradeASM=0
s_dbSelectedUsesASM="no"
sl_upgradableSIDBInstances={}
sl_upgradableRACDBInstances={}
n_dbSelection=0
b_stateOfUpgradeASMCheckbox=false
b_stateOfUpgradeDBCheckbox=false
b_oneClick=false
s_dlgASMCfgRedundancyValue=""
s_dlgASMCfgExistingFreeSpace="0"
s_dlgASMCfgNewDisksSize=""
s_dlgASMCfgAdditionalSpaceNeeded="0 MB"

除标记内容外,其他配置不需要修改。

1.9 静默安装

oracle 用户执行。安装Oracle RDBMS软件的响应文件,基本配置如下:

cd ~/database
./runInstaller -silent -responseFile /home/oracle/database/response/enterprise.rsp

最后根据提示执行以下两个命令:

sh /u01/app/oracle/oraInventory/orainstRoot.sh
sh /u01/app/oracle/product/10.2.0/db_1/root.sh

1.10 升级

在解压文件后,生成一个Disk1 的路径。这个路径里是升级用的各种文件。这一节的操作基本都围绕这个路径展开。

1.10.1 配置系统兼容列表

修改 Disk1/install/oraparam.ini,找到下面一行,

Linux=redhat-3,SuSE-9,SuSE-10,redhat-4,redhat-5,UnitedLinux-1.0,asianux-1,asianux-2,asianux-3

在该后面添加需要支持的操作系统及版本,最终如下:

Linux=redhat-3,SuSE-9,SuSE-10,redhat-4,redhat-5,UnitedLinux-1.0,asianux-1,asianux-2,asianux-3,redhat-4,redhat-5,redhat-6

1.10.2 配置升级响应文件

Disk1/response/patchset.rsp 是数据库升级所使用的配置文件。内容如下:

RESPONSEFILE_VERSION=2.2.1.0.0
UNIX_GROUP_NAME=oinstall                                   =======> 配置执行升级的用户属组
FROM_LOCATION=<Value Required>
NEXT_SESSION_RESPONSE=<Value Unspecified>
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1            =======> 配置ORACLE_HOME 变量的值
ORACLE_HOME_NAME="OraDBHome1"                              =======> 配置ORACLE_HOME_NAME 与安装Oracle软件的名称保持一致
TOPLEVEL_COMPONENT={"oracle.patchset.db","10.2.0.4.0"}
SHOW_SPLASH_SCREEN=false
SHOW_WELCOME_PAGE=false
SHOW_COMPONENT_LOCATIONS_PAGE=false
SHOW_CUSTOM_TREE_PAGE=false
SHOW_SUMMARY_PAGE=false
SHOW_INSTALL_PROGRESS_PAGE=true
SHOW_REQUIRED_CONFIG_TOOL_PAGE=false
SHOW_OPTIONAL_CONFIG_TOOL_PAGE=false
SHOW_CONFIG_TOOL_PAGE=false
SHOW_XML_PREREQ_PAGE=false
SHOW_RELEASE_NOTES=false
SHOW_END_OF_INSTALL_MSGS=true
SHOW_ROOTSH_CONFIRMATION=true
SHOW_END_SESSION_PAGE=false
SHOW_EXIT_CONFIRMATION=false
NEXT_SESSION=false
NEXT_SESSION_ON_FAIL=false
SHOW_DEINSTALL_CONFIRMATION=false
SHOW_DEINSTALL_PROGRESS=false
ACCEPT_LICENSE_AGREEMENT=true
RESTART_SYSTEM=<Value Unspecified>
CLUSTER_NODES=<Value Unspecified>
OUI_HOSTNAME=<Value Unspecified>
REMOVE_HOMES=<Value Unspecified>
COMPONENT_LANGUAGES={"en"}
sl_userNodeList=<Value Unspecified>
b_acceptLicense=<Value Unspecified>
b_useRegistration=<Value Unspecified>
s_csiNumber=<Value Unspecified>
s_metaLink=<Value Unspecified>
s_countryName=<Value Unspecified>
b_proxyused=<Value Unspecified>
s_serverName=<Value Unspecified>
s_portNumber=<Value Unspecified>
s_userName=<Value Unspecified>
s_proxyPassword=<Value Unspecified>
b_authenticationused=<Value Unspecified>

只需要修改有提示的三个参数。其他不需要修改。

特别说明的是,如果不记得ORACLE_HOME_NAME,可以在 oraInventory/ContentsXML/inventory.xml中找到,如下:

<INVENTORY>
<VERSION_INFO>
   <SAVED_WITH>10.2.0.1.0</SAVED_WITH>
   <MINIMUM_VER>2.1.0.6.0</MINIMUM_VER>
</VERSION_INFO>
<HOME_LIST>
<HOME NAME="OraDBHome1" LOC="/u01/app/oracle/product/10.2.0/db_1" TYPE="O" IDX="1"/>
</HOME_LIST>
</INVENTORY>

HOME NAME="OraDBHome1" 就是ORACLE_HOME_NAME 对应的值。

另外,如果想变更 ORACLE_HOME_NAME 的值,请参考变更ORACLE_HOME_NAME.

1.10.3 安装补丁

./runInstaller -silent -responseFile <path>/Disk1/response/patchset.rsp

注意,响应文件要使用绝对路径。

执行部分结果如下:

正在启动 Oracle Universal Installer...

正在检查安装程序要求...

检查操作系统版本: 必须是redhat-3, SuSE-9, SuSE-10, redhat-4, redhat-5, UnitedLinux-1.0, asianux-1, asianux-2, asianux-3, redhat-4, redhat-5 or redhat-6
                                      通过


所有安装程序要求均已满足。

准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2020-05-09_11-53-53PM. 请稍候...[oracle@boss1 Disk1]$ Oracle Universal Installer, 版本 10.2.0.4.0 正式版
版权所有 (c) 1999, 2008, Oracle。保留所有权利。

本次安装会话的日志可见于:
 /u01/app/oracle/oraInventory/logs/installActions2020-05-09_11-53-53PM.log
.................................................................................................... 100% 已完成。


正在加载产品信息
.......................................................................................................... 100% 已完成。


开始执行先决条件...
Total No of checks: 2

Performing check for checkToInstallCCR
检查 Oracle 主目录中已安装的组件
检查完成。此次检查的总体结果为: 通过


Check complete: 通过
=======================================================================
Performing check for CompatibilityChecks
正在检查 Oracle 主目录的不兼容性...
检查完成。此次检查的总体结果为: 通过


Check complete: 通过
=======================================================================
PrereqChecks complete


分析相关性
............................................................................................................. 100% 已完成。

-----------------------------------------------------------------------------
概要
全局设置
    来源: /home/oracle/Disk1/stage/products.xml
    Oracle 主目录: /u01/app/oracle/product/10.2.0/db_1 (OraDBHome1)
产品语言
   英语
空间要求
   / 要求空间 1.42GB (包括 55MB 临时空间) : 可用空间 39.73GB
新安装组件 (81 个产品)
   Oracle Notification Service Patch 10.2.0.4.0
   Database Configuration and Upgrade Assistants Patch 10.2.0.4.0
........... 省略 ...............
正在进行卸装 (2020年5月9日 星期六 下午11时54分04秒 CST)
...............................................................   0% 已完成。
...............................................................  14% 已完成。
...............................................................  29% 已完成。
...............................................................  44% 已完成。
...............................................................  59% 已完成。
...............................................................  74% 已完成。
..............................................                  100% 已完成。

卸装成功

正在安装 (2020年5月9日 星期六 下午11时54分04秒 CST)
...............................................................  14% 已完成。
...............................................................  29% 已完成。
...............................................................  44% 已完成。
...............................................................  59% 已完成。
...............................................................  74% 已完成。
......................................................           87% 已完成。
安装成功

正在进行链接 (2020年5月9日 星期六 下午11时54分33秒 CST)
...                                                              87% 已完成。
链接成功

正在进行设置 (2020年5月9日 星期六 下午11时57分15秒 CST)
.........                                                       100% 已完成。
设置成功

安装阶段结束。(2020年5月9日 星期六 下午11时57分16秒 CST)
WARNING:
以下配置脚本需要以 "root" 用户的身份执行。
#!/bin/sh
#Root script to run
/u01/app/oracle/product/10.2.0/db_1/root.sh
要执行配置脚本, 请执行以下操作:
    1. 打开终端窗口
    2. 以 "root" 身份登录
    3. 运行脚本

Oracle Database 10g Release 2 Patch Set 3 的 安装 已成功。
请查看 ‘/u01/app/oracle/oraInventory/logs/silentInstall2020-05-09_11-53-53PM.log‘ 以获取详细资料。

根据提示,再次执行root.sh,注意,以root用户执行。

sh /u01/app/oracle/product/10.2.0/db_1/root.sh

没有异常的话,至此,已升级完 RDBMS软件。 如果还没有数据库,只是升级软件,至此已完成。如果本身是有数据 库的,还需要执行下面两个步骤。

1.10.4 升级数据字典

sqlplus 环境操作,sysdba身份。

startup upgrade
spool patch.log
@?/rdbms/admin/catupgrd.sql
spool off

1.10.5 重新编译无效对象

sqlplus 环境操作,sysdba身份。

startup force
@?/rdbms/admin/utlrp.sql

1.10.6 升级catalog

如果使用catalog 库作为记录rman备份信息,那么还需要升级catalog。

rman catalog /
RMAN> UPGRADE CATALOG;

1.10.7 回退

SQL> STARTUP DOWNGRADE
SQL> SPOOL downgrade.log
SQL> @catdwgrd.sql
SQL> spool off

注意,如果你的版本里没有catdwgrd.sql,可以依据10.1中的文件全名规则, 降级使用的是d92000.sql,即d<old_release>.sql 。

Author: halberd.lee

Created: 2020-05-11 Mon 21:54

Validate

ORACLE 10.2.0.1 单机升级至10.2.0.4

上一篇:【一个idea】YesSql,一种在经典nosql数据库redis上实现SQL引擎的方案(我就要开历史的倒车)


下一篇:SpringMvc、JDBC、Dubbo、Spring常用的流程图【多测师】