手工升级到Oracle 12C

莱莱  金牌会员 | 2023-9-18 15:43:24 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 879|帖子 879|积分 2637

一、升级路线


  • 10.2.0.5,11.1.0.7,11.2.0.2以上版本可以直接升级到12c。
  • 10.2.0.5以前的版本和11.2.0.1版需要先升级到中间版本,再升级到12c。
二、环境说明


  • 操作系统:Red Hat 8 Linux 64位
  • 源数据库版本:Oracle 11.2.0.3
  • 目标数据库版本:Oracle 12.1.0.2
三、升级步骤简述


  • 备份源数据库(RMan)
  • 执行Pre-Upgrade Information Tool(preupgrd.sql)
  • 准备新版本的Oracle Home
  • 关闭数据库实例
  • 使用12c启动数据库,进入升级模式
  • 执行并行升级实用程序(catctl.pl)
  • 执行Post-Upgrade Status Tool(utlu121s.sql)
  • 执行附加脚本(catuppst.sql和utlrp.sql)
  • 完成升级阶段
四、升级步骤

4.1、备份数据库

4.2、执行Pre-Upgrade Information Tool

4.2.1、运行预升级工具脚本

使用目标版本数据库(Oracle 12C)目录/u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin/下的preupgrd.sql脚本。在源数据库的SQL*Plus内执行。
  1. 1 sqlplus /nolog
  2. 2
  3. 3 SQL*Plus: Release 11.2.0.3.0 Production on Thu Sep 14 15:43:31 2023
  4. 4
  5. 5 Copyright (c) 1982, 2011, Oracle.  All rights reserved.
  6. 6
  7. 7 SQL> conn / as sysdba
  8. 8 Connected.
  9. 9 SQL> @/u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin/preupgrd.sql
复制代码
此工具是用来分析源数据库存在的问题,并生成用来生成解决问题的脚本。
  1. Loading Pre-Upgrade Package...
  2. ***************************************************************************
  3. Executing Pre-Upgrade Checks in RCAT...
  4. ***************************************************************************
  5.       ************************************************************
  6.                    ====>> ERRORS FOUND for RCAT <<====
  7. The following are *** ERROR LEVEL CONDITIONS *** that must be addressed
  8.                     prior to attempting your upgrade.
  9.             Failure to do so will result in a failed upgrade.
  10. 1) Check Tag:    PURGE_RECYCLEBIN
  11.     Check Summary: Check that recycle bin is empty prior to upgrade
  12.     Fixup Summary:
  13.      "The recycle bin will be purged."
  14.             You MUST resolve the above error prior to upgrade
  15.       ************************************************************
  16.       ************************************************************
  17.                ====>> PRE-UPGRADE RESULTS for RCAT <<====
  18. ACTIONS REQUIRED:
  19. 1. Review results of the pre-upgrade checks:
  20. /u01/app/oracle/cfgtoollogs/rcat/preupgrade/preupgrade.log
  21. 2. Execute in the SOURCE environment BEFORE upgrade:
  22. /u01/app/oracle/cfgtoollogs/rcat/preupgrade/preupgrade_fixups.sql
  23. 3. Execute in the NEW environment AFTER upgrade:
  24. /u01/app/oracle/cfgtoollogs/rcat/preupgrade/postupgrade_fixups.sql
  25.       ************************************************************
  26. ***************************************************************************
  27. Pre-Upgrade Checks in RCAT Completed.
  28. ***************************************************************************
  29. ***************************************************************************
  30. ***************************************************************************
复制代码
提出的建议如下:

  • 发现了Enterprise Manager,在升级过程中会删除EM库,为了减少升级时间,可以先删除。已自动处理。
  • 发现了OLAP Catalog组件,在12C中不再支持OLAP Catalog组件,可以在升级前或升级后使用catnoamd.sql脚本删除,这里就不删除了,升级后再说。
  • 回收站是空的,不需要处理。如果回收站不是空的,将自动清空回收站。
  • 发现了APEX,APEX版本升级会占用比较多的时间,oracle建议可以手工升级,参考: 1088970.1,这里也不管了,一起升级。
  • 建议在数据库升级的24小时之前执行EXECUTE dbms_stats.gather_dictionary_stats;,收集数据字典统计信息。
  1. 1 SQL> @/u01/app/oracle/cfgtoollogs/rcat/preupgrade/preupgrade_fixups.sql
