oracle从10.2.0.1升级到10.2.0.4

oracle的升级最难的其实不是升级自己,而是升级报告该怎么写。为何会有bug?为何用了这么久,这个bug如今才出现?这些问题才是最使人烦恼的。有时领导问下来,真的是没法回答。oracle不一样的版本在不一样的操做系统上运行一段时间后,都有可能被某些应用触发产生bug,而oracle公司也为每一个版本提供了不少补丁和升级包,最郁闷的是这些bug的产生都是很难找到缘由的,拿咱们生产环境的一个例子来说,在errpt中查到,每次rman进行自动备份的时候,oracle就会报软件异常,查看alert发现每次备份时间都有一个trc产生,跟踪trc文件,有以下信息: sql

[@more@]

/oradata/myapp/udump/myapp_ora_2642158.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
ORACLE_HOME = /oracle/app/10.2.0/db_1
System name: AIX
Node name: p720b
Release: 3
Version: 5
Machine: 00F739A84C00
Instance name: myapp
Redo thread mounted by this instance: 1
Oracle process number: 75
Unix process pid: 2642158, image: oracle@p720b (TNS V1-V3)数据库

*** 2012-07-30 23:28:05.478
*** ACTION NAME:(0001253 STARTED16) 2012-07-30 23:28:05.478
*** MODULE NAME:(backup incr datafile) 2012-07-30 23:28:05.478
*** SERVICE NAME:(SYS$USERS) 2012-07-30 23:28:05.478
*** SESSION ID:(292.18311) 2012-07-30 23:28:05.478服务器

以上是完整的报错,其中没有任何ORA报错,同时根据errpt提示找到oracle异常后产生的core
$strings core |grep _=
提示这个core是源自于rman,对于这个问题真是一筹莫展,没有更多的错误信息,core也只有oracle的人能看懂,因而联系oracle工程师,通过1个星期的研讨,他们给的回复是oracle的一个bug被触发了,只能升级数据库才能解决这个问题,而metalink上对这个问题的描述也是经过升级解决,也没有说明是什么缘由。因此没办法,只能升级,我能理解个人下属,但怎么向个人领导交代呢?oracle的bug产生虽然都有必定的条件,可是迹象并非特别明显,像此次的bug,咱们都没有找出是什么操做引发的,由于期间没有作过任何变更,要说有也就是遇上了一个业务小高峰,但又怎么判断业务高峰触发了什么呢?没办法只能从为何oracle会存在bug开始描述了,闲话就很少讲了,无论领导对这个问题是怎么想的,升级是确定的了,先干活,如下就是升级的基本步骤,有些操做也能够不作,好比备份,不必定每一个备份操做都要作,这里只提供参考,但愿能对你们有帮助:oracle

一、基础环境确认app

#oslevel -r
5.3.0.0-08
$ echo $ORACLE_BASE
/oracle/app/10.2.0
$ echo $ORACLE_HOME
/oracle/app/10.2.0/db_1
$sqlplus / as sysdba
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for IBM/AIX RISC System/6000: Version 10.2.0.1.0 - Productio
NLSRTL Version 10.2.0.1.0 – Production
SQL> select comp_name,version,status from dba_registry;
COMP_NAME VERSION STATUS
--------------------------------------------------------------------------------
Oracle Database Catalog Views 10.2.0.1.0 VALID
Oracle Database Packages and Types 10.2.0.1.0 VALID工具

在升级前必定要了解本身的基础环境,明确本身环境的oracle安装信息,环境变量,以及对当前版本的确认。测试

2.上传安装包或补丁包this

采用FTP命令或者FTP软件(如SecureFX),将升级包上传到服务器,10.2.0.1到10.2.0.4的包是p6810189_10204_AIX5L.zip,上传后解压升级包。
$unzip p6810189_10204_AIX5L.zip
因为安装是在oracle用户下进行,因此建议直接用oracle用户上传升级包并解压,若是是用root用户上传,可能在oracle下权限不足,这时也能够给上传的文件spa

777权限,再进行如下步骤操作系统

三、中止全部应用及服务

凡是须要访问oracle的应用软件服务,所有要关闭

四、热备份

exp导出数据:
#su – appuser(生产环境的AIX帐户名)
#nohup exp appuser/apppassword owner=appuser file=appuser20120317.dmp log=appuser20120317.log buffer=20000000

rman备份整个数据库:
#su – oracle
$sqlplus / as sysdba
SQL>alter database close;--要在mount状态下进行
$rman target /
RMAN>Backup database format ‘/oracle/%U.bak’;

五、关闭全部oracle服务

$ isqlplusctl stop
$ emctl stop dbconsole
$ lsnrctl stop
$sqlplus / as sysdba
SQL> shutdown immediate;
$ ps -ef|grep oracle
如仍有不能覆盖的文件,用root,执行/usr/sbin/slibclean

六、冷备数据库

#su – oracle
$tar –cvf app.tar /oracle/app ——对整个目录压缩,合成一个文件必须用tar,以后还可再用gzip对tar压缩
$tar –cvf oraInventory .tar /oracle/ oraInventory --oraInventory目录对oracle恢复也很是重要,建议也作冷备
$tar –cvf appuser/oracle/appuser
$tar -cvf log20121201.tar *.log
$tar -cvf ctl20121201.tar *.ctl
$tar -cvf dbf20121201.tar *.dbf

七、安装升级包

安装须要图形化支持,因此在安装前,须要对客户端进行配置,采用Xmanager做为安装工具
$export DISPLAY=客户端IP:0.0
$xclock 测试图形化操做
进入解压后的目录,开始安装
$cd Disk1
$./runIstanller --安装过程必定要用oracle 帐户
接下来就是按照oracle提示的步骤安装,过程当中若是有文件不能覆盖而报错,直接把这个文件重命名或者移走,再回到升级界面点“重试”,安装到最后一步时会一是执行一个root.sh脚本,这时须要切换到root帐户执行这个脚本,执行后再回到升级界面点“完成”

八、升级数据库

$ sqlplus /as sysdba
SQL>startup upgrade
SQL>SPOOL path.log (路径默认在oracle主目录下 /opt/oracle/,这个日志会有点大30多M,能够查看.)
SQL>@$ORACLE_HOME/rdbms/admin/catupgrd.sql --注9i 使用catpatch.sql
...安装过程图省略
SQL>SPOOL OFF

九、从新编译失效对象

SQL>shutdown immediate
SQL>startup
SQL>@$ORACLE_HOME/rdbms/admin/utlrp.sql

十、升级后检查

SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for IBM/AIX RISC System/6000: Version 10.2.0.4.0 - Productio
NLSRTL Version 10.2.0.4.0 – Production

SQL> select comp_name,version,status from dba_registry;
COMP_NAME VERSION STATUS
--------------------------------------------------------------------------------
Oracle Database Catalog Views 10.2.0.4.0 VALID
Oracle Database Packages and Types 10.2.0.4.0 VALID

SQL> select * from utl_recomp_errors;
no rows selected

SQL> select tablespace_name,status from dba_tablespaces;
--表空间都在

SQL> select username from dba_users;
--用户都在

SQL> select object_name from dba_objects where owner='SCOTT';
--用户对象都在

来自 “ ITPUB博客 ” ,连接:http://blog.itpub.net/17254424/viewspace-1059961/,如需转载,请注明出处,不然将追究法律责任。

转载于:http://blog.itpub.net/17254424/viewspace-1059961/