应用版本升级后,如何为了确保兼容性数据兼容旧之前的版本

1067人阅读
oracle_如何从数据库&11.2&降级至之前的版本(包括&11.2.0.3-11.2.0.1)
Applies to:
Oracle Database - Standard Edition - Version 10.1.0.5 to 11.2.0.3 [Release 10.1 to 11.2]
Oracle Database - Enterprise Edition - Version 10.1.0.5 to 11.2.0.3 [Release 10.1 to 11.2]
Information in this document applies to any platform.
本文档可用作将之前升级的数据库从 Oracle 11gR2 降回至下列以前版本数据库的指南与核对表:Oracle 10gR1、Oracle 10gR2、Oracle 11gR1。该文档内容也适用于从 11.2.0.3 降级至 11.2.0.1
需要特别注意的是,在将数据库实例从当前版本降级至升级前版本时,数据库不会返回至与其升级前相同的状态。升级过程会导致一些不可逆的更改,具体取决于涉及的版本。降级过程允许用户在之前版本中打开并访问数据库实例。这通常就足够了。
此外,在降级后可能需要采取一些更正操作(如卸载/重新安装,或重新升级至当前修补程序集级别),以解决残留问题。
如果目标是将实例完全返回至其升级前的状态,那么将会用到包括恰好恢复至升级前状态在内的其他流程。
本文章中讨论的过程是基于脚本的降级。本文章并未讨论如何使用导入/导出、数据泵或其他方法将数据从一个版本移至另一个版本。
开始降级过程之前,在服务器上应该有或已安装要降至版本的 Oracle 二进制文件。如果已卸载了希望降至版本的 Oracle 可执行文件,请将该 Oracle 二进制文件重新安装至正确的版本/修补程序级别,以便进行降级。
注意事项:
该过程用于降级已成功升级至 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。这可以防止降级。请参阅 &&:
ORA-00201 while downgrading from 10gR2 to 10gR1 or 9iR2 for additional information.
如果原数据库打过patch, 您需要在降级之前把patch进行回滚。 卸载和回滚patch的步骤,您可以在patch的readme中找到。卸载和回滚patch失败会导致降级过程的失败及数据字典对象无法生效。
示例:&&对于 Exadata Bundle Patch,过程为:
卸载 patch
&&&&&&&&&&&&&&&&&示例:&&&$ opatch auto /u01/app/oracle/patches/ -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_&
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_&
select&owner,object_type,count(*)&from&dba_objects&where&status='INVALID'&&group&by&owner,object_type&order&by&owner,object_
如果任何组件或 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。
来自 &: How to Install Database Vault Patches on top of 11.1.0.7
禁用 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 目录中。
有关 Oracle Database Release 11.1 或更早版本上新时区版本文件的修补程序,请参考 Metalink&&&Updated DST transitions and new Time Zones in Oracle Time Zone File patches.
5: 检查数据库的兼容性级别,以确定数据库是否可能具有防止降级的不兼容性。
如果数据库的兼容性级别是 11.2.0 或更高,则无法进行降级。
如果要将数据库降级至 11gR1,COMPATIBLE 初始化参数必须已设置为 11.0.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.3 降级至 11.2.0.2,使用 11.2.0.2 catrelod.sql 脚本会出现一个问题。
针对版本 11.2.0.2 下载并应用修补程序 ,其提供了更新版本的 catrelod.sql。
有关更多信息,请参考:
Downgrade From 11.2.0.3 To 11.2.0.2 Fails At Catrelod.Sql with error: ORA-20000: Upgrade from version 11.2.0.2.0 cannot be downgraded to version 11.2.0.1 (Doc ID )
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
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 脚本之前识别并修正问题。
11: 关闭将脚本结果记录到日志文件:
&&&&&SQL& SPOOL OFF&
查看日志文件并验证在降级过程中无错误生成。在步骤 9 中命名日志文件,建议名称为 downgrade.log。更正在此文件中发现的所有问题并根据需要重新运行降级脚本。
12: 关闭实例:
&&&&&SQL&&SHUTDOWN IMMEDIATE&
13:&&退出 SQL*Plus.&
14: 如果操作系统是 Linux 或 UNIX,请更改下列环境变量以指向要降级到的版本所在目录:
ORACLE_HOME&
还需要检查 oratab 文件和所有设置了 ORACLE_HOME 值的客户端脚本是否已指向降级的 Oracle 主目录。
15: 如果操作系统是 Windows,请完成以下步骤:
a: 停止所有 Oracle 服务,包括 Oracle Database 11gR2 (11.2) 数据库的 OracleServiceSID Oracle 服务,其中 SID 是实例名称。
例如,如果 SID 是 ORCL,则在命令提示符下输入以下内容:
C:\& NET STOP OracleServiceORCL&
b: 通过执行 ORADIM 命令在命令提示符下删除 Oracle 服务。例如,如果 SID 是 ORCL,则输入以下命令:
C:\& ORADIM -DELETE -SID ORCL
c. 使用 ORADIM 命令创建要在命令提示符下降级的数据库的 Oracle服务。
C:\& ORADIM -NEW -SID SID -INTPWD PASSWORD -MAXUSERS USERS -STARTMODE AUTO -PFILE ORACLE_HOME\DATABASE\INITSID.ORA
有关 ORADIM 实用程序的更多信息,请参考&&WINNT/WIN2000 Recreating Oracle Services and Instances from
the Command Line&
16: 恢复降级所至版本的配置文件(例如,参数文件、口令文件等)。
17: 在系统提示符下,转至之前版本的 ORACLE_HOME/rdbms/admin 目录。
18: 启动 SQL*Plus.&
19: 以具有 SYSDBA 权限的用户身份连接至数据库实例。
20: 启动实例:
&&&&&SQL& STARTUP UPGRADE&
21: 设置系统以将结果记录到日志文件,以备稍后的成功验证:
&&&&&SQL& SPOOL reload.log&
22: 运行 catrelod.sql:
&&&&&SQL&&@catrelod.sql&
catrelod.sql 脚本重新加载降级数据库中所有数据库组件的相应版本。
23: 如果要降级至 Oracle Database 11g Release 1 (11.1.0.6),请运行 xsrelod.sql 脚本:
&&&&&SQL&&@xsrelod.sql
运行 xsrelod.sql 脚本以避免以下错误:
PLS-00306: wrong number&or types of arguments in call to 'INVALIDATE_DSD_CACHE' DBMS_XS_DATA_SECURITY_EVENTS PL/SQL: Statement ignored
24: 如果要降级至 Oracle Database 10g Release 1 (10.1.0.5) 并且数据库中安装有 XDB,请在运行 catrelod.sql 之后运行以下脚本:
&&&&&SQL&&@dbmsxdbt.sql
25: 如果这是一个 Oracle RAC 数据库,请执行以下命令以将数据库返回 RAC 模式:
&&&&&SQL& SET CLUSTER_DATABASE=TRUE
26: 关闭将脚本结果记录到日志文件:
&&&&&SQL& SPOOL OFF
27: 检查日志文件并验证软件包和过程编译成功。
28: 关闭并重新启动实例以进行正常运行:
&&&&&SQL& SHUTDOWN IMMEDIATE&
&&&&&SQL& STARTUP&
29: 如果该数据库针对 Oracle Label Security 进行了配置并打算降级至 Oracle Database 10g Release 1 (10.1),请执行此步骤。
a. 将 olstrig.sql 脚本从 Oracle Database 11g Release 2 (11.2) Oracle 主目录复制到将要降至数据库版本的 Oracle 主目录。
b. 运行 olstrig.sql 通过 Oracle Label Security 策略在表上重新创建 DML 触发器。
&&&&&SQL&&@olstrig.sql&
请参阅《Oracle Label Security Administrator's Guide》了解更多信息。
30: 运行 utlrp.sql 脚本:
&&&&&SQL&&@utlrp.sql
utlrp.sql 脚本将重新编译所有之前处于 INVALID 状态的现有 PL/SQL 模块,如软件包、过程、类型等。
31: 一些已安装的组件可能会显示实例升级前显示的较早版本。如果要降级至已安装了修补程序集的版本,请查看并比较修补程序集 readme.txt 文件与当前组件版本。如果降级组件的版本更早,则:
在升级模式下重新启动实例。
运行 catupgrd.sql 脚本&
按照修补程序集 Readme 文件重新检查组件版本。
32: 退出 SQL*Plus。
&&&&&数据库现已降级。
降级后步骤
33: 恢复 Oracle Enterprise Manager 备份。
如果在升级前备份了 Oracle Enterprise Manager 数据,则可将其进行恢复。请参考&&How
To Restore The Oracle Enterprise Manager Data To Downgrade The Single Instance Database To Previous/Source Release ?
如果未进行备份,可根据需要重新创建 Oracle Enterprise Manager。请参考以下文章以创建或重新创建数据库控制数据&:How
To Drop, Create And Recreate DB Control In A 10g Database
34: 启用 Database Vault。
降级后启用 Data Vault 的步骤:
以已授予 DV_OWNER 角色的用户身份连接至 SQL*Plus 并执行以下语句:
ALTER&TRIGGER&DVSYS.DV_BEFORE_DDL_TRG&ENABLE;&
ALTER&TRIGGER&DVSYS.DV_AFTER_DDL_TRG&ENABLE;
35: 重新加载 Oracle Application Express&
转至将 apxrelod.sql 文件复制到的目录(降级步骤的第 3 步),通过运行 apxrelod.sql 文件手动重新加载 Oracle Application Express。请注意:,数据库必须以 UPGRADE 模式启动,以运行 apxrelod.sql 脚本。
36: 如果原 ORACLE_HOME 被卸载, 您需要在原 ORACLE_HOME 中停止监听,移动或重建监听在低版本的ORACLE_HOME中,并启动。这个步骤期望您做到但不是必须的。
37: 如果有patch (包括 PSU, CPU, Exadata Bundle Patches 或者 One-off Patches) 被打在原 ORACLE_HOME 中, 那么这个patch对应的 post installation 步骤 (SQL) 必须被运行.&&请查看每个patch的readme。
References
How To Restore The Oracle Enterprise Manager Data To Downgrade The Single Instance Database To Previous/Source Release ?
Downgrade From 11.2.0.3 To 11.2.0.2 Fails At Catrelod.Sql with error: ORA-20000: Upgrade from version 11.2.0.2.0 cannot be downgraded to version 11.2.0.1
WINNT/WIN2000: Recreating Oracle Services and Instances from the Command Line
ORA-00201 while downgrading from 10gR2 to 10gR1 or 9iR2
Updated DST transitions and new Time Zones in Oracle Time Zone File patches
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:84193次
积分:1040
积分:1040
排名:千里之外
原创:17篇
转载:72篇
(1)(2)(1)(11)(27)(12)(2)(2)(1)(1)(1)(1)(12)(1)(1)(6)(7)大奖娱乐,大奖88pt88 - 大奖99pt99
大奖88pt88
【组织部】
【教育学院】
【国际教育】
【国际教育】
大奖99pt99毕业生就业质量年度报告(2015)
【招生就业】
大奖99pt99"第二届国际女大学校长论坛暨纪念第四届世界妇女大会研讨会"会议通知
【外事办】
---友情链接---
中国妇女网
中国青年政治学院
北京电子科技学院
中国劳动关系学院博客中国 - 每天五分钟,给思想加油 中国博客的发源地 意见领袖自媒体的根据地
客户服务热线:
每经智库专家 信孚研究院研究员
独立政论家 中国政治、外交战略和全球政治研究者
博客中国专栏作家
90后时评人 博客中国专栏作家
网络评论员,关注国际军事
广东作协会员 中国诗歌学会会员
自贡日报编辑
知名评论人
自由写作者
转业军人 专栏作家
新加坡国立大学东亚研究所所长
独立政论家 中国政治、外交战略和全球政治研究者
90后时评人 博客中国专栏作家
财经名博 职业投资者
中国人民大学重阳金融研究院执行副院长
博客中国专栏作家
广东作协会员 中国诗歌学会会员
热门支持率
& Copyright 2001 - , All Rights Reserved
京ICP证288;京公网安备 21号
客户服务热线: 客服邮箱:  违法和不良信息举报电话: 举报邮箱:

我要回帖

更多关于 word高版本兼容包 的文章

 

随机推荐