将oracle10g 升级至10.2.0.4

http://blog.csdn.net/launch_225/article/details/7221489 一、单实例环境,全时长一个半钟多。 详细图文说明到这下载 1、停止所有oracle相关进程。 emctl stop dbconsole isqlplusctl stop lsnrctl stop sqlplus /nolog sql> conn / as sysdba Connected to an idle instance. sql>shutdown   然后,冷备份下数据库 cp   2、google搜索下载安装p6810189_10204_Linux-x86 [oracle@linux~] cd Disk1 [oracle@linux Disk1~]$ ./runInstaller –jreLoc /opt/oracle/jdk1.6.0_18/jre/ 备注:因为环境关系,我指定使用了最新的jdk1.6.0.18,如您的环境与我不同。直接执行 ./runInstaller即可。   打开一个终端窗口: [oracle@linux ~] su 口令: 执行提示的脚本,本例中:[root@linux ~]# /opt/oracle/product/10.2/db_1/root.sh完成后关闭终端,返回安装界面,确定。如图   Ok,先不要启动数据库,补丁安装完成,还需要升级数据库才行。   重要:升级数据库,按说明文档,安装完成后,Postinstallation Tasks 1.使用DBUA升级(图型化界面,操作简单,据传出错机率高) 2.手工升级(字符界面,操作稍复制,据传出错机率低)   DBUA方式: 以oracle用户登陆 打开终端,设置好环境变量$ORACLE_HOME,$ORACLE_SID,$PATH 执行dbua [oracle@linux ~]$ dbua 看到欢迎界面,如图见文档   下一步,按照提示选择数据库(如果你要操作的数据库不在列表中,手工修改/etc/oratab添加SID),注意"升级完成后编译无效对象"的选项,建议选中,接着下一步。如果在操作之前没有备份数据库,可以在此选择备份。dbua执行的是冷备,需要估计好磁盘剩余空间。点击下一步,oracle开始升级操作,如图   如果运气好即没碰上bug,也没遭遇错误,那就可以finish了,如图   升级完成,Oracle自动打开数据库,赶紧连接进去看看数据是否还在:)   手工升级: 1、以oracle用户登陆 打开终端,设置好环境变量$ORACLE_HOME,$ORACLE_SID,$PATH [oracle@jsslinux dbs]$ export ORACLE_SID=stu [oracle@jsslinux dbs]$ oracle@linux-oracle10g:/> sqlplus /nolog SQL*Plus: Release 10.2.0.4.0 - Production on Tue Mar 9 15:14:18 2010 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. SQL> conn / as sysdba; Connected.   2、以升级模式启动数据库 SQL> startup upgrade ORACLE 例程已经启动。 数据库装载完毕。 数据库已经打开。 3、重建数据字典,另:如果有归档的话,强烈建议首先关闭归档 SQL> SPOOL path.log (路径默认在oracle主目录下  /opt/oracle/,这个日志会有点大30多M,可以查看.) SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql ...安装过程图省略 SQL> SPOOL OFF 如果这一步顺利执行,升级已经完成了大半。(这里要等待比较长一段时间)  如图   4、执行完重建数据字典,重启数据库 SQL> SHUTDOWN IMMEDIATE SQL> STARTUP 5、编译无效对象 由于catupgrd.sql重建过程中可能造成一些对象失效,我们需要运行utlrp.sql重新编译PL/SQL packages (知道utlrp.sql功能了吧,黑黑,有事没事都可以执行一下)。 @?/rdbms/admin/utlrp.sql 耐心等待,直至完毕,出现sql> 6、然后运行下面的命令来检查升级之后,所有组件的状态: SQL> select comp_name, version, status from sys.dba_registry; 显示值为VALID,则成功完成升级。如图   另:最好查看下。 SQL> select tablespace_name,status from dba_tablespaces; --表空间都在 SQL> select username from dba_users; --用户都在 SQL> select object_name from dba_objects where owner='SCOTT'; --用户对象都在 注:dba_objects视图中也许会有一些类似BIN$4lzljWIt9gfgMFeM2hVSoA==$0的对象存在,这是10g后提供的新功能,对象删除后并非真正被删,而是扔到回收站,这些对象就是回收站的对象,不用管它。
原文地址:https://www.cnblogs.com/adodo1/p/4327521.html