10.2.0.1 单机升级至10.2.0.4
Table of Contents
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
- 数据库参数文件如果手动配置,compatible 参数需要与原库一致。否则恢复控制文件时,会出现ORA-201错误。
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/app/oracle/
以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 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 。