Upgrade 11.2.0.1 rac db to 11.2.0.2 in linux

5,453 views

Published on

Published in: Technology, News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,453
On SlideShare
0
From Embeds
0
Number of Embeds
2,927
Actions
Shares
0
Downloads
93
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Upgrade 11.2.0.1 rac db to 11.2.0.2 in linux

  1. 1. Upgrade 11.2.0.1 RACDB/RDBMS to 11.2.0.2 in Linux By Maclean.liu liu.maclean@gmail.com
  2. 2. About Mel Email:liu.maclean@gmail.coml Blog:www.oracledatabase12g.coml Oracle Certified Database Administrator Master 10gand 11gl Over 6 years experience with Oracle DBA technologyl Over 7 years experience with Linux technologyl Member Independent Oracle Users Groupl Member All China Users Groupl Presents for advanced Oracle topics: RAC,DataGuard, Performance Tuning and Oracle Internal.
  3. 3. 在<Upgrade 11.2.0.1 GI/CRS to 11.2.0.2 in Linux>一文中我们介绍了升级 11.2.0.1 GI/CRS 到11.2.0.2 的详细步骤,因为 GI/CRS 的版本总是要求大于 DB/RDBMS,所以这是我们升级RDBMS 数据库软件的前提条件。接下来我们将具体介绍升级 11.2.0.1 DB/RDBMS 到 11.2.0.2 的详细步骤:一、 下载补丁介质11.2.0.2 的 patchset 目前没有公开的下载地址,因为 updates.oracle.com 目前已经不再提供 ftp下载模式,所以我们只能通过登录 My Oracle Support 后进入 Patch 栏目搜索 Patchid 并获得加密的下载链接。11.2.0.2 补丁集的全称是 11.2.0.2.0 PATCH SET FOR ORACLE DATABASE SERVER (Patchset)(patchid:10098816),可以通过 10098816 这个 id 到 Patch 栏目搜索,并找出对应平台的介质zip 包。如 在 Linux x86-64 平台上:以上 p10098816_112020_Linux-x86-64_1of7.zip 和 p10098816_112020_Linux- x86-64_2of7.zip,这 2 个 zip 包对应为 Database/RDBMS 软件的介质,我们不需要下载所有的 7 个 zip 包,有这 2 个升级数据库软件就已经足够了。完成以上 2 个软件的下载后,分别解压 zip 包:unzip p10098816_112020_Linux-x86-64_1of7.zip -d $PATCHHOMEunzip p10098816_112020_Linux-x86-64_2of7.zip -d $PATCHHOME二、以 out of place 方式安装 11.2.0.2 DB 数据库软件因为 11.2.0.2 的 Patchset 以后都是 out of place 的,所以我们可以不用像在 11gr2 以前那样必
  4. 4. 须在原有安装低版本软件的基础上才能升级软件,而可以选择在别的位置完全新安装。注意该步骤不需要停止数据库实例,可以在前期工作中完成。以 DB/RDBMS 数据库软件的拥有者身份(oracle 用户)启动方才解压目录下的 oui 安装界面:su - oracle(oracle)$ unset ORACLE_HOME ORACLE_BASE ORACLE_SID(oracle)$ export DISPLAY=:0(oracle)$ cd $PATCHHOME(oracle)$ ./runInstaller在 Oracle Universal Installer 界面下的 Select Installation Options Screen 选择 install databaseonly.在 Grid Installation Options 下若是 RAC 数据库则选择 Oracle Real Application cluster databaseinstallation,注意如果在该屏幕下出现[FATAL] [INS-35354] The system on which you areattempting to install Oracle RAC is not part of a valid cluster 则可能是在之前的安装 Gird 的过程中没有正确的 Update Inventory 更新信息库信息,见<11gr2 RAC 安装 INS-35354 问题一例>。
  5. 5. 若是单节点数据库则选择 Single instance database installation
  6. 6. 在 Specify Installation Location Screen 上一般 OUI 会帮你自动匹配一个$ORACLE_BASE 变量下不同于原有数据库软件安装目录的新目录,确认这些目录下有足够的磁盘空间,保 险起见空间应大于 10GB。注意这里是 out of place 安装,所以千万不要填入原有的安装路径。以上安装完成后 OUI 会提示要在所有节点上以 root 身份执行 root.sh 脚本:su - root(root #) /s01/orabase/product/11.2.0/dbhome_2/root.shRunning Oracle 11g root script...The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /s01/orabase/product/11.2.0/dbhome_2Enter the full pathname of the local bin directory: [/usr/local/bin]:The contents of "dbhome" have not changed. No need to overwrite.The contents of "oraenv" have not changed. No need to overwrite.The contents of "coraenv" have not changed. No need to overwrite.Entries will be added to the /etc/oratab file as needed byDatabase Configuration Assistant when a database is createdFinished running generic part of root script.
  7. 7. Now product-specific root actions will be performed.Finished product-specific root actions.三、升级前的准备工作以上我们完成了 11.2.0.2 数据库软件的安装工作,但是还没有升级实例和数据字典。在正式升级之前,极有必要完成一系列的备份和准备工作,这些准备工作可以详见拙作<Oracle 数据库升级前必要的准备工作>1.清理数据字典中的无用数据,包括审计和回收站,它们可能拉慢数据字典升级的速度:TRUNCATE TABLE SYS.AUD$;purge DBA_RECYCLEBIN;2.如果条件允许的话,建议使用 RMAN 全量备份数据库,前提是数据库没有达到 TB 级别。rman target / catalog rman/rman@catabackup as compressed backupset incremental level 0 database ;3. 收集数据字典的统计信息,若 dictionary 的统计信息不准备可能导致 catupgrd.sql 字典升级脚本运行过久:SQL> set timing on;SQL> EXECUTE dbms_stats.gather_dictionary_stats;PL/SQL procedure successfully completed.Elapsed: 00:00:27.814.运行 dbupgdiag.sql 升级信息收集脚本, 该脚本可以提供数据库的一些版本信息和组建信息,以下为该脚本的示例输出内容:cat db_upg_diag_VPROD_07-Sep-2011_0737.log *** Start of LogFile *** Oracle Database Upgrade Diagnostic Utility 09-07-2011 19:37:23===============Database Uptime===============19:32 07-SEP-11=================Database Wordsize=================
  8. 8. This is a 64-bit database================Software Version================Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionPL/SQL Release 11.2.0.1.0 - ProductionCORE 11.2.0.1.0 ProductionTNS for Linux: Version 11.2.0.1.0 - ProductionNLSRTL Version 11.2.0.1.0 - Production=============Compatibility=============Compatibility is set as 11.2.0.0.0================Component Status================Comp ID Component Status Version Org_VersionPrv_Version------- ---------------------------------- --------- ---------------------------- --------------CATALOG Oracle Database Catalog Views VALID 11.2.0.1.0CATPROC Oracle Database Packages and Types VALID 11.2.0.1.0OWM Oracle Workspace Manager VALID 11.2.0.1.0RAC Oracle Real Application Clusters VALID 11.2.0.1.0======================================================List of Invalid Database Objects Owned by SYS / SYSTEM======================================================Number of Invalid Objects------------------------------------------------------------------There are no Invalid ObjectsDOC>################################################################DOC>DOC> If there are no Invalid objects below will result in zero rows.DOC>DOC>################################################################DOC>#no rows selected================================List of Invalid Database Objects================================Number of Invalid Objects------------------------------------------------------------------There are no Invalid ObjectsDOC>################################################################DOC>DOC> If there are no Invalid objects below will result in zero rows.DOC>DOC>################################################################DOC>#no rows selected
  9. 9. ==============================================================Identifying whether a database was created as 32-bit or 64-bit==============================================================DOC>###########################################################################DOC>DOC> Result referencing the string B023 ==> Database was created as 32-bitDOC> Result referencing the string B047 ==> Database was created as 64-bitDOC> When String results in B023 and when upgrading database to 10.2.0.3.0DOC> (64-bit) , For known issue refer below articlesDOC>DOC> Note 412271.1 ORA-600 [22635] and ORA-600 [KOKEIIX1] Reported WhileDOC> Upgrading Or Patching Databases To 10.2.0.3DOC> Note 579523.1 ORA-600 [22635], ORA-600 [KOKEIIX1], ORA-7445 [KOPESIZ] andDOC> OCI-21500 [KOXSIHREAD1] Reported While Upgrading To 11.1.0.6DOC>DOC>###########################################################################DOC>#Metadata Initial DB Creation Info-------- -----------------------------------B047 Database was created as 64-bit===================================================Number of Duplicate Objects Owned by SYS and SYSTEM===================================================Counting duplicate objects .... COUNT(1)---------- 4=========================================Duplicate Objects Owned by SYS and SYSTEM=========================================Querying duplicate objects ....OBJECT_NAME OBJECT_TYPE--------------------------------------------------------------------------------AQ$_SCHEDULES TABLEAQ$_SCHEDULES_PRIMARY INDEXDBMS_REPCAT_AUTH PACKAGE BODYDBMS_REPCAT_AUTH PACKAGEDOC>DOC>################################################################################DOC>DOC> If any objects found please follow below article.DOC> Note 1030426.6 How to Clean Up Duplicate Objects Owned by SYS and SYSTEMschemaDOC> Read the Exceptions carefully before taking actions.DOC>DOC>################################################################################DOC>#================JVM Verification
  10. 10. ================JAVAVM - NOT Installed. Below results can be ignored================================================Checking Existence of Java-Based Users and Roles================================================DOC>DOC>################################################################################DOC>DOC> There should not be any Java Based users for database version 9.0.1 andabove.DOC> If any users found, it is faulty JVM.DOC>DOC>################################################################################DOC>#User Existence---------------------------No Java Based UsersDOC>DOC>###############################################################DOC>DOC> Healthy JVM Should contain Six Roles.DOC> If there are more or less than six role, JVM is inconsistent.DOC>DOC>###############################################################DOC>#Role------------------------------No JAVA related RolesRoles=========================================List of Invalid Java Objects owned by SYS=========================================There are no SYS owned invalid JAVA objectsDOC>DOC>#################################################################DOC>DOC> Check the status of the main JVM interface packages DBMS_JAVADOC> and INITJVMAUX and make sure it is VALID.DOC> If there are no Invalid objects below will result in zero rows.DOC>DOC>#################################################################DOC>#no rows selectedINFO: Below query should succeed with foo as result.select dbms_java.longname(foo) "JAVAVM TESTING" from dual *ERROR at line 1:ORA-00904: "DBMS_JAVA"."LONGNAME": invalid identifier
  11. 11. *** End of LogFile ***以上 spool 内容显示所要升级的数据库现有 CATALOG、CATPROC、OWM 和 RAC 组件,且没有安装 JVM,升级 JVM 组建的数据字典将消耗较长的时间。另外一个建议运行的脚本是 utlu112i.sql,它位于新安装的$ORACLE_HOME/rdbms/admin 目录下。该脚本会给出一些升级前地建议,包括建议保证系统表空间和闪回区域有足够的空间,以及收集数据字典的统计信息,如以下输出:SQL> @/s01/orabase/product/11.2.0/dbhome_2/rdbms/admin/utlu112i.sqlOracle Database 11.2 Pre-Upgrade Information Tool 09-07-2011 20:02:30Script Version: 11.2.0.2.0 Build: 001.**********************************************************************Database:**********************************************************************--> name: VPROD--> version: 11.2.0.1.0--> compatible: 11.2.0.0.0--> blocksize: 8192--> platform: Linux x86 64-bit--> timezone file: V11.**********************************************************************Tablespaces: [make adjustments in the current environment]**********************************************************************--> SYSTEM tablespace is adequate for the upgrade..... minimum required size: 267 MB--> SYSAUX tablespace is adequate for the upgrade..... minimum required size: 150 MB--> UNDOTBS1 tablespace is adequate for the upgrade..... minimum required size: 253 MB--> TEMP tablespace is adequate for the upgrade..... minimum required size: 61 MB.**********************************************************************Flashback: ON**********************************************************************FlashbackInfo:--> name: +SYSTEMDG--> limit: 4977 MB--> used: 264 MB--> size: 4977 MB--> reclaim: 0 MB--> files: 7WARNING: --> Flashback Recovery Area Set. Please ensure adequate disk spacein recovery areas before performing an upgrade..**********************************************************************Update Parameters: [Update Oracle Database 11.2 init.ora or spfile]Note: Pre-upgrade tool was run on a lower version 64-bit database.**********************************************************************--> If Target Oracle is 32-Bit, refer here for Update Parameters:-- No update parameter changes are required..--> If Target Oracle is 64-Bit, refer here for Update Parameters:
  12. 12. -- No update parameter changes are required..**********************************************************************Renamed Parameters: [Update Oracle Database 11.2 init.ora or spfile]**********************************************************************-- No renamed parameters found. No changes are required..**********************************************************************Obsolete/Deprecated Parameters: [Update Oracle Database 11.2 init.ora or spfile]**********************************************************************-- No obsolete parameters found. No changes are required.**********************************************************************Components: [The following database components will be upgraded or installed]**********************************************************************--> Oracle Catalog Views [upgrade] VALID--> Oracle Packages and Types [upgrade] VALID--> Real Application Clusters [upgrade] VALID--> Oracle Workspace Manager [upgrade] VALID.**********************************************************************Miscellaneous Warnings**********************************************************************WARNING: --> The "cluster_database" parameter is currently "TRUE".... and must be set to "FALSE" prior to running a manual upgrade.WARNING: --> Database is using a timezone file older than version 14..... After the release migration, it is recommended that DBMS_DST package.... be used to upgrade the 11.2.0.1.0 database timezone version.... to the latest version which comes with the new release.WARNING: --> Your recycle bin is turned on and currently contains no objects..... Because it is REQUIRED that the recycle bin be empty prior to upgrading.... and your recycle bin is turned on, you may need to execute the command: PURGE DBA_RECYCLEBIN.... prior to executing your upgrade to confirm the recycle bin is empty..**********************************************************************Recommendations**********************************************************************Oracle recommends gathering dictionary statistics prior toupgrading the database.To gather dictionary statistics execute the following commandwhile connected as SYSDBA: EXECUTE dbms_stats.gather_dictionary_stats;**********************************************************************Oracle recommends removing all hidden parameters prior to upgrading.To view existing hidden parameters execute the following commandwhile connected AS SYSDBA: SELECT name,description from SYS.V$PARAMETER WHERE name LIKE _% ESCAPE Changes will need to be made in the init.ora or spfile.**********************************************************************Oracle recommends reviewing any defined events prior to upgrading.To view existing non-default events execute the following commandswhile connected AS SYSDBA:
  13. 13. Events: SELECT (translate(value,chr(13)||chr(10), )) FROM sys.v$parameter2 WHERE UPPER(name) =EVENT AND isdefault=FALSE Trace Events: SELECT (translate(value,chr(13)||chr(10), )) from sys.v$parameter2 WHERE UPPER(name) = _TRACE_EVENTS AND isdefault=FALSEChanges will need to be made in the init.ora or spfile.**********************************************************************5.如果数据库很大那么建议打开闪回数据库 flashback database,并创建还原点,这样可以极大地缩短回退时间。可以通过以下查询判断数据库是或否启用了 flashback database 功能:SQL> select FLASHBACK_ON from v$database;FLASHBACK_ON------------------NO若显示 NO 则说明之前没有启用数据库闪回功能,若希望启用数据库闪回功能需要数据库短时间停机:关闭所有的数据库实例SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.启动某一套实例到 mount 状态SQL> startup mount;ORACLE instance started.Total System Global Area 1252663296 bytesFixed Size 2212936 bytesVariable Size 603982776 bytesDatabase Buffers 637534208 bytesRedo Buffers 8933376 bytesDatabase mounted.SQL> alter database flashback on;Database altered.
  14. 14. 在本节点打开数据库,并启动所有节点SQL> alter database open;Database altered.以上在数据库级别启用了闪回 flashback 功能。接着我们需要停止应用程序,注意在这一步之前的准备工作都可以在线完成,但是本步骤将要求停止一切应用程序的链接,关闭数据库,并启动到 restrict 限制模式,以便创建 restorepoint,方便可能的升级回退。,strict 模式避免了普通用户的链接。在所有节点上关闭数据库实例,并在唯一节点上启动数据库到 restrict 模式。startup restrict;ORACLE instance started.Total System Global Area 1252663296 bytesFixed Size 2212936 bytesVariable Size 603982776 bytesDatabase Buffers 637534208 bytesRedo Buffers 8933376 bytesDatabase mounted.Database opened.SQL> conn maclean/macleanERROR:ORA-01035: ORACLE only available to users with RESTRICTED SESSION privilegeWarning: You are no longer connected to ORACLE.conn / as sysdbaSQL> create restore point maclean_rollback guarantee flashback database;Restore point created.SQL> select * from v$restore_point; SCN DATABASE_INCARNATION# GUA STORAGE_SIZE---------- --------------------- --- ------------TIME---------------------------------------------------------------------------RESTORE_POINT_TIME PRE--------------------------------------------------------------------------- ---NAME-------------------------------------------------------------------------------- 601958 1 YES 1594163207-SEP-11 07.52.59.000000000 PM YESMACLEAN_ROLLBACK
  15. 15. 四、正式升级数据库实例和数据字典1. 关闭所有数据库实例2. 复制相关的 pfile 或 spfile 形式的参数到新的 ORACLE_HOME 下,这里我们假设使用 ASM存储共享的 spfile,那么只需要在所有节点上将 init$SID.ora 形式的文件拷贝即可:(oracle $) cat $ORACLE_HOME/dbs/initVPROD1.oraSPFILE=+SYSTEMDG/VPROD/spfileVPROD.ora(oracle $) cp $ORACLE_HOME/dbs/initVPROD1.ora/s01/orabase/product/11.2.0/dbhome_2/dbs设置 ORACLE_HOME 和 PATH 变量指向新的 11.2.0.2 数据库软件(oracle $) export ORACLE_HOME=/s01/orabase/product/11.2.0/dbhome_2(oracle $) export PATH=/s01/orabase/product/11.2.0/dbhome_2/bin:$PATH设置正确的 ORACLE_SID(oracle $) export ORACLE_SID=VPROD1(oracle $) unset LD_LIBRARY_PATH3. 启动实例到 nomount 状态,并修改 cluster_database 参数到 spfile:SQL> startup nomount;ORACLE instance started.Total System Global Area 1252663296 bytesFixed Size 2226072 bytesVariable Size 402655336 bytesDatabase Buffers 838860800 bytesRedo Buffers 8921088 bytesSQL> alter system set cluster_database=false scope=spfile;System altered.4. 重启实例到 upgrade 模式,升级数据字典,运行$ORACLE_HOME/rdbms/admin/catupgrd.sql 脚本:SQL> shutdown immediate;ORA-01507: database not mountedORACLE instance shut down.SQL> startup upgrade;ORACLE instance started.
  16. 16. Total System Global Area 1252663296 bytesFixed Size 2226072 bytesVariable Size 402655336 bytesDatabase Buffers 838860800 bytesRedo Buffers 8921088 bytesDatabase mounted.Database opened.SQL> set echo onSQL> SPOOL /tmp/upgrade.logSQL> set time on;20:40:40 SQL> @/s01/orabase/product/11.2.0/dbhome_2/rdbms/admin/catupgrd.sql在以上 catupgrd.sql 脚本运行过程中可以通过 DBA_SERVER_REGISTRY 视图了解组件字典升级的进度SQL> select * from DBA_SERVER_REGISTRY;select * from DBA_SERVER_REGISTRY *ERROR at line 1:ORA-04063: view "SYS.DBA_SERVER_REGISTRY" has errorsorERROR at line 1:ORA-04063: package body "SYS.DBMS_REGISTRY" has errors在一开始会提示该视图有错误,这不要紧,稍等一会。SQL> select comp_name,status,version from dba_server_registry;COMP_NAME STATUSVERSION-------------------------------------------------- --------------------------------------------------------Oracle Workspace Manager UPGRADING11.2.0.1.0Oracle Database Catalog Views VALID11.2.0.2.0Oracle Database Packages and Types VALID11.2.0.2.0Oracle Real Application Clusters VALID11.2.0.2.020:50:40 SQL>20:50:40 SQL> Rem*********************************************************************20:50:40 SQL> Rem END catupgrd.sql20:50:40 SQL> Rem*********************************************************************20:50:40 SQL>以上 catupgrd.sql 脚本运行了 10 分钟左右重启实例,运行 utlrp.sql 脚本编译失效对象sqlplus / as sysdbastartup;@?/rdbms/admin/utlrp
  17. 17. TIMESTAMP--------------------------------------------------------------------------------COMP_TIMESTAMP UTLRP_BGN 2011-09-07 20:53:38该脚本会自动根据 cpu 数目选择并行度DOC> This script automatically chooses serial or parallel recompilationDOC> based on the number of CPUs available (parameter cpu_count) multipliedDOC> by the number of threads per CPU (parameter parallel_threads_per_cpu).DOC> On RAC, this number is added across all RAC nodes.TIMESTAMP--------------------------------------------------------------------------------COMP_TIMESTAMP UTLRP_END 2011-09-07 20:55:09该脚本耗时约 2 分钟修改 cluster_database 参数为 true,并重启所有节点实例SQL> alter system set cluster_database=true scope=spfile;System altered.可以看到以上在数据库仅安装了 CATALOG、CATPROC、OWM 和 RAC Cluster View 4 种组件的情况下,catupgrd.sql 字典升级脚本仅耗时 10 分钟左右。 而实际的生产库可能安装了更多的组件,如 JVM 等组件将耗时较多。以下总结了各 Oracle 组件升级字典的平均耗时,是一张十分有用的升级时间参考表:DB Sample Upgrade Time较少组件情况下 HH:MM:SComponent SOracle Server 00:16:17JServer JAVA Virtual Machine 00:05:19Oracle XDK 00:00:48Oracle Text 00:00:58Oracle XML Database 00:04:09Oracle Database Java 00:00:33PackagesGathering Statistics 00:02:43Total Upgrade Time: 00:30:47较多组件情况下Component HH:MM:S
  18. 18. SOracle Server 00:16:17JServer JAVA Virtual Machine 00:05:19Oracle Workspace Manager 00:01:01Oracle Enterprise Manager 00:10:13Oracle XDK 00:00:48Oracle Text 00:00:58Oracle XML Database 00:04:09Oracle Database Java 00:00:33PackagesOracle Multimedia 00:07:43Oracle Expression Filter 00:00:18Oracle Rule Manager 00:00:12Gathering Statistics 00:04:53Total Upgrade Time: 00:52:315.使用 srvctl 命令更新 ocr 中 DBHOME 相关信息:su - oraclesrvctl upgrade database -d VPROD -o $NEW_ORACLE_HOMEsrvctl upgrade database -d VPROD -o /s01/orabase/product/11.2.0/dbhome_2[oracle@vrh1 ~]$ srvctl config database -d VPRODDatabase unique name: VPRODDatabase name: VPRODOracle home: /s01/orabase/product/11.2.0/dbhome_2Oracle user: oracleSpfile: +SYSTEMDG/VPROD/spfileVPROD.oraDomain:Start options: openStop options: immediateDatabase role: PRIMARYManagement policy: AUTOMATICServer pools: VPRODDatabase instances: VPROD1,VPROD2Disk Groups: SYSTEMDGMount point paths:Services:Type: RACDatabase is administrator managed[oracle@vrh1 ~]$ srvctl stop database -d VPRODPRCC-1016 : VPROD was already stopped[oracle@vrh1 ~]$ srvctl start database -d VPROD
  19. 19. [oracle@vrh1 ~]$ srvctl status database -d VPRODInstance VPROD1 is running on node vrh1Instance VPROD2 is running on node vrh26.修改 oracle 用户的 profile 配置文件指中的变量:cat .bash_profile# .bash_profile# Get the aliases and functionsif [ -f ~/.bashrc ]; then . ~/.bashrcfi# User specific environment and startup programsORACLE_HOME=/s01/orabase/product/11.2.0/dbhome_2ORACLE_SID=VPROD1ORACLE_BASE=/s01/orabasePATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH:$HOME/binexport PATH ORACLE_HOME ORACLE_SID ORACLE_BASESQL> select * from global_name;GLOBAL_NAME--------------------------------------------------------------------------------www.oracledatabase12g.comSQL> select * from v$version;BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit ProductionPL/SQL Release 11.2.0.2.0 - ProductionCORE 11.2.0.2.0 ProductionTNS for Linux: Version 11.2.0.2.0 - ProductionNLSRTL Version 11.2.0.2.0 - Production
  20. 20. 7. 数据库升级完成后进入一个 pending area,建议在至少 2 个礼拜内,不要升级 compatible参数和删除 restore point。在确认没有回退的必要后,修改 compatible 参数并删除 restore point:alter system set compatible=’11.2.0.2.0′ scope=spfile;drop restore point MACLEAN_ROLLBACK;srvctl stop database -d VPRODsrvctl start database -d VPROD以上成功地将 11.2.0.1 的 RAC 数据库升级到了 11.2.0.2。五、回退升级操作(Database Downgrade)我们可以选择 2 种回退办法: 1. 通过 restore point 还原到 11.2.0.1 的数据库 2. 执行 catdwgrd.sql 降级数据字典针对第一种方法:关闭所有节点实例srvctl stop database -d VPRODexport ORACLE_HOME=$OLD_ORACLE_HOMEexport PATH=$OLD_ORACLE_HOME/bin:$PATHunset LD_LIBRARY_PATHsqlplus / as sysdbaSQL> select * from v$restore_point; SCN DATABASE_INCARNATION# GUA STORAGE_SIZE---------- --------------------- --- ------------TIME---------------------------------------------------------------------------RESTORE_POINT_TIME PRE--------------------------------------------------------------------------- ---NAME-------------------------------------------------------------------------------- 601958 1 YES 46230732807-SEP-11 07.52.59.000000000 PM YESMACLEAN_ROLLBACK
  21. 21. SQL> flashback database to restore point MACLEAN_ROLLBACK;Flashback complete.flashback database 的速度 视乎 flashback log 多少而定,一般是很快的,在 1 分钟之内。SQL> alter database open;alter database open*ERROR at line 1:ORA-01589: must use RESETLOGS or NORESETLOGS option for database openSQL> alter database open resetlogs;Database altered.以上通过 restore point 的方法是我所推荐的,这种方法简单、省时省力、高效且问题少少,是一种绿色方案。同时不要忘记使用 srvctl upgrade 命令还原 ocr 中的 DBHOME 信息,以及还原 profile 文件。针对第二种方法:catdwgrd.sql 的运行有诸多限制,其所消耗的时间可能要略长于 catupgrd.sql。而且该脚本在运行过程中可能遇到各种错误,不推荐使用这种方法。关于使用 catdwgrd.sql 脚本降级数据库 11.2.0.2 到 11.2.0.1,可以参考 MOS note <How ToDowngrade From Database 11.2 To Previous Release (includes 11.2.0.2-11.2.0.1) [ID 883335.1]>。

×