当前位置:  数据库>oracle

Oracle数据库如何从11.2 降级至之前的版本

    来源: 互联网  发布时间:2017-06-10

    本文导语: 本文档可用作将之前升级的数据库从 Oracle 11gR2 降回至下列以前版本数据库的指南与核对表:Oracle 10gR1、Oracle 10gR2、Oracle 11gR1。该文档内容也适用于从 11.2.0.4 降级至 11.2.0.1 需要特别注意的是,在将数据库实例从当前版本降级至...

本文档可用作将之前升级的数据库从 Oracle 11gR2 降回至下列以前版本数据库的指南与核对表:Oracle 10gR1、Oracle 10gR2、Oracle 11gR1。该文档内容也适用于从 11.2.0.4 降级至 11.2.0.1

需要特别注意的是,在将数据库实例从当前版本降级至升级前版本时,数据库不会返回至与其升级前相同的状态。升级过程会导致一些不可逆的更改,具体取决于涉及的版本。降级过程允许用户在之前版本中打开并访问数据库实例。这通常就足够了。

此外,在降级后可能需要采取一些更正操作(如卸载/重新安装,或重新升级至当前修补程序集级别),以解决残留问题。

如果目标是将实例完全返回至其升级前的状态,那么将会用到包括恰好恢复至升级前状态在内的其他流程。

本文章中讨论的过程是基于脚本的降级。本文章并未讨论如何使用导入/导出、数据泵或其他方法将数据从一个版本移至另一个版本。

开始降级过程之前,在服务器上应该有或已安装要降至版本的 Oracle 二进制文件。如果已卸载了希望降至版本的 Oracle 可执行文件,请将该 Oracle 二进制文件重新安装至正确的版本/修补程序级别,以便进行降级。

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

