oracle从10.2.0.1升级到10.2.0.4

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

[@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开始描述了,闲话就不多讲了,不管领导对这个问题是怎么想的,升级是肯定的了,先干活,以下就是升级的基本步骤,有些操作也可以不做,比如备份,不一定每个备份操作都要做,这里只提供参考,希望能对大家有帮助:

1、基础环境确认

#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.上传安装包或补丁包

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

777权限,再进行以下步骤

3、停止所有应用及服务

凡是需要访问oracle的应用软件服务,全部要关闭

4、热备份

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’;

5、关闭所有oracle服务

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

6、冷备数据库

#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

7、安装升级包

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

8、升级数据库

$ 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

9、重新编译失效对象

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

10、升级后检查

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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值