复制代码
 4.2.3、升级后脚本

升级后在新环境运行升级后修复脚本:/u01/app/oracle/cfgtoollogs/rcat/preupgrade/postupgrade_fixups.sql,此脚本用来修复数据库升级后的问题。
4.3、准备12c Oracle Home

编辑/etc/oratab文件,将RCAT的环境变量指向Oracle 12C的Oracle Home。
  1. Pre-Upgrade Fixup Script Generated on 2023-09-14 15:51:38  Version: 12.1.0.2 Build: 006
  2. Beginning Pre-Upgrade Fixups...
  3. Executing in container RCAT
  4. **********************************************************************
  5. Check Tag:     EM_PRESENT
  6. Check Summary: Check if Enterprise Manager is present
  7. Fix Summary:   Execute emremove.sql prior to upgrade.
  8. **********************************************************************
  9. Fixup Returned Information:
  10. WARNING: --> Enterprise Manager Database Control repository found in the database
  11.      In Oracle Database 12c, Database Control is removed during
  12.      the upgrade. To save time during the Upgrade, this action
  13.      can be done prior to upgrading using the following steps after
  14.      copying rdbms/admin/emremove.sql from the new Oracle home
  15.    - Stop EM Database Control:
  16.     $> emctl stop dbconsole
  17.    - Connect to the Database using the SYS account AS SYSDBA:
  18.    SET ECHO ON;
  19.    SET SERVEROUTPUT ON;
  20.    @emremove.sql
  21.      Without the set echo and serveroutput commands you will not
  22.      be able to follow the progress of the script.
  23. **********************************************************************
  24. **********************************************************************
  25. Check Tag:     AMD_EXISTS
  26. Check Summary: Check to see if AMD is present in the database
  27. Fix Summary:   Manually execute ORACLE_HOME/oraolap/admin/catnoamd.sql script to remove OLAP.
  28. **********************************************************************
  29. Fixup Returned Information:
  30. INFORMATION: --> OLAP Catalog(AMD) exists in database
  31.      Starting with Oracle Database 12c, OLAP Catalog component is desupported.
  32.      If you are not using the OLAP Catalog component and want
  33.      to remove it, then execute the
  34.      ORACLE_HOME/olap/admin/catnoamd.sql script before or
  35.      after the upgrade.
  36. **********************************************************************
  37. **********************************************************************
  38. Check Tag:     PURGE_RECYCLEBIN
  39. Check Summary: Check that recycle bin is empty prior to upgrade
  40. Fix Summary:   The recycle bin will be purged.
  41. **********************************************************************
  42. Fixup Succeeded
  43. **********************************************************************
  44. **********************************************************************
  45. Check Tag:     APEX_UPGRADE_MSG
  46. Check Summary: Check that APEX will need to be upgraded.
  47. Fix Summary:   Oracle Application Express can be manually upgraded prior to database upgrade.
  48. **********************************************************************
  49. Fixup Returned Information:
  50. INFORMATION: --> Oracle Application Express (APEX) can be
  51.      manually upgraded prior to database upgrade
  52.      APEX is currently at version 3.2.1.00.10 and will need to be
  53.      upgraded to APEX version 4.2.5 in the new release.
  54.      Note 1: To reduce database upgrade time, APEX can be manually
  55.              upgraded outside of and prior to database upgrade.
  56.      Note 2: See MOS Note 1088970.1 for information on APEX
  57.              installation upgrades.
  58. **********************************************************************
  59. **********************************************************************
  60.                       [Pre-Upgrade Recommendations]
  61. **********************************************************************
  62.                         *****************************************
  63.                         ********* Dictionary Statistics *********
  64.                         *****************************************
  65. Please gather dictionary statistics 24 hours prior to
  66. upgrading the database.
  67. To gather dictionary statistics execute the following command
  68. while connected as SYSDBA:
  69.     EXECUTE dbms_stats.gather_dictionary_stats;
  70. ^^^ MANUAL ACTION SUGGESTED ^^^
  71.            **************************************************
  72.                 ************* Fixup Summary ************
  73. 1 fixup routine was successful.
  74. 3 fixup routines returned INFORMATIONAL text that should be reviewed.
  75. **************** Pre-Upgrade Fixup Script Complete *********************
复制代码
  1. 1 SQL> EXECUTE dbms_stats.gather_dictionary_stats;
