开始之前, 最好是备份原数据库会比较保险。(冷备份就可以了)
更新估计时间: 3小时左右(这个只是给出一个典型值,需视实际状况而定)
10.2.0.4 升级包下载地址:
ftp://updates.oracle.com/6810189/p6810189_10204_Win32.zip
下载完成后就可以开始升级了
1. 停止目前的Oracle 的所有服务。
操作方式: 右击“我的电脑”--》 管理--》服务, 找到Oracle开头的所有服务, 执行 停止
2. 解压升级包
如果报错误的话,可以多点几次。
3. 选择安装目录
选择安装在原目录,如:%ORCLE_HOME%\db_1
此步做完,升级工作并没有结束。
4. 更新数据字典(此部分会花费比较长的时间,而且在此过程中使用其他用户无法登陆数据库)
以sysdba登陆,(在命令提示符中输入:sqlplus /nolog 再输入 connect sys/pwd as sysdba ;);
sql>startup upgrade sql>spool patch.log sql>@%ORACLE_HOME%\db_1\RDBMS\ADMIN\catupgrd.sql SQL> SPOOL OFF
5. 关闭,重启
SQL>shutdownimmediate SQL>startup
6. 编译失效对象
SQL>@%ORACLE_HOME%\db_1\RDBMS\ADMIN\utlprp.sql
7. 验证结果
SELECT count(*) FROM dba_objects WHERE status='INVALID';
如果值为 0 , 说明升级 成功。
如果值大于0, 需根据以上方式重新运行catupgrd.sql, 直到值为 0.
(如果run了多次, 还是大于0的话, 就不要再run了, 试试数据库是否正常, 又发现大于0的状况下,数据库也可以正常运行)
8. 查看版本信息
select * from v$version;
除了以上手动更新外, oracle提供了一个更新的工具DBUA
DBUA 工具提供了一个可视化的界面,它的作用等同于执行catupgrd.sql等脚本,dbua工具能升级Oracle 的一些组件。组件升级之后,该工具会自动编译无效的对象.
延生介绍
————————————————————————————————————————————————————————————————————————
升级数据字典
1. 为什么要执行升级数据字典的脚本? 首先就需要知道oracle 数据字典的作用了。
如果不更新,
a) 会出现数据库打不开,报ORA-00704:bootstrap process failure错误
b) 出现ORA-27468错误。 详细错误信息为: Errors IN file /u01/app/oracle/admin/orcl/bdump/orcl1_j000_18724.trc: ORA-12012: error ON auto EXECUTE OF job 42791 ORA-27468: "EXFSYS.RLM$EVTCLEANUP" IS locked BY another process , 在MOS文档ORA-12012 ORA-27468: “SYS.PURGE_LOG” is Locked by Another Process [ID 751884.1]中介绍了这个错误。
解决问题的方法很简单,在闲时执行catupgrd.sql,完成升级组件的后续操作既可
http://www.oracledatabase12g.com/archives/%E6%B7%B1%E5%85%A5%E4%BA%86%E8%A7%A3oracle%E6%95%B0%E6%8D%AE%E5%AD%97%E5%85%B8%E5%8D%87%E7%BA%A7%E8%84%9A%E6%9C%ACcatupgrd-sql%E8%B0%83%E7%94%A8%E8%BF%87%E7%A8%8B.html
2. Oracle的spool命令可以用来将数据export出来到文本文件。Oracle的Import/Export命令用于备份和恢复比较有效,但对于一些临时数据量的导出,Export不好用,甚至不可用。在这里,就是spool的发挥之地了
编译失效对象
utlrp.sql脚本可以在数据库运行的状态下执行以编译、数据库中的invalid对象.
以下是linux 下升级的链接
http://jinyu345.blog.163.com/blog/static/67778922011112010368882/
http://server.zol.com.cn/127/1274311.html