全部博文(1144)
分类: LINUX
2010-09-09 22:37:30
Oracle Database 10.2.0.5.0 的PatchSet在两周前发布了, 昨天天对一个生产环境的小逻辑备库做了一下升级, 小记一下. 本升级步骤适用于升级Oracle Database 10.2.0.x.0 版本的数据库, 普通数据库和逻辑备库都一样. 1 停止OEM/isqlplus/监听/DB实例 $ emctl stop dbconsole $ isqlplusctl stop $ lsnrctl stop $ sqlplus / as sysdba SQL> shutdown immediate; 2 升级Oracle软件1) 备份ORACLE_HOME和oraInventory 升级前对要升级的ORACLE_HOME进行备份是必要的, 还有oraInventory目录, 一旦升级失败便于回退. $ cd $ORACLE_HOME/.. $ tar jcvf db_1_`date +%Y%m%d`.tar.bz2 db_1 $ cd $ORACLE_BASE $ tar jcvf oraInventory_`date +%Y%m%d`.tar.bz2 oraInventory 另外一个备份的方法: $ cd $ORACLE_HOME/.. $ cp -pr db_1 db_1_new (备份到新目录, 且保留mode,ownership,timestamps等信息) $ diff -q -r db_1 db_1_new (比较两个目录, 应该只有日志文件发生变化) 2) 升级Oracle 软件 通过response文件开始升级, 升级时间大概2-3分钟. $ cd /u01/software/10g/ $ unzip p8202632_10205_LINUX.zip $ cd Disk1 $ export DISTRIB=`pwd` $ ./runInstaller -silent -responseFile $DISTRIB/response/patchset.rsp ORACLE_HOME="/u01/app/oracle/product/10.2.0/db_1" ORACLE_HOME_NAME="OraDb10g_home1" DECLINE_SECURITY_UPDATES="true" 如果未使用默认的组oinstall, 则runInstaller命令后需再加一个参数: UNIX_GROUP_NAME="oinstall" 各参数含义如下: -silent 表示以静默方式安装,不会有任何提示; -responseFile 表示使用哪个响应文件,必需使用绝对路径;ORACLE_HOME="/u01/app/oracle/product/10.2.0/db_1" oracle安装目录; ORACLE_HOME_NAME="OraDb10g_home1" ORACLE_HOME名; DECLINE_SECURITY_UPDATES="true" 是否需要安全更新, true表示不需要, 否则会要求输入metalink账号和联网信息; UNIX_GROUP_NAME="oinstall" oracle用户用于安装软件的组名; 3) 运行root.sh和changePerm.sh ü 升级结束后, 以root用户执行$ORACLE_HOME下的root.sh(如有提示则一直回车): # /u01/app/oracle/product/10.2.0/db_1/root.sh ü 安装PatchSet后新增的文件或目录是限制访问的, 其它用户或第三方工具要访问这些文件时会提示错误, 所以要修改权限: # su - oracle $ cd $ORACLE_HOME/install $ ./changePerm.sh ... Do you wish to continue (y/n) [n]: y ... $ tail -50f /tmp/changePerm_err.log ü 升级软件后检查: $ sqlplus /nolog SQL*Plus: Release 10.2.0.5.0 - Production on Sat May 8 14:34:51 2010 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. SQL> exit; 3 升级数据库$ sqlplus / as sysdba SQL> startup upgrade; (以升级模式启动数据库) SQL> SPOOL /tmp/patch102050.log SQL> @?/rdbms/admin/catupgrd.sql (重建数据字典, 若有问题可重复执行) ... Total Upgrade Time: 00:23:34 (数据库大小110G) ... SQL> SPOOL off SQL> !egrep "ORA-|Error" /tmp/patch102050.log (查看是否有错误) SQL> shutdown immediate; SQL> startup; SQL> select count(1) from dba_objects where status='INVALID'; COUNT(1) ---------- 484 SQL> @?/rdbms/admin/utlrp.sql (编译失效PLSQL包对象, 尽管第一次访问包是会自动编译, 还是推荐操作) ... OBJECTS WITH ERRORS ------------------- 0 ... ERRORS DURING RECOMPILATION --------------------------- 0 4 开启OEM/isqlplus/监听 $ lsnrctl start $ isqlplusctl start $ emctl start dbconsole --End-- |
Oracle Database 10.2.0.5.0 的PatchSet在两周前发布了, 昨天天对一个生产环境的小逻辑备库做了一下升级, 小记一下. 本升级步骤适用于升级Oracle Database 10.2.0.x.0 版本的数据库, 普通数据库和逻辑备库都一样. 1 停止OEM/isqlplus/监听/DB实例 $ emctl stop dbconsole $ isqlplusctl stop $ lsnrctl stop $ sqlplus / as sysdba SQL> shutdown immediate; 2 升级Oracle软件1) 备份ORACLE_HOME和oraInventory 升级前对要升级的ORACLE_HOME进行备份是必要的, 还有oraInventory目录, 一旦升级失败便于回退. $ cd $ORACLE_HOME/.. $ tar jcvf db_1_`date +%Y%m%d`.tar.bz2 db_1 $ cd $ORACLE_BASE $ tar jcvf oraInventory_`date +%Y%m%d`.tar.bz2 oraInventory 另外一个备份的方法: $ cd $ORACLE_HOME/.. $ cp -pr db_1 db_1_new (备份到新目录, 且保留mode,ownership,timestamps等信息) $ diff -q -r db_1 db_1_new (比较两个目录, 应该只有日志文件发生变化) 2) 升级Oracle 软件 通过response文件开始升级, 升级时间大概2-3分钟. $ cd /u01/software/10g/ $ unzip p8202632_10205_LINUX.zip $ cd Disk1 $ export DISTRIB=`pwd` $ ./runInstaller -silent -responseFile $DISTRIB/response/patchset.rsp ORACLE_HOME="/u01/app/oracle/product/10.2.0/db_1" ORACLE_HOME_NAME="OraDb10g_home1" DECLINE_SECURITY_UPDATES="true" 如果未使用默认的组oinstall, 则runInstaller命令后需再加一个参数: UNIX_GROUP_NAME="oinstall" 各参数含义如下: -silent 表示以静默方式安装,不会有任何提示; -responseFile 表示使用哪个响应文件,必需使用绝对路径;ORACLE_HOME="/u01/app/oracle/product/10.2.0/db_1" oracle安装目录; ORACLE_HOME_NAME="OraDb10g_home1" ORACLE_HOME名; DECLINE_SECURITY_UPDATES="true" 是否需要安全更新, true表示不需要, 否则会要求输入metalink账号和联网信息; UNIX_GROUP_NAME="oinstall" oracle用户用于安装软件的组名; 3) 运行root.sh和changePerm.sh ü 升级结束后, 以root用户执行$ORACLE_HOME下的root.sh(如有提示则一直回车): # /u01/app/oracle/product/10.2.0/db_1/root.sh ü 安装PatchSet后新增的文件或目录是限制访问的, 其它用户或第三方工具要访问这些文件时会提示错误, 所以要修改权限: # su - oracle $ cd $ORACLE_HOME/install $ ./changePerm.sh ... Do you wish to continue (y/n) [n]: y ... $ tail -50f /tmp/changePerm_err.log ü 升级软件后检查: $ sqlplus /nolog SQL*Plus: Release 10.2.0.5.0 - Production on Sat May 8 14:34:51 2010 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. SQL> exit; 3 升级数据库$ sqlplus / as sysdba SQL> startup upgrade; (以升级模式启动数据库) SQL> SPOOL /tmp/patch102050.log SQL> @?/rdbms/admin/catupgrd.sql (重建数据字典, 若有问题可重复执行) ... Total Upgrade Time: 00:23:34 (数据库大小110G) ... SQL> SPOOL off SQL> !egrep "ORA-|Error" /tmp/patch102050.log (查看是否有错误) SQL> shutdown immediate; SQL> startup; SQL> select count(1) from dba_objects where status='INVALID'; COUNT(1) ---------- 484 SQL> @?/rdbms/admin/utlrp.sql (编译失效PLSQL包对象, 尽管第一次访问包是会自动编译, 还是推荐操作) ... OBJECTS WITH ERRORS ------------------- 0 ... ERRORS DURING RECOMPILATION --------------------------- 0 4 开启OEM/isqlplus/监听 $ lsnrctl start $ isqlplusctl start $ emctl start dbconsole --End-- |