复制代码
4.4、关闭数据库实例
  1. 1 [oracle@orasrv admin]$ vim /etc/oratab
复制代码
4.5、使用12c启动数据库,进入升级模式
  1. rcat:/u01/app/oracle/product/12.1.0/dbhome_1:Y
复制代码
以上提示说明需要参数文件initrcat.ora,我们将11g数据库的参数文件复制到12c的相应目录
  1. 1 SQL> shutdown immediate<br>
复制代码
再次启动
  1. 1 SQL*Plus: Release 12.1.0.2.0 Production on Thu Sep 14 16:36:59 2023
  2. 2
  3. 3 Copyright (c) 1982, 2014, Oracle.  All rights reserved.
  4. 4
  5. 5 SQL> conn / as sysdba
  6. 6 Connected to an idle instance.
  7. 7 SQL> startup upgrade
  8. 8 ORA-01078: failure in processing system parameters
  9. 9 LRM-00109: could not open parameter file '/u01/app/oracle/product/12.1.0/dbhome_1/dbs/initrcat.ora'
复制代码
4.6、执行并行升级实用程序
  1. 1 [oracle@orasrv ~]$ cp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfilercat.ora /u01/app/oracle/product/12.1.0/dbhome_1/dbs/
复制代码
  1. 1 SQL> startup upgrade<br>
复制代码
在12c中,使用升级脚本catctl.pl代替了catupgrd.sql,升级脚本的执行方式也发生了变化。根据以上提示可知,在Linux环境下需按以下方式执行: 
  1. 1 SQL> @/u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin/catupgrd.sql
复制代码
 -n后参数2代表并行度为2,可按CPU核数进行设置。接下来就进入到漫长的升级过程: 
  1. DOC>######################################################################
  2. DOC>######################################################################
  3. DOC>                                 NOTE
  4. DOC>
  5. DOC>    The catupgrd.sql is being deprecated in the 12.1 release of the
  6. DOC>    Oracle Database.  Customers are encouraged to use catctl.pl as
  7. DOC>    the replacement for catupgrd.sql when upgrading the database dictionary.
  8. DOC>
  9. DOC>                    cd $ORACLE_HOME/rdbms/admin
  10. DOC>                    $ORACLE_HOME/perl/bin/perl catctl.pl -n 4 catupgrd.sql
  11. DOC>
  12. DOC>    Refer to the Oracle Database Upgrade Guide for more information.
  13. DOC>
  14. DOC>    This database upgrade procedure must be called with the following
  15. DOC>    argument when invoking from the SQL prompt:
  16. DOC>
  17. DOC>                    @catupgrd.sql PARALLEL=NO
  18. DOC>
  19. DOC>######################################################################
  20. DOC>######################################################################
  21. DOC>#
  22. old   2: WHERE  UPPER('&&1') = 'PARALLEL=NO' OR
  23. new   2: WHERE  UPPER('') = 'PARALLEL=NO' OR
  24. old   3:        UPPER('&&1') = 'PARALLEL=YES'
  25. new   3:        UPPER('') = 'PARALLEL=YES'
  26. SELECT (to_number(count(*)))/(to_number(count(*))) FROM DUAL
  27.                             *
  28. ERROR at line 1:
  29. ORA-01476: divisor is equal to zero<br>
  30. Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
  31. With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
复制代码
升级完成后,数据库实例自动关闭,需要重新启动数据库到open状态
  1. [oracle@orasrv ~]$ cd $ORACLE_HOME/rdbms/admin
  2. [oracle@orasrv admin]$ $ORACLE_HOME/perl/bin/perl catctl.pl -n 2 catupgrd.sql
