ITPub博客

首页 > 数据库 > Oracle > oracle10g升级到oracle11g操作记录

oracle10g升级到oracle11g操作记录

原创 Oracle 作者:wxjzqym 时间:2013-12-07 11:52:55 0 删除 编辑
最近在测试环境做了一个数据库的升级,将相关操作步骤简要记录如下:
1.将10.2.0.1升级到10.2.0.4
1.1更新oracle TimeZone版本
1.1.1查询源库TimeZone版本
SQL> select * from v$timezone_file;
FILENAME        VERSION
------------ ----------
timezlrg.dat          2

1.1.2检查是否存储含有TZ的用户数据
select c.owner || '.' || c.table_name || '(' || c.column_name || ') -' || c.data_type || ' ' col
   from dba_tab_cols c, dba_objects o
  where c.data_type like '%TIME ZONE'
     and c.owner=o.owner
    and c.table_name = o.object_name
    and o.object_type = 'TABLE'
 order by col
 /
查询结果的owner如果只包含sys和WMSYS则表示不包含用户的TZ数据


查询是否含有非标准的scheduler_job
SQL> SELECT object_name FROM dba_objects WHERE object_id IN (SELECT obj# FROM scheduler$_window);
 
OBJECT_NAME
----------------------------- 
WEEKNIGHT_WINDOW
WEEKEND_WINDOW
 
SQL> SELECT object_name FROM dba_objects WHERE object_id IN (SELECT obj# FROM scheduler$_job);
 
OBJECT_NAME
-----------------------------
PURGE_LOG
FGR$AUTOPURGE_JOB
GATHER_STATS_JOB
AUTO_SPACE_ADVISOR_JOB
RLM$EVTCLEANUP
RLM$SCHDNEGACTION
查询结果中包含有以上结果之外的话表示含有非标准的scheduler_job,即用户自定义scheduler_job
除了数据库中既不包含TZ的用户数据又没有自定义的scheduler_job外,其余任何情况都需要校验哪些数据受时区影响

1.1.3查询受时区影响的数据
1.1.3.1下载utltzpv4.sql脚本
1.1.3.2运行utltzpv4.sql脚本
1.1.3.3查询运行结果
SQL> select * from sys.sys_tzuv2_temptab;
 
no rows selected
如果无结果返回则表示时区更新操作可以忽略,如果有返回数据则可以调用以下相应脚本解决!
prepare_tzuv.sql:自动创建备份表
restore_tzuv.sql:更新完时区文件后可以使用该脚本还原原始数据
clean_tzuv.sql:  确认数据正确恢复后可以使用该脚本删除备份表

1.2停止oracle所有相关进程
emctl stop dbconsole
isqlplusctl stop
lsnrctl stop
sqlplus / as sysdba
SQL> SHUTDOWN IMMEDIATE

1.3备份系统
Oracle Inventory
Oracle 10g home

1.4安装10.2.0.4 Patchset(覆盖安装)
./runInstaller

1.5更新Oracle database 10.2.0.1 to 10.2.0.4(可以使用dbua或者手动更新,这里我选择手动更新)
1.5.1运行更新前信息工具
SQL> STARTUP UPGRADE
SQL> SPOOL upgrade_info.log 
SQL> @?/rdbms/admin/utlu102i.sql
SQL> SPOOL OFF
检查upgrade_info.log日志信息,将相关警告及错误一一解决


1.5.2更新数据库
lsnrctl start
sqlplus / as sysdba
SQL> STARTUP UPGRADE
SQL> SPOOL patch.log
SQL> @?/rdbms/admin/catupgrd.sql
SQL> SPOOL OFF
检查patch.log日志信息,将相关警告及错误一一解决
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
SQL> @?/rdbms/admin/utlrp.sql
SQL> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;
如果以上输出的status都为valid则表示升级成功

2.将10.2.0.4升级到11.2.0.3
2.1安装11.2.0.3的PATCHSET(安装在新的ORACLE_HOME下)
2.2升级前的预检查
sqlplus / as sysdba
SQL> SPOOL upgrade_info.log
SQL> @$11g_ORACLE_HOME/rdbms/admin/utlu112i.sql
SQL> SPOOL OFF
检查upgrade_info.log日志信息,将相关警告及错误一一解决

2.3手动升级数据库
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP UPGRADE
SQL> SPOOL upgrade.log
SQL> @catupgrd.sql
SQL> STARTUP
SQL> @utlu112s.sql
SQL> @catuppst.sql
SQL> @utlrp.sql
SQL> SELECT count(*) FROM dba_invalid_objects;
SQL> SELECT distinct object_name FROM dba_invalid_objects;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20801486/viewspace-1062624/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 安装11gr2 RAC
请登录后发表评论 登录
全部评论

注册时间:2011-05-15

  • 博文量
    100
  • 访问量
    520575