首页 > 数据库技术 > 详细

探索Oracle之数据库升级八 12c Downgrade 11gR2

时间:2014-12-23 02:29:41      阅读:350      评论:0      收藏:0      [点我收藏+]

探索Oracle之数据库升级八
12c Downgrade 11gR2

前言:

       我们前面已经完成了11gR2 upgrade to 12c 的升级,整个过程还是比较顺利的,虽然和以前版本升级有些不太一样,但是整个难度不是太大,但是由于太多的特性不同,大大的加长了升级的时间。

       但是对于Oracle 12c降回到之前版本,会有些限制,只能降级到升级前所用的版本和补丁级别。

       如果我们是直接从10.2.0.511.1.0.7或版本11.2.0.2及更高版进行升级。那么将无法降级到10.2.0.5

       如果通过应用中间补丁程序11.1.0.7 Oracle 11.1.0.6升级到Oracle 12c12.1.0),则不能降级到Oracle 11.1.0.6。降级只能对直接执行升级版本执行。

例外:

虽然可以对 10.2.0.5 直接升级,但降级不适用于 10.2.0.5

这是因为在升级过程中,compatible 参数已设置为最低 11.0.0。这使得无法降级到 10.2.0.5。可以降级的版本为 11.1.0.711.2.0.211.2.0.3 或更高版本。

如果有任何补丁程序应用到了从升级后的主目录运行的源数据库,则需要先回退,然后才能开始降级过程。

卸载和回退补丁程序的步骤记录在所涉及补丁程序的自述文件中。

未能卸载和回退补丁程序可能会导致无法降级,包括无法重新验证字典对象。

Exadata 捆绑补丁程序示例,其过程为:

卸载补丁程序

       示例:  $ opatch auto /u01/app/oracle/patches/14103267 -rollback 

回退任何在补丁程序应用过程中应用的 SQL     

       示例: SQL> @rdbms/admin/catbundle_EXA_<数据库 SID>_ROLLBACK.sql,用于回退 SQL 更改。
一、开始执行降级前的检查操作
        升级前确保所有组件状态正常,且没有无效组件

  1. ###检查各组件状态
  2. SQL> select substr(comp_id,1,15) comp_id,substr(comp_name,1,30) comp_name,substr(version,1,10) version,status from dba_registry;

  3. COMP_ID COMP_NAME VERSION STATUS
  4. ---------- ------------------------------ ---------- --------
  5. DV Oracle Database Vault 12.1.0.1.0 VALID
  6. APEX Oracle Application Express 4.2.0.00.2 VALID
  7. OLS Oracle Label Security 12.1.0.1.0 VALID
  8. SDO Spatial 12.1.0.1.0 VALID
  9. ORDIM Oracle Multimedia 12.1.0.1.0 VALID
  10. CONTEXT Oracle Text 12.1.0.1.0 VALID
  11. OWM Oracle Workspace Manager 12.1.0.1.0 VALID
  12. XDB Oracle XML Database 12.1.0.1.0 VALID
  13. CATALOG Oracle Database Catalog Views 12.1.0.1.0 VALID
  14. CATPROC Oracle Database Packages and T 12.1.0.1.0 VALID
  15. JAVAVM JServer JAVA Virtual Machine 12.1.0.1.0 VALID

  16. COMP_ID COMP_NAME VERSION STATUS
  17. ---------- ------------------------------ ---------- --------
  18. XML Oracle XDK 12.1.0.1.0 VALID
  19. CATJAVA Oracle Database Java Packages 12.1.0.1.0 VALID
  20. APS OLAP Analytic Workspace 12.1.0.1.0 VALID
  21. XOQ Oracle OLAP API 12.1.0.1.0 VALID
  22. RAC Oracle Real Application Cluste 12.1.0.1.0 OPTION O
  23.                                                      FF
  24. 16 rows selected.

  25. #####检查无效组件
  26. SQL> select owner, count(object_name) \"Invalid object count\" from dba_objects where status!=\‘VALID\‘ and owner in (\‘SYS\‘,\‘SYSTEM\‘) group by owner;

  27. no rows selected

  28. SQL>