复制代码
继续执行4.2.3所述升级后修复脚本
  1. Argument list for [catctl.pl]
  2. SQL Process Count     n = 2
  3. SQL PDB Process Count N = 0
  4. Input Directory       d = 0
  5. Phase Logging Table   t = 0
  6. Log Dir               l = 0
  7. Script                s = 0
  8. Serial Run            S = 0
  9. Upgrade Mode active   M = 0
  10. Start Phase           p = 0
  11. End Phase             P = 0
  12. Log Id                i = 0
  13. Run in                c = 0
  14. Do not run in         C = 0
  15. Echo OFF              e = 1
  16. No Post Upgrade       x = 0
  17. Reverse Order         r = 0
  18. Open Mode Normal      o = 0
  19. Debug catcon.pm       z = 0
  20. Debug catctl.pl       Z = 0
  21. Display Phases        y = 0
  22. Child Process         I = 0
  23. catctl.pl version: 12.1.0.2.0
  24. Oracle Base           = /u01/app/oracle
  25. Analyzing file catupgrd.sql
  26. Log files in /u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin
  27. catcon: ALL catcon-related output will be written to catupgrd_catcon_4741.lst
  28. catcon: See catupgrd*.log files for output generated by scripts
  29. catcon: See catupgrd_*.lst files for spool files, if any
  30. Number of Cpus        = 2
  31. SQL Process Count     = 2
  32. ------------------------------------------------------
  33. Phases [0-73]
  34. Serial   Phase #: 0 Files: 1     Time: 99s   
  35. Serial   Phase #: 1 Files: 5     Time: 23s   
  36. Restart  Phase #: 2 Files: 1     Time: 0s   
  37. Parallel Phase #: 3 Files: 18    Time: 27s   
  38. Restart  Phase #: 4 Files: 1     Time: 0s   
  39. Serial   Phase #: 5 Files: 5     Time: 32s   
  40. Serial   Phase #: 6 Files: 1     Time: 26s   
  41. Serial   Phase #: 7 Files: 4     Time: 5s   
  42. Restart  Phase #: 8 Files: 1     Time: 0s   
  43. Parallel Phase #: 9 Files: 62    Time: 63s   
  44. Restart  Phase #:10 Files: 1     Time: 0s   
  45. Serial   Phase #:11 Files: 1     Time: 43s   
  46. Restart  Phase #:12 Files: 1     Time: 0s   
  47. Parallel Phase #:13 Files: 91    Time: 49s   
  48. Restart  Phase #:14 Files: 1     Time: 0s   
  49. Parallel Phase #:15 Files: 111   Time: 64s   
  50. Restart  Phase #:16 Files: 1     Time: 0s   
  51. Serial   Phase #:17 Files: 3     Time: 40s   
  52. Restart  Phase #:18 Files: 1     Time: 0s   
  53. Parallel Phase #:19 Files: 32    Time: 56s   
  54. Restart  Phase #:20 Files: 1     Time: 0s   
  55. Serial   Phase #:21 Files: 3     Time: 43s   
  56. Restart  Phase #:22 Files: 1     Time: 0s   
  57. Parallel Phase #:23 Files: 23    Time: 105s  
  58. Restart  Phase #:24 Files: 1     Time: 0s   
  59. Parallel Phase #:25 Files: 11    Time: 71s   
  60. Restart  Phase #:26 Files: 1     Time: 0s   
  61. Serial   Phase #:27 Files: 1     Time: 20s   
  62. Restart  Phase #:28 Files: 1     Time: 0s   
  63. Serial   Phase #:30 Files: 1     Time: 0s   
  64. Serial   Phase #:31 Files: 257   Time: 51s   
  65. Serial   Phase #:32 Files: 1     Time: 0s   
  66. Restart  Phase #:33 Files: 1     Time: 0s   
  67. Serial   Phase #:34 Files: 1     Time: 43s   
  68. Restart  Phase #:35 Files: 1     Time: 0s   
  69. Restart  Phase #:36 Files: 1     Time: 17s   
  70. Serial   Phase #:37 Files: 4     Time: 74s   
  71. Restart  Phase #:38 Files: 1     Time: 0s   
  72. Parallel Phase #:39 Files: 13    Time: 55s   
  73. Restart  Phase #:40 Files: 1     Time: 0s   
  74. Parallel Phase #:41 Files: 10    Time: 46s   
  75. Restart  Phase #:42 Files: 1     Time: 0s   
  76. Serial   Phase #:43 Files: 1     Time: 44s   
  77. Restart  Phase #:44 Files: 1     Time: 0s   
  78. Serial   Phase #:45 Files: 1     Time: 38s   
  79. Serial   Phase #:46 Files: 1     Time: 0s   
  80. Restart  Phase #:47 Files: 1     Time: 0s   
  81. Serial   Phase #:48 Files: 1     Time: 115s  
  82. Restart  Phase #:49 Files: 1     Time: 0s   
  83. Serial   Phase #:50 Files: 1     Time: 69s   
  84. Restart  Phase #:51 Files: 1     Time: 0s   
  85. Serial   Phase #:52 Files: 1     Time: 51s   
  86. Restart  Phase #:53 Files: 1     Time: 0s   
  87. Serial   Phase #:54 Files: 1     Time: 147s  
  88. Restart  Phase #:55 Files: 1     Time: 0s   
  89. Serial   Phase #:56 Files: 1     Time: 81s   
  90. Restart  Phase #:57 Files: 1     Time: 0s   
  91. Serial   Phase #:58 Files: 1     Time: 124s  
  92. Restart  Phase #:59 Files: 1     Time: 0s   
  93. Serial   Phase #:60 Files: 1     Time: 200s  
  94. Restart  Phase #:61 Files: 1     Time: 0s   
  95. Serial   Phase #:62 Files: 1     Time: 1016s
  96. Restart  Phase #:63 Files: 1     Time: 0s   
  97. Serial   Phase #:64 Files: 1     Time: 32s   
  98. Serial   Phase #:65 Files: 1 Calling sqlpatch with LD_LIBRARY_PATH=/u01/app/oracle/product/12.1.0/dbhome_1/lib; export LD_LIBRARY_PATH;/u01/app/oracle/product/12.1.0/dbhome_1/perl/bin/perl -I /u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin -I /u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin/../../sqlpatch /u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin/../../sqlpatch/sqlpatch.pl -verbose -upgrade_mode_only > catupgrd_datapatch_upgrade.log 2> catupgrd_datapatch_upgrade.err
  99. returned from sqlpatch
  100.     Time: 75s   
  101. Serial   Phase #:66 Files: 1     Time: 36s   
  102. Serial   Phase #:68 Files: 1     Time: 0s   
  103. Serial   Phase #:69 Files: 1 Calling sqlpatch with LD_LIBRARY_PATH=/u01/app/oracle/product/12.1.0/dbhome_1/lib; export LD_LIBRARY_PATH;/u01/app/oracle/product/12.1.0/dbhome_1/perl/bin/perl -I /u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin -I /u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin/../../sqlpatch /u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin/../../sqlpatch/sqlpatch.pl -verbose > catupgrd_datapatch_normal.log 2> catupgrd_datapatch_normal.err
  104. returned from sqlpatch
  105.     Time: 259s  
  106. Serial   Phase #:70 Files: 1     Time: 149s  
  107. Serial   Phase #:71 Files: 1     Time: 0s   
  108. Serial   Phase #:72 Files: 1     Time: 0s   
  109. Serial   Phase #:73 Files: 1     Time: 90s   
  110. Grand Total Time: 3586s
  111. LOG FILES: (catupgrd*.log)
  112. Upgrade Summary Report Located in:
  113. /u01/app/oracle/product/12.1.0/dbhome_1/cfgtoollogs/rcat/upgrade/upg_summary.log
  114. Grand Total Upgrade Time:    [0d:0h:59m:46s]
