------------------
一. 背景
------------------
今天收到一个用户的远程电话,客户正在升级生产数据库,windows平台,由10201升级到10204,在执行升级的过程中,使用dbua图形界面工具,在升级执行完成86%的时候,遇到一个错误,如下图所示:
当时由于正在另外一个城市的现场,上网不方便。不过客户比较着急。只好在自己的电脑上,搜一些资料。
------------------
二. 处理过程
------------------
*) 询问客户,升级前有备份没有?
客户说有备份,windows平台的冷备份,但是没有备份注册表相关部分。
还好,有这个冷备份还是很好的,注册表部分应该通过编辑,可以进行正确修改,不过可能有点麻烦。
*) 立即建议客户将现在的几个键完成导出备份,每个键备份成名称分别为1,2,3....,这样比较快一点。
备份注册表,以便保护现场,如果编辑注册表不成功,可以恢复到那个时刻的状态。
报错是跟OEM有关的,这个一时还找不到具体原因,不过这个可以在以后再解决,先把数据库正常运转再说。
*) 让客户将监听器启用
*) 让客户使用使用客户端工具,sqlplus登录
select open_mode from v$database;
*) 检查数据库的各个部件的升级状态和版本
select comp_id,comp_name,version,procedure,status,modified from dba_registry;
*) 检查无效对象,然后重新编译
@%ORACLE_HOME%\rdbms\admin\utlrp.sql
*) 结束,数据库本身运行正常。
*) 关于OEM的配置,以后再处理。这个需要运行某些脚本,参照说明进行配置。
------------------
三. 小结
------------------
1.) 执行小版本升级,一般有两种方法,使用手工升级和使用dbua进行。
手工升级就是比较灵活,自己可以掌控升级的进度,但是步骤很多,很多操作手工完成,有时候容易忘记而出错。
dbua很简单,点击next一路往下。对客户很黑箱,不知道现在到底干什么,当然可以打开升级日志进行观察。
两种方法都可以做。
我喜欢用手工方式进行升级
2.) 升级前,有很多预操作要做,一定要做足功夫。比如关掉进程和服务,严格按照操作文档执行。
一般来所,预操作做好了,升级一般会顺利。
3.) 升级前有条件的,尽量做好备份,做好备份就是给自己上安全保险。有退路。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/195785/viewspace-524842/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/195785/viewspace-524842/