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

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 修补程序版。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/0100d054d64ed467f166cbbb33eb9157.html