oracle10.2.0.1升级到oracle10.2.0.4

author:skate

time:2010-05-26



oracle10.2.0.1升级到oracle10.2.0.4

昨天上午做了个oracle10g升级,其实升级很简单,计划在50分钟完成,可到达现场后,遇到了几个小问题
系统输入密码无法登陆(由于修改ip后,可能network出现问题,最后重启机器解决),登录后乱码(修改了
/etc/sysconfig/i18文件,因为os没有安装中文字符集,而又启用中文,所以会乱码)。把这些小问题解决后
就开始主要任务---升级

 

 

1. 停止所有oracle相关进程。包括数据库,监听等相关的所有开启进程


  lsnrctl stop
  shutdown immediate

 

然后把oracle数据库文件冷备,避免升级失败

 

2. 下载补丁包p6810189_10204_Linux-x86


  # xhosts +
  # su - oracle
  $ cd Disk1
  $ ./runInstaller

 

  这步骤一般很快,中途需要执行个root.sh脚本,运行结束后oracle软件就升级ok,先不要启动数据库,还需要升级数据库

 

3. 手工升级


   以oracle用户登录,打开终端,设置好环境变量$ORACLE_HOME,$ORACLE_SID,$PATH
  
   $ export ORACLE_SID=orcl
   $ sqlplus /nolog

 

  A。 以升级模式启动数据库


   sql> startup upgrade
  
  B。 重建数据字典,另:如果有归档的话,强烈建议首先关闭归档

 

   SQL> SPOOL path.log (路径默认在oracle主目录下  /opt/oracle/,这个日志会有点大30多M,可以查看.)
   SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql
   SQL> SPOOL OFF

 

   这个过程要等很长,我等了40分钟,如果这一步顺利执行,升级已经完成了大半

 

  C。执行完重建数据字典,重启数据库

 

   SQL> SHUTDOWN IMMEDIATE
   SQL> STARTUP

 

  D。编译无效对象

 

  @?/rdbms/admin/utlrp.sql

  SQL> select * from utl_recomp_errors;
未选定行(这里说明没有错误)


  由于catupgrd.sql重建过程中可能造成一些对象失效,我们需要运行utlrp.sql重新编译PL/SQL packages

 

   E。然后运行下面的命令来检查升级之后,所有组件的状态

 

   SQL> select comp_name, version, status from sys.dba_registry;   //显示值为VALID,则成功完成升级

 

   用opatch lsinventory验证补丁是否安装成功

 

[oracle@ticket-A ~]$ ls -l /home/oracle/oracle/product/10.2.0/db_1/OPatch/
total 76
drwxr-x---  2 oracle oinstall  4096 May 25 11:12 docs
-rw-r--r--  1 oracle oinstall 19263 Dec 26  2006 emdpatch.pl
drwxr-x---  2 oracle oinstall  4096 May 25 11:12 jlib
-rwxr-xr-x  1 oracle oinstall  6315 Nov 23  2007 opatch
-rw-r--r--  1 oracle oinstall    49 May 25 11:12 opatch.ini
-rw-r--r--  1 oracle oinstall  2571 Aug  8  2006 opatch.pl
drwxr-x---  4 oracle oinstall  4096 May 25 11:12 opatchprereqs

 

[oracle@ticket-A OPatch]$ ./opatch lsinventory
Invoking OPatch 10.2.0.4.2

Oracle Interim Patch Installer version 10.2.0.4.2
Copyright (c) 2007, Oracle Corporation.  All rights reserved.


Oracle Home       : /home/oracle/oracle/product/10.2.0/db_1
Central Inventory : /home/oracle/oraInventory
   from           : /etc/oraInst.loc
OPatch version    : 10.2.0.4.2
OUI version       : 10.2.0.4.0
OUI location      : /home/oracle/oracle/product/10.2.0/db_1/oui
Log file location : /home/oracle/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch2010-05-26_15-58-56PM.log

Lsinventory Output file location : /home/oracle/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/lsinv/lsinventory2010-05-26_15-58-56PM.txt

--------------------------------------------------------------------------------
Installed Top-level Products (2):

Oracle Database 10g                                                  10.2.0.1.0
Oracle Database 10g Release 2 Patch Set 3                            10.2.0.4.0
There are 2 products installed in this Oracle Home.


There are no Interim patches installed in this Oracle Home.


--------------------------------------------------------------------------------

OPatch succeeded.

 

 


还可以用如下命令验证补丁的安装

 

./opatch lsinventory -detail
./opatch lsinventory -all

 

 

如下两个视图升级前后对比下,验证升级是否成功

SELECT * FROM v$version
SELECT * FROM v$option

 

 

   再检查下其他的

 

   SQL> select tablespace_name,status from dba_tablespaces; //检查tablespace
   SQL> select username from dba_users;    //检查用户
   SQL> select object_name from dba_objects where owner='SCOTT';  //检查对象
   SQL> select name from v$database(确认ORACLE_SID正确,为orcl)
   SQL> select tablespace_name, bytes from dba_data_files(对系统表空间大小进行确认)。

 

总结:

1. 计划总是没有变化快,在计划之中总会出现一些意外的插叙
2. 要留有充足的时间以备处理突发事件
3. 这个升级共用90分钟

 

 

 

-----end-----

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值