二、开始执行降级操作
  1. ###2.1 关闭数据库
  2. SQL> shutdown immediate
  3. Database closed.
  4. Database dismounted.
  5. ORACLE instance shut down.

  6. ###2.1 将数据库启动到downgrade模式
  7. SQL> startup downgrade;
  8. ORACLE instance started.

  9. Total System Global Area 5027385344 bytes
  10. Fixed Size 2298736 bytes
  11. Variable Size 1040190608 bytes
  12. Database Buffers 3976200192 bytes
  13. Redo Buffers 8695808 bytes
  14. Database mounted.
  15. Database opened.
  16. SQL>

  17. ###2.2 运行降级脚本
  18. SQL> spool downgrade_12c_to_11g.log
  19. SQL> @$ORACLE_HOME/rdbms/admin/catdwgrd.sql
  20. ………
  21. PL/SQL procedure successfully completed.

  22. SQL>
  23. SQL> -- lrg 7259350: objects created in this script need their flags that won\‘t fit
  24. SQL> -- in a ub2 cleared
  25. SQL> update obj$mig set flags=bitand(flags,65535) where flags>65535;

  26. 222 rows updated.

  27. SQL>
  28. SQL> /*****************************************************************************/
  29. SQL> /* Step 9 - Swap bootstrap$mig with bootstrap$
  30. SQL> */
  31. SQL> /*****************************************************************************/
  32. SQL> /* According to JKLEIN, performing 3 count(*) will ensure there are
  33. SQL> no dirty itl\‘s present in bootstrap$. */
  34. SQL> select count(*) from bootstrap$;

  35.   COUNT(*)
  36. ----------
  37.         60

  38. 1 row selected.

  39. SQL> select count(*) from bootstrap$;

  40.   COUNT(*)
  41. ----------
  42.         60

  43. 1 row selected.

  44. SQL> select count(*) from bootstrap$;

  45.   COUNT(*)
  46. ----------
  47.         60

  48. 1 row selected.

  49. SQL> select count(*) from bootstrap$mig;

  50.   COUNT(*)
  51. ----------
  52.         60

  53. 1 row selected.

  54. SQL> select count(*) from bootstrap$mig;

  55.   COUNT(*)
  56. ----------
  57.         60

  58. 1 row selected.

  59. SQL> select count(*) from bootstrap$mig;

  60.   COUNT(*)
  61. ----------
  62.         60

  63. 1 row selected.

  64. SQL>
  65. SQL> WHENEVER SQLERROR CONTINUE
  66. SQL>
  67. SQL> begin
  68.   2
  69.   3 -- Now we can do the swap.
  70.   4 declare
  71.   5 procedure swap_bootstrap(replacement_tbl_name IN VARCHAR2)
  72.   6 is language c library DBMS_DDL_INTERNAL_LIB
  73.   7 name \"swap_bootstrap\"
  74.   8 with context
  75.   9 parameters(context, replacement_tbl_name String,
  76.  10 replacement_tbl_name LENGTH ub2,
  77.  11 replacement_tbl_name INDICATOR sb2);
  78.  12 begin
  79.  13 swap_bootstrap(\‘BOOTSTRAP$MIG\‘);
  80.  14 end;
  81.  15
  82.  16 -- We\‘ve completed the swap.
  83.  17 -- Remove the BOOTSTRAP_DOWNGRADE_ERROR entry in props$.
  84.  18 delete from props$ where name = \‘BOOTSTRAP_DOWNGRADE_ERROR\‘;
  85.  19 commit;
  86.  20 end;
  87.  21 /

  88. PL/SQL procedure successfully completed.

  89. SQL>
  90. SQL> Rem ***********************************************************************
  91. SQL> Rem END catdwgrd.sql
  92. SQL> Rem ***********************************************************************
  93. SQL>
  94. SQL>
  95. SQL> shutdown immediate
  96. Database closed.
  97. Database dismounted.
  98. ORACLE instance shut down.
  99. SQL> exit
  100. Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
  101. With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
  102. [oracle@woo ~]
三、修改/etc/oratab 为Oracle 12gR2 HOME目录
  1. [root@woo ~]# vi /etc/oratab
  2. woo:/DBSoft/oracle/product/11.2.4/dbhome_1
四、修改系统环境变量
  1. [root@woo oracle]# vi ~/.bash_profile
  2. [oracle@woo ~]$ echo $ORACLE_HOME
  3. /DBSoft/oracle/product/11.2.4/dbhome_1
五、重新登陆并open 11gR2 数据库

  1. [oracle@woo ~]$ sqlplus / as sysdba

  2. SQL*Plus: Release 11.2.0.4.0 Production on Sun Dec 21 22:13:32 2014

  3. Copyright (c) 1982, 2013, Oracle. All rights reserved.

  4. Connected to an idle instance.

  5. SQL> startup
  6. ORACLE instance started.

  7. Total System Global Area 5027385344 bytes
  8. Fixed Size 2261888 bytes
  9. Variable Size 1107299456 bytes
  10. Database Buffers 3909091328 bytes
  11. Redo Buffers 8732672 bytes
  12. Database mounted.
  13. ORA-01092: ORACLE instance terminated. Disconnection forced
  14. ORA-00704: bootstrap process failure
  15. ORA-39700: database must be opened with UPGRADE option
  16. Process ID: 7028
  17. Session ID: 580 Serial number: 5


  18. SQL>


         
  


                                                         
                        



探索Oracle之数据库升级八 12c Downgrade 11gR2

原文:http://blog.itpub.net/20674423/viewspace-1375350/

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!