oracle版本升级 10.2.0.1到10.2.0.3

来源:互联网 发布:php技术博客 编辑:程序博客网 时间:2024/05/21 17:28

方法一:

今天又做了开发机的数据库的补丁升级。从10.2.0.1升级到10.2.0.3,服务器是Windows2003 R2
在win下升级主要过程记录如下:
1,下载升级包
2,关闭所有有关oracle的service(可以在服务中停止所有和 oracle相关的服务)。
3,界面上安装。下一步下一步就行
   注意安装目录改为已安装(旧版本)的Oracle的目录。。

不启用Oracle Configuration Manager, 单击“下一步”。

在安装结束画面, 单击“退出”, 然后确认退出 Oracle Universal Installer,至此,ORACLE升级包软件安装结束

4,升级数据字典。(时间挺长,近40分钟)
服务里启动相对应的数据库和监听

SQL>conn /as sysdba
SQL>shutdown immediate
SQL>startup upgrade
SQL>SPOOL patch.log
SQL>@D:/oracle/prod t/10.2.0/db_1/RDBMS/ADMIN/catupgrd.sql

SQL>@D:/oracle/prod t/10.2.0/db_1/rdbms/admin/catalog.sql   (这个脚本我未执行,readme文件中没有提到要执行这个脚本,重建SYS用户视图)

SQL> shutdown immediate;

编译失效对象
SQL>@D:/oracle/prod t/10.2.0/db_1/RDBMS/ADMIN/utlrp.sql

5,升级后查询确认:
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod
PL/SQL Release 10.2.0.4.0 - Prod tion
CORE    10.2.0.4.0      Prod tion
TNS for 32-bit Windows: Version 10.2.0.4.0 - Prod tion
NLSRTL Version 10.2.0.4.0 - Prod tion
SQL>
SQL> select count(*) from dba_objects where status='INVALID';
COUNT(*)
----------
         0
SQL> col COMP_ID format a20;
SQL> col VERSION format a20;
SQL> col STATUS format a20;
SQL> select comp_id,comp_name,version,status from sys.dba_registry;
COMP_ID              VERSION              STATUS
-------------------- -------------------- --------------------
OLS                  10.2.0.4.0           VALID
EM                   10.2.0.4.0           VALID
SDO                  10.2.0.4.0           VALID
ORDIM                10.2.0.4.0           VALID
AMD                  10.2.0.4.0           VALID
XDB                  10.2.0.4.0           VALID
CONTEXT              10.2.0.4.0           VALID
EXF                  10.2.0.4.0           VALID
RUL                  10.2.0.4.0           VALID
OWM                  10.2.0.4.3           VALID
ODM                  10.2.0.4.0           VALID
COMP_ID              VERSION              STATUS
-------------------- -------------------- --------------------
CATALOG              10.2.0.4.0           VALID
CATPROC              10.2.0.4.0           VALID
JAVAVM               10.2.0.4.0           VALID
XML                  10.2.0.4.0           VALID
CATJAVA              10.2.0.4.0           VALID
APS                  10.2.0.4.0           VALID
XOQ                  10.2.0.4.0           VALID
18 rows selected.

方法二:

10.2.0.1-->10.2.0.3
单实例,数据库为本地文件系统存储

##停止所有服务
$ emctl stop dbconsole
$ isqlplusctl stop
$lsnrctl stop

##备份数据库和数据库软件
#查看数据库的位置
select name from v$datafile;
select member from v$logfile;
select name from v$controlfile;
#查看数据库软件的位置
env | grep ORA
sql>shutdown immediate
用cp进行备份

##升级软件
运行./runInstaller,打patch

##升级数据库的准备工作
$ lsnrctl start
确保内存足够
SQL> ALTER SYSTEM SET SHARED_POOL_SIZE='150M' SCOPE=spfile;
SQL> ALTER SYSTEM SET JAVA_POOL_SIZE='150M' SCOPE=spfile;
#升级数据库
$ sqlplus "/as sysdba"
SQL> STARTUP UPGRADE
SQL> SPOOL patch.log
SQL> @?/rdbms/admin/catupgrd.sql
SQL> SPOOL OFF
SQL> SHUTDOWN

##重新编译pl/sql(可选)
SQL> STARTUP
SQL> @?/rdbms/admin/utlrp.sql

##升级rman(可选)
$ rman catalog username/password@alias
RMAN> UPGRADE CATALOG;

##修改目录权限(可选)
$ cd $ORACLE_HOME/install
$./changePerm.sh

方法三:

ORACLE_BASE/ORACLE_HOME/bin/dbua

直接使用update assistant……

遇到bug解决:

在用前三种升级方法的时候,一直遇到UTL_RECOMP_ERRORS 的错误380个,怎么也解决不了,最后重装10.2.0.1,然后按如上步骤升级到10.2.0.3,在运行utlrp.sql的时候,又冒出了别的错误:

DBMS_REGISTRY_SYS出现错误

1.Symptoms
数据库有INVALID对象,当编译的时候包DBMS_REGISTRY_SYS出现错误
ERROR at line 1:
ORA-04063: package body "SYS.DBMS_REGISTRY_SYS" has errors
ORA-06508: PL/SQL: could not find program unit being called:
"SYS.DBMS_REGISTRY_SYS"
ORA-06512: at line 1

解决办法如下:

Run prvtcr.plb to revalidate the package.

由此问题得到解决,升级成功。

原创粉丝点击