注意事项:

  • 该过程用于降级已成功升级至 11gR2 的数据库。此过程不能用于返回升级失败的数据库。
  • 您只能降级至从其进行升级的版本和修补程序级别。例如,如果是从 Oracle 10gR1 (10.1.0.5) 升级至 Oracle 11gR2 (11.2),则不能降级至 Oracle 10gR2 (10.2)。您只能降级至 Oracle 10gR1 (10.1.0.5)
  • 支持降级至 9iR2。这是因为在升级过程中,兼容参数设置为最低 10.1.0。这可以防止降级。
  • 如果原数据库打过patch, 您需要在降级之前把patch进行回滚。 卸载和回滚patch的步骤,您可以在patch的readme中找到。卸载和回滚patch失败会导致降级过程的失败及数据字典对象无法生效。
  • 示例:  对于 Exadata Bundle Patch,过程为:

    卸载 patch

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

    回滚SQL的变更    

                    示例:  SQL> @rdbms/admin/catbundle_EXA__ROLLBACK.sql  rollback SQL 变更.

     

    解决方案 降级前步骤:

    1: 验证所有组件和字典对象对于 11gR2 均有效并且版本正确。

    set pagesize500 
    set linesize 100 
           
    select substr(comp_name,1,40) comp_name, status, substr (version,1,10) version from dba_registry order by comp_name; 
           
    select substr(object_name,1,40) object_name,substr(owner,1,15) owner, object_type from  dba_objects where status='INVALID' order by owner,object_type; 
           
    select owner,object_type,count(*) from dba_objects where status='INVALID'  group by owner,object_type order by owner,object_type;

    如果任何组件或 Oracle 提供的对象无效,则需要运行 utlrp.sql 对其进行重新验证。该脚本可能需要运行多次以验证所有对象。

    $ cd $ORACLE_HOME/rdbms/admin 
    $ sqlplus "/ as sysdba" 
    SQL> @utlrp.sql

    当完成后,重新运行上述查询以验证所有无效对象现在都是有效的。

    2: 如果已在数据库上启用了 Oracle Database Vault,则必须:

    a: 授予 SYS 帐户 Database Vault DV_PATCH_ADMIN 角色。
    b: 降级数据库之前禁用 Database Vault。

    禁用 Oracle Database Vault 触发器:
          SQL> CONNECT DVSYS/DVSYS  
          SQL> ALTER TRIGGER DV_BEFORE_DDL_TRG DISABLE;  
          SQL> ALTER TRIGGER DV_AFTER_DDL_TRG DISABLE; 

    3: 如果设置了操作系统参数 ORA_TZFILE,请取消其设置。如果不取消设置 ORA_TZFILE 变量,连接至数据库时可能会生成以下错误:

    SP2-1503: Unable to initialize Oracle call interface 
    SP2-0152: ORACLE may not be functioning properly

    4: 如果在降级至之前的数据库版本之前,已运行 DBMS_DST 软件包将时区版本升级至新版本(例如在 11gR2 升级的升级后步骤期间升级至版本 11),那么必须将版本 11 时区文件安装到旧的 Oracle 数据库版本上的 $ORACLE_HOME/oracore/zoneinfo 目录中。

    5: 检查数据库的兼容性级别,以确定数据库是否可能具有防止降级的不兼容性。曾经设置过的 compatible 的最高值就是您能降级到的最低的那个版本。比如:

    如果数据库的兼容性级别已经是最新的了(比如11.2.0.4),则无法进行降级。

    如果数据库的兼容性级别曾经是 11.2.0 或更高,则无法将数据库降级到比 11.2.0.1 更低的版本 。
    如果要将数据库降级至 11gR1,COMPATIBLE 初始化参数必须从未比 11.1.0 更高。
    如果要将数据库降级至 10gR2,COMPATIBLE 初始化参数必须从未比 10.2.0 更高。
    如果要将数据库降级至 10gR1,COMPATIBLE 初始化参数必须从未比 10.1.0 更高。

    6: 如果数据库上安装有 Oracle Application Express,则必须将 apxrelod.sql 文件从 Oracle 11gR2 (11.2) ORACLE_HOME/apex/ 目录复制到 Oracle 主目录之外的某个目录,如系统上的临时目录。记下该文件的新位置。

    7: 在降级之前执行 11gR2 数据库的备份。

    数据库的降级步骤
    如果要从 11.2.0.4 降级至 11.2.0.2,使用 11.2.0.2 catrelod.sql 脚本会出现一个问题。
    针对版本 11.2.0.2 下载并应用修补程序 11811073,其提供了更新版本的 catrelod.sql。

    1: 以 Oracle Database 11g Release 2 (11.2) Oracle 主目录的所有者登录系统。

    2: 如果已针对数据库配置并运行了 Enterprise Manager Database Control,则按如下所示停止Database Control:

    a: 将 ORACLE_UNQNAME 环境变量设置为数据库唯一名称。
    b: 运行以下命令:RACLE_HOME/bin/emctl stop dbconsole

    3: 如果要降级的数据库是 Oracle Real Application Clusters (Oracle RAC) 数据库,则在所有实例上执行该步骤。

    a:  .如果要将 Oracle RAC 数据库降级至 10g Release 1 (10.1),必须在移除额外的表决磁盘之后才可以关闭 Oracle Clusterware 堆栈。
    如果要查看所用表决磁盘的数量并列出表盘路径,请运行以下命令:Oracle_Clusterware_Home/bin/crsctl query css votedisk 

    b:  通过运行以下命令移除找到的每一个额外表决磁盘,其中路径是在之前步骤中发现的表决磁盘路径:

    Oracle_Clusterware_Home/bin/crsctl delete css votedisk path

    注意:如果要降级群集数据库,需完全关闭实例并将 CLUSTER_DATABASE 初始化参数设置为 false。降级后,必须将该参数设置回 true。

    SET CLUSTER_DATABASE=FALSE

    注意升级后的步骤38

    4: 在系统提示符下,转至 ORACLE_HOME/rdbms/admin 目录。

    5: 启动 SQL*Plus 并以具有 SYSDBA 权限的用户身份连接至数据库实例。

    6: 如果该实例当前正在运行,则将其关闭。
        SQL> SHUTDOWN IMMEDIATE 

    7: 在 DOWNGRADE 模式下启动该实例。
        SQL> STARTUP DOWNGRADE 
    如果需要,请指定初始化参数文件的位置。

    8a: 如果升级前在数据库中配置了 Enterprise Manager 并备份了 Enterprise Manager Database Control Data,则:

    Drop the SYSMAN schema:  
    DROP USER sysman CASCADE; 

    注意:此步骤之后,MGMT* 同义词可能会无效。请按照“11.2 Upgrade Guide”中“Post-downgrade”部分描述的“Restoring Oracle Enterprise Manager”步骤(6 章第 9 页,Downgrading Oracle Database to an Earlier Release),恢复备份并验证同义词。

    8b: 如果升级前在数据库中配置了 Enterprise Manager 但未备份 Enterprise Manager Database Control Data,则:

    删除 Enterprise Manager 用户:
    @?/sysman/admin/emdrep/sql/core/latest/admin/admin_drop_users.sql SYSMAN
    删除信息库用户:
    DEFINE EM_REPOS_USER=SYSMAN @?/sysman/admin/emdrep/sql/core/latest/admin/admin_drop_repos_user.sql SYSMAN 
    删除角色和同义词:
    DEFINE EM_REPOS_USER=SYSMAN @?/sysman/admin/emdrep/sql/core/latest/admin/admin_drop_synonyms.sql 
    Drop the SYSMAN schema:  
    DROP USER sysman CASCADE; 

    注意:此步骤之后,Enterprise Manager 组件将从数据库实例中移除。Enterprise Manager 组件可以在降级后重新创建。有关更多信息,请参考

    9:  设置系统以将结果记录到日志文件,以备稍后的成功验证: 
        SQL> SPOOL downgrade.log 

    10: 运行 catdwgrd.sql:
        SQL> @catdwgrd.sql

    以下是运行该脚本的注意事项:
    该脚本会将数据库中的所有 Oracle Database 组件降级至最初从其升级上来的主版本或 Oracle Database 11g 修补程序版。

    如果在运行该脚本时或在其余步骤中的任何脚本中遇到任何问题,需找到问题原因并更正,然后重新运行该脚本。您可以根据需要多次重新运行本章中描述的任何脚本。

    如果某个组件的降级失败,将会显示 ORA-39709 错误,SQL*Plus 会话终止,Oracle Database 数据字典不降级。在降级 Oracle Database 数据字典之前,所有组件必须成功降级。必须要在重新运行 catdwgrd.sql 脚本之前识别并修正问题。 

    更多详情见请继续阅读下一页的精彩内容:


        
     
     

    您可能感兴趣的文章:

  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle版本问题
  • Oracle支持Linux的哪些发布版本
  • 国内哪里可以下载oracle8.1.7或更新版本
  • root登陆后如何看oracle的版本
  • linux下通过对文件读取方式查询oracle的版本信息
  • Oracle与redhat什么版本搭配最好?
  • Linux版本的Oracle 11g将首先被发布
  • 初学者请教,SCO UNIX 安装oracle9i 是用for哪个的版本?
  • 如何获取Linux及Oracle版本信息
  • Oracle数据库EXP/IMP版本的支持列表集合[图文]
  • 谁知道哪个版本的oracle ias 服务器可以安装在RedHat9.0上?
  • 在linux(red hat 9.0)下可以直接安装windows版本的oracle8.17可以吗??
  • 请问linux下可以同时安装运行两个版本的oracle吗?
  • 想安装一个可以安装Oracle数据库的Linux,不知道用那种版本好?
  • VMware中linux环境下oracle安装图文教程(二)ORACLE 10.2.05版本的升级补丁安装
  • 求助~linux下oracle的安装问题---有可能是glibc版本的问题但是我不会降
  • oracle 日期函数集合(集中版本)第1/2页
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • Oracle 数据库开发工具 Oracle SQL Developer
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • 关于JDBC连接Oracle数据库,是否必须有Oracle客户端
  • ORACLE数据库常用字段数据类型介绍
  • win2000+jbuilder6+oracle817编出的程序,在win2000下执行很好,在win98下却访问不了oracle数据库
  • oracle数据库导出和oracle导入数据的二种方法(oracle导入导出数据)
  • Oracle发布Oracle SQL Developer 1.2数据库开发工具 帮助用户简化开发工作
  • 怎样调出ORACLE数据库中的数据,该如何连接?
  • Oracle收购TimesTen 提高数据库软件性能
  • 卸载oracle数据库
  • Oracle数据库恢复后心得
  • linux上安装oracle 数据库后,是否能写shell程序实现数据库的自动启动。
  • Linux下如何用C语言操作Oracle数据库相关的图书推荐
  • Oracle数据库运行Oracle form时避免出现提示信息
  • Oracle欲收购开源数据库MySQL未果
  • 如何在JBuilder中连接Oracle数据库?
  • Oracle数据库访问参数文件的顺序
  • 循序渐进学习Oracle数据库
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle 10g和Oracle 11g网格技术介绍
  • Oracle EBS R12 支持 Oracle Database 11g
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • Linux /$ORACLE_HOME $ORACLE_HOME


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,