复制代码
  1. SQL> startup<br>
复制代码
提出的建议如下:

  • 使用旧的Timezone文件版本,数据库升级完成后进行Timezone版本升级。
  • 确认没有升级的现有组件,忽略。
  • 在数据库升级后的两周内运行EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;收集对象的统计信息。
  1. 1 SQL> @/u01/app/oracle/cfgtoollogs/rcat/preupgrade/postupgrade_fixups.sql 
复制代码
4.7、执行Post-Upgrade Status Tool

升级完成后可以执行Post-Upgrade Status Tool($ORACLE_HOME/rdbms/admin/utlu121s.sql),查看升级的概况信息。
  1. Post Upgrade Fixup Script Generated on 2023-09-14 15:51:38  Version: 12.1.0.2 Build: 006
  2. Beginning Post-Upgrade Fixups...
  3. **********************************************************************
  4. Check Tag:     OLD_TIME_ZONES_EXIST
  5. Check Summary: Check for use of older timezone data file
  6. Fix Summary:   Update the timezone using the DBMS_DST package after upgrade is complete.
  7. **********************************************************************
  8. Fixup Returned Information:
  9. INFORMATION: --> Older Timezone in use
  10.      Database is using a time zone file older than version 18.
  11.      After the upgrade, it is recommended that DBMS_DST package
  12.      be used to upgrade the 12.1.0.2.0 database time zone version
  13.      to the latest version which comes with the new release.
  14.      Please refer to My Oracle Support note number 977512.1 for details.
  15. **********************************************************************
  16. **********************************************************************
  17. Check Tag:     NOT_UPG_BY_STD_UPGRD
  18. Check Summary: Identify existing components that will NOT be upgraded
  19. Fix Summary:   This fixup does not perform any action.
  20. **********************************************************************
  21. Fixup Returned Information:
  22. This fixup does not perform any action.  
  23. If you want to upgrade those other components, you must do so manually.
  24. **********************************************************************
  25. **********************************************************************
  26.                      [Post-Upgrade Recommendations]
  27. **********************************************************************
  28.                         *****************************************
  29.                         ******** Fixed Object Statistics ********
  30.                         *****************************************
  31. Please create stats on fixed objects two weeks
  32. after the upgrade using the command:
  33.    EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
  34. ^^^ MANUAL ACTION SUGGESTED ^^^
  35.            **************************************************
  36.                 ************* Fixup Summary ************
  37. 2 fixup routines generated INFORMATIONAL messages that should be reviewed.
  38. *************** Post Upgrade Fixup Script Complete ********************
  39. PL/SQL procedure successfully completed.
复制代码
  1. 1 SQL> EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
复制代码
除了OLAP Catalog组件外,其它组件都升级到希望的版本。
因不再被12c支持,可以移除OLAP Catalog组件。
  1. 1 SQL> @?/rdbms/admin/utlu121s.sql
复制代码
4.8、执行附加脚本

执行catuppst.sql脚本完成接下来的升级操作,它不要求数据库处于升级模式。
  1. Oracle Database 12.1 Post-Upgrade Status Tool           09-15-2023 10:47:44
  2. Component                               Current         Version  Elapsed Time
  3. Name                                    Status          Number   HH:MM:SS
  4. Oracle Server                          UPGRADED      12.1.0.2.0  00:18:54
  5. JServer JAVA Virtual Machine              VALID      12.1.0.2.0  00:01:34
  6. Oracle Workspace Manager                  VALID      12.1.0.2.0  00:00:52
  7. OLAP Analytic Workspace                   VALID      12.1.0.2.0  00:00:30
  8. OLAP Catalog                         OPTION OFF      11.2.0.3.0  00:00:00
  9. Oracle OLAP API                           VALID      12.1.0.2.0  00:00:11
  10. Oracle XDK                                VALID      12.1.0.2.0  00:00:48
  11. Oracle Text                               VALID      12.1.0.2.0  00:00:54
  12. Oracle XML Database                       VALID      12.1.0.2.0  00:01:12
  13. Oracle Database Java Packages             VALID      12.1.0.2.0  00:00:08
  14. Oracle Multimedia                         VALID      12.1.0.2.0  00:01:45
  15. Spatial                                UPGRADED      12.1.0.2.0  00:03:02
  16. Oracle Application Express                VALID     4.2.5.00.08  00:15:53
  17. Final Actions                                                    00:01:56
  18. Post Upgrade                                                     00:02:20<br>
复制代码
执行utlrp.sql脚本重新编译PL/SQL和Java代码。
  1. 1 SQL> @?/olap/admin/catnoamd.sql
复制代码
等待执行完成。
4.9、完成升级阶段

4.9.1、检查环境变量


  • ORACLE_BASE
  • ORACLE_HOME
  • PATH,LD_LIBRARY_PATH and SHLIB_PATH
  • 更新oratab文件
4.9.2、检查初始化参数文件

确认初始化参数修改正确。
4.9.3、检查口令文件

可以使用orapwd命令重建口令文件。
4.9.4、COMPATIBLE参数

COMPATIBLE参数控制数据库兼容性级别,如果数据库不会再降级到以前的版本,可以设置此参数。
  1. 1 SQL> @?/rdbms/admin/catuppst.sql
复制代码
重启数据库实例。
4.9.5、升级TIMEZONE文件版本

 查看数据库当前timezone 版本:
  1. 1 SQL> @?/rdbms/admin/utlrp.sql
复制代码
  1. 1 SQL> alter system set compatible='12.1.0.2.0' scope=spfile;<br>
复制代码
注意:11.2.0.1.0的timezone最高支持到11,在12.1.0.2中最高支持到18。
准备升级timezone到18
  1. 1 SQL> SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value <br> 2    FROM DATABASE_PROPERTIES
  2. 3      WHERE PROPERTY_NAME LIKE 'DST_%'
  3. 4      ORDER BY PROPERTY_NAME;
  4. 5 PROPERTY_NAME           VALUE
  5. 6 ---------------------------  ---------------------------
  6. 7 DST_PRIMARY_TT_VERSION     11 <br> 8 DST_SECONDARY_TT_VERSION    0
  7. 9 DST_UPGRADE_STATE        NONE<br><br>
复制代码
 查看升级准备信息
  1. 1 SQL> SELECT version FROM v$timezone_file;
  2. 2
  3. 3    VERSION
  4. 4 ----------
  5. 5         11
复制代码
准备升级工作
  1. 1 SQL> set serveroutput on
  2. 2 SQL> exec DBMS_DST.BEGIN_PREPARE(18);
复制代码
结束升级准备
  1. 1 SQL> SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value
  2. 2   2  FROM DATABASE_PROPERTIES
  3. 3   3  WHERE PROPERTY_NAME LIKE 'DST_%'
  4. 4   4  ORDER BY PROPERTY_NAME;
  5. 5
  6. 6 PROPERTY_NAME            VALUE
  7. 7 -----------------------------  --------------------------
  8. 8 DST_PRIMARY_TT_VERSION         11
  9. 9 DST_SECONDARY_TT_VERSION        18
  10. 10 DST_UPGRADE_STATE           PREPARE<br>
复制代码
升级过程
  1. 1 SQL> BEGIN
  2. 2   2    DBMS_DST.FIND_AFFECTED_TABLES
  3. 3   3    (affected_tables => 'sys.dst$affected_tables',
  4. 4   4    log_errors => TRUE,
  5. 5   5    log_errors_table => 'sys.dst$error_table');
  6. 6   6    END;
  7. 7   7  /
  8. 8
  9. 9 PL/SQL procedure successfully completed.
  10. 10
  11. 11 SQL> TRUNCATE TABLE SYS.DST$TRIGGER_TABLE;
  12. 12
  13. 13 Table truncated.
  14. 14
  15. 15 SQL> TRUNCATE TABLE sys.dst$affected_tables;
  16. 16
  17. 17 Table truncated.
  18. 18
  19. 19 SQL> TRUNCATE TABLE sys.dst$error_table;
  20. 20
  21. 21 Table truncated.
复制代码
  1. 1 SQL> EXEC DBMS_DST.END_PREPARE;
  2. 2
  3. 3 PL/SQL procedure successfully completed.
复制代码
确认升级成功
  1. 1 SQL> shutdown immediate;
  2. 2 Database closed.
  3. 3 Database dismounted.
  4. 4 ORACLE instance shut down.
  5. 5
  6. 6 SQL> startup upgrade;
  7. 7 ORACLE instance started.
  8. 8
  9. 9 Total System Global Area 1610612736 bytes
  10. 10 Fixed Size                  2924928 bytes
  11. 11 Variable Size             671092352 bytes
  12. 12 Database Buffers          922746880 bytes
  13. 13 Redo Buffers               13848576 bytes
  14. 14 Database mounted.
  15. 15 Database opened.
  16. 16
  17. 17 SQL> set serveroutput on
  18. 18 SQL> purge dba_recyclebin;
  19. 19
  20. 20 DBA Recyclebin purged.
  21. 21
  22. 22 SQL> alter session set "_with_subquery"=materialize;
  23. 23
  24. 24 Session altered.
  25. 25
  26. 26 SQL> EXEC DBMS_DST.BEGIN_UPGRADE(18);      
  27. 27 An upgrade window has been successfully started.
  28. 28
  29. 29 PL/SQL procedure successfully completed.
  30. 30
  31. 31 SQL> SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value
  32. 32   2  FROM DATABASE_PROPERTIES
  33. 33   3  WHERE PROPERTY_NAME LIKE 'DST_%'
  34. 34   4  ORDER BY PROPERTY_NAME;
  35. 35
  36. 36 PROPERTY_NAME                               VALUE
  37. 37 --------------------------------------    --------------------------------------
  38. 38 DST_PRIMARY_TT_VERSION                    18
  39. 39 DST_SECONDARY_TT_VERSION                 11
  40. 40 DST_UPGRADE_STATE                          UPGRADE
复制代码
  1. 1 SQL> shutdown immediate;
  2. 2 Database closed.
  3. 3 Database dismounted.
  4. 4 ORACLE instance shut down.
  5. 5 SQL>         
  6. 6 SQL> startup
  7. 7 ORACLE instance started.
  8. 8
  9. 9 Total System Global Area 1610612736 bytes
  10. 10 Fixed Size                  2924928 bytes
  11. 11 Variable Size             671092352 bytes
  12. 12 Database Buffers          922746880 bytes
  13. 13 Redo Buffers               13848576 bytes
  14. 14 Database mounted.
  15. 15 Database opened.
  16. 16 SQL> alter session set "_with_subquery"=materialize;
  17. 17
  18. 18 Session altered.
  19. 19 执行timezone升级过程:
  20. 20 SQL> set serveroutput on
  21. 21 SQL> VAR numfail number
  22. 22 SQL> BEGIN
  23. 23   2      DBMS_DST.UPGRADE_DATABASE(:numfail,
  24. 24   3      parallel => TRUE,
  25. 25   4      log_errors => TRUE,
  26. 26   5      log_errors_table => 'SYS.DST$ERROR_TABLE',
  27. 27   6      log_triggers_table => 'SYS.DST$TRIGGER_TABLE',
  28. 28   7      error_on_overlap_time => FALSE,
  29. 29   8      error_on_nonexisting_time => FALSE);
  30. 30   9      DBMS_OUTPUT.PUT_LINE('Failures:'|| :numfail);
  31. 31  10     END;
  32. 32  11     /
  33. 33 Table list: "IX"."AQ$_STREAMS_QUEUE_TABLE_S"
  34. 34 Number of failures: 0
  35. 35 Table list: "IX"."AQ$_STREAMS_QUEUE_TABLE_L"
  36. 36 Number of failures: 0
  37. 37 Table list: "IX"."AQ$_ORDERS_QUEUETABLE_S"
  38. 38 Number of failures: 0
  39. 39 Table list: "IX"."AQ$_ORDERS_QUEUETABLE_L"
  40. 40 Number of failures: 0
  41. 41 Table list: "GSMADMIN_INTERNAL"."AQ$_CHANGE_LOG_QUEUE_TABLE_S"
  42. 42 Number of failures: 0
  43. 43 Table list: "GSMADMIN_INTERNAL"."AQ$_CHANGE_LOG_QUEUE_TABLE_L"
  44. 44 Number of failures: 0
  45. 45 Table list: "APEX_040200"."WWV_FLOW_WORKSHEET_NOTIFY"
  46. 46 Number of failures: 0
  47. 47 Table list: "APEX_040200"."WWV_FLOW_FEEDBACK_FOLLOWUP"
  48. 48 Number of failures: 0
  49. 49 Table list: "APEX_040200"."WWV_FLOW_FEEDBACK"
  50. 50 Number of failures: 0
  51. 51 Table list: "APEX_040200"."WWV_FLOW_DEBUG_MESSAGES2"
  52. 52 Number of failures: 0
  53. 53 Table list: "APEX_040200"."WWV_FLOW_DEBUG_MESSAGES"
  54. 54 Number of failures: 0
  55. 55 Failures:0
  56. 56
  57. 57 PL/SQL procedure successfully completed.
  58. 58 结束升级,校验升级信息:
  59. 59 SQL> VAR fail number
  60. 60 SQL> BEGIN
  61. 61   2    DBMS_DST.END_UPGRADE(:fail);
  62. 62   3    DBMS_OUTPUT.PUT_LINE('Failures:'|| :fail);
  63. 63   4    END;
  64. 64   5    /
  65. 65 An upgrade window has been successfully ended.
  66. 66 Failures:0
  67. 67
  68. 68 PL/SQL procedure successfully completed.
复制代码
 4.9.6、升级RMAN Recovery Catalog

如果当前库上有RMAN Catalog,可以使用UPGRADE CATALOG进行升级。
参考:https://docs.oracle.com/database/121/BRADV/rcmcatdb.htm#BRADV188
4.9.7、为Oracle XML DB配置FTP和HTTP端口以及HTTP身份验证

Oracle Database 12c DBCA不为Oracle XML DB配置端口,因此您必须手动配置它们。您还应该为HTTP配置摘要身份验证,以利用改进的安全功能。
4.9.8、启用Database Vault

Register Database Vault by using the DVSYS.DBMS_MACADM.ENABLE_DV procedure.

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莱莱

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表