|
文档内容
适用于:Oracle Database - Standard Edition - 版本 9.2.0.8 到 11.2.0.4 [发行版 9.2 到 11.2]Oracle Database - Enterprise Edition - 版本 9.2.0.8 到 11.2.0.4 [发行版 9.2 到 11.2] Oracle Database - Enterprise Edition - 版本 9.2.0.7 到 9.2.0.7 [发行版 9.2] 本文档所含信息适用于所有平台 用途本文档可用作手工将 Oracle 9iR2 (9.2), Oracle 10gR1 (10.1), Oracle 10gR2 (10.2) 或者 Oracle 11gR1 (11.1) 版本数据库升级至 Oracle 11gR2 (11.2) 版本数据库的指南与核对表。 提问,获得帮助,并分享您对于这篇文档的经验 您是否希望与其他 Oracle 客户、Oracle 员工和业内专家进一步探讨此主题? 适用范围数据库管理人员/技术支持 详细信息推荐在源库上完成的 2) 除了下面的对象外, 确保在 sys 和 system schema 下没有重复存在的对象 下面的对象是允许重复的: OBJECT_NAME OBJECT_TYPE
------------------------------ -------------------
AQ$_SCHEDULES TABLE AQ$_SCHEDULES_PRIMARY INDEX DBMS_REPCAT_AUTH PACKAGE DBMS_REPCAT_AUTH PACKAGE BODY
注意: 上面的检查会在下面的第三步中完成 (dbupgdiag.sql)
3) 禁用所有自定义的 before/after DDL 类型的触发器,完成升级后再启用它们 4) 在升级一个安装了 XDB 组件的数据库或者安装 XDB 之前,需要先按照文档 Note 1573175.1 "Upgrading or Installing XDB could result in data loss if XDB_INSTALLATION_TRIGGER exists " 中的代码检查是否需要删除一些对象. 注意,如果不这么做的话,可能会引发用户数据或者用户对象(如表,索引)的丢失
如果数据库使用了 ASMM, 那么也需要按上面来设置两个 pool 的大小做为最小值。
参照:Database Upgrade failed with Errors “ORA-02290: check constraint (SYS.JAVA_DEV_DISABLED) violated” & “ORA-04045: SYS.DBMS_ISCHED” (Doc ID 1985725.1) 注意:这步仅仅适用于假如您在原数据库上应用了迁移补丁
兼容性矩阵
提醒:
如果要快速得到各个补丁集对应的补丁号,可以参考下面的两个文档:
升级前步骤 按照下面的文档下载或使用最新的 Pre-Upgrade Information Tool: 或者 直接运行 Pre-Upgrade Information Tool 来收集安装前需要检查的信息 第1步
$ORACLE_HOME/rdbms/admin/utlu112i.sql
SQL> SELECT TO_NUMBER('MUST_BE_SAME_TIMEZONE_FILE_VERSION')
2 FROM registry$database 3 WHERE tz_version != (SELECT version from v$timezone_file); SELECT TO_NUMBER('MUST_BE_SAME_TIMEZONE_FILE_VERSION') * ERROR at line 1: ORA-01722: invalid number
$ sqlplus '/ as sysdba'
SQL> spool upgrade_info.log SQL> @utlu112i.sql SQL> spool off SQL>
Note 556610.1 Script to Collect DB Upgrade/Migrate Diagnostic Information (dbupgdiag.sql)
$ cd $ORACLE_HOME/rdbms/admin
$ sqlplus "/ as sysdba" SQL> @utlrp.sql
建议使用hcheck.sql脚本对数据库做一个健康检查,请从下面的文档中下载脚本. Note 136697.1 hcheck.sql" script to check for known problems in Oracle8i, Oracle9i, Oracle10g and Oracle 11g
SELECT grantee FROM dba_role_privs
WHERE granted_role = 'CONNECT' and grantee NOT IN ( 'SYS', 'OUTLN', 'SYSTEM', 'CTXSYS', 'DBSNMP', 'LOGSTDBY_ADMINISTRATOR', 'ORDSYS', 'ORDPLUGINS', 'OEM_MONITOR', 'WKSYS', 'WKPROXY', 'WK_TEST', 'WKUSER', 'MDSYS', 'LBACSYS', 'DMSYS', 'WMSYS', 'EXFSYS', 'SYSMAN', 'MDDATA', 'SI_INFORMTN_SCHEMA', 'XDB', 'ODM');
SELECT GRANTEE,PRIVILEGE
FROM DBA_SYS_PRIVS WHERE GRANTEE ='CONNECT' GRANTEE PRIVILEGE ------- ---------------------- CONNECT CREATE VIEW CONNECT CREATE TABLE CONNECT ALTER SESSION CONNECT CREATE CLUSTER CONNECT CREATE SESSION CONNECT CREATE SYNONYM CONNECT CREATE SEQUENCE CONNECT CREATE DATABASE LINK
SELECT 'CREATE '||DECODE(U.NAME,'PUBLIC','public ')||'DATABASE LINK '||CHR(10)
||DECODE(U.NAME,'PUBLIC',Null, 'SYS','',U.NAME||'.')|| L.NAME||chr(10) ||'CONNECT TO ' || L.USERID || ' IDENTIFIED BY "'||L.PASSWORD||'" USING '''||L.HOST||'''' ||chr(10)||';' TEXT FROM SYS.LINK$ L, SYS.USER$ U WHERE L.OWNER# = U.USER#;
检查 TIMESTAMP WITH TIMEZONE 类型的数据 如果把一个低版本的数据库升级到 11.2, 那么升级后 DST 的版本应该还和升级前的 DST 版本一致。
SQL> conn / as sysdba
SQL> select TZ_VERSION from registry$database;
Note 276914.1 The National Character Set in Oracle 9i and 10g.
Note 560336.1 Script to Check Schemas with Stale Statistics
$ sqlplus "/as sysdba"
SQL> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
SQL> EXEC DBMS_STATS.DELETE_SCHEMA_STATS('SYS');
SQL> EXEC DBMS_STATS.IMPORT_SCHEMA_STATS('SYS','dictstattab');
我们在升级前必须要把数据库的 Oracle Database Vault 禁用掉,并在升级结束后再次启用。
Note 453903.1 - Enabling and Disabling Oracle Database Vault in UNIX
Note 453902.1 - Enabling and Disabling Oracle Database Vault in WINDOWS
如 : export SHLIB_PATH=$ORACLE_HOME/lib:$SHLIB_PATH
$ emdwgrd -save -sid old_SID -path save_directory
@
Note 870877.1 How To Save Oracle Enterprise Manager Database Control Data Before Upgrading The Single Instance Database To Other Release ?
$ emdwgrd -save -cluster -sid old_SID -path save_directory
Note 562980.1 - emdwgrd core dumps : emdwgrd[228]: 10366 Memory fault(coredump)
Set verify off
Set space 0 Set line 120 Set heading off Set feedback off Set pages 1000 Spool analyze.sql SELECT 'Analyze cluster "'||cluster_name||'" validate structure cascade;' FROM dba_clusters WHERE owner='SYS' UNION SELECT 'Analyze table "'||table_name||'" validate structure cascade;' FROM dba_tables WHERE owner='SYS' AND partitioned='NO' AND (iot_type='IOT' OR iot_type is NULL) UNION SELECT 'Analyze table "'||table_name||'" validate structure cascade into invalid_rows;' FROM dba_tables WHERE owner='SYS' AND partitioned='YES'; spool off
$ sqlplus "/ as sysdba"
SQL> @$ORACLE_HOME/rdbms/admin/utlvalid.sql SQL> @analyze.sql
2. 在执行脚本时下面这样的错误可以忽略掉: 3. 在分析 AWR 相关的表(WRH$_...)可能会返回"ORA-00054: resource busy and acquire with NOWAIT specified"的错误。变通方案是把 AWR 临时禁用。 3.a) 找到当前快照间隔时间(snapshot interval)
select snap_interval,retention from dba_hist_wr_control;
3.b) 把快照间隔时间改为 0 来临时禁用 AWR:
exec dbms_workload_repository.modify_snapshot_settings(interval=>0);
exec dbms_workload_repository.modify_snapshot_settings(interval=><value in mn of snap_interval
returned at 3.a>);
在升级数据库前,我们需要确认所有的物化视图都已经完成了刷新,并且复制已经停止。 SQL> select distinct(trunc(last_refresh)) from dba_snapshot_refresh_times; SQL> select s.obj#,o.obj#,s.containerobj#,lastrefreshdate,pflags,xpflags,o.name,o.owner#, bitand(s.mflags, 8) from obj$ o, sum$ s 如果第二个语句返回一些行, 请参照文档 Note 1442457.1 : During 11g Upgrade, Mview refresh warning
SELECT * FROM v$recover_file;
SELECT * FROM v$backup WHERE status != 'NOT ACTIVE'; 以上的语句不应该有任何返回行。
SQL> select * from dba_2pc_pending;
SQL> SELECT local_tran_id
FROM dba_2pc_pending; SQL> EXECUTE dbms_transaction.purge_lost_db_entry(''); SQL> COMMIT;
SELECT SUBSTR(value,INSTR(value,'=',INSTR(UPPER(value),'SERVICE'))+1)
FROM v$parameter WHERE name LIKE 'log_archive_dest%' AND UPPER(value) LIKE 'SERVICE%';
SQL> SELECT username, default_tablespace
FROM dba_users WHERE username in ('SYS','SYSTEM');
SQL> ALTER user SYS default tablespace SYSTEM;
SQL> ALTER user SYSTEM default tablespace SYSTEM;
SQL> SELECT owner,tablespace_name
FROM dba_tables WHERE table_name='AUD$';
第21步
SQL> SELECT name FROM sys.user$
WHERE ext_username IS NOT NULL AND password = 'GLOBAL'; 如果有,那么在升级后做第33步。
SQL> SELECT name FROM v$controlfile;
SQL> SELECT file_name FROM dba_data_files; SQL> SELECT group#, member FROM v$logfile;.
如果你已经升级了 Grid Infrastructure, 那么这一步可以忽略,因为它已经包含在 Grid Infrastructure 的升级里了。
$ lsnrctl stop
$ emctl stop dbconsole
$ isqlplusctl stop
$ sqlplus "/as sysdba"
SQL> shutdown immediate;
Connect to RMAN:
rman "target / nocatalog" RUN { ALLOCATE CHANNEL chan_name TYPE DISK; BACKUP DATABASE FORMAT '<db_backup_directory>%U' TAG before_upgrade; BACKUP CURRENT CONTROLFILE TO '<controlfile_backup_directory>'; }
- 从源 ORACLE_HOME 拷贝初始化参数文件到目标 ORACLE_HOME/dbs 下(如果是 Windows 平台,那么是 ORACLE_HOME/database 目录) - 之后修改目标 ORACLE_HOME/dbs 下(如果是Windows平台,那么是 ORACLE_HOME/database 目录)的参数文件: 同时建议在升级前删掉所有手工设置的隐藏参数。
Note 454442.1 11g Install : Understanding about Oracle Base, Oracle Home and Oracle Inventory locations
C:\> NET STOP OracleServiceORCL
C:\> ORADIM -DELETE -SID ORCL
C:\> ORADIM -NEW -SID SID -INTPWD PASSWORD -STARTMODE AUTO -PFILE %ORACLE_HOME%\DATABASE\INIT<SID>.ORA
比如: C:\> ORADIM -NEW -SID ORCL -INTPWD <PASSWORD> -STARTMODE AUTO -PFILE %ORACLE_HOME%\DATABASE\INIT<SID>.ORA
比如:
$ export ORACLE_HOME=<location of Oracle 11.2> $ export PATH=$ORACLE_HOME/bin:$PATH $ export ORACLE_BASE=<Oracle_Base set during installation> $ export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH $ export SHLIB_PATH=$ORACLE_HOME/lib:$SHLIB_PATH $ export LIBPATH=$ORACLE_HOME/lib:$LIBPATH
注意: 如果设置了 ORA_TZFILE 环境变量,需要删掉这个环境变量。
$ orabase
/uo1/app/oracle
/etc/orata b的一个例子
#orcl:/opt/oracle/product/10.2/db_1:N orcl:/opt/oracle/product/11.2/db_1:N
[oracle@localhost ~]$ . oraenv
ORACLE_SID = [orcl] ? orcl The Oracle base for ORACLE_HOME=/opt/oracle/product/11.2/db_1 is /u01/app/oracle [oracle@localhost ~]$
第27a步
$ cd $ORACLE_HOME/rdbms/admin
$ sqlplus "/ as sysdba" SQL> startup UPGRADE
SQL> CREATE TABLESPACE SYSAUX
DATAFILE '<location>/sysaux01.dbf' SIZE 500M REUSE EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ONLINE;
SQL> set echo on
SQL> SPOOL upgrade.log SQL> @catupgrd.sql SQL> spool off
$ sqlplus "/as sysdba"
SQL> STARTUP SQL> @utlu112s.sql
SQL> @catuppst.sql
SQL> @utlrp.sql
Note 556610.1 Script to Collect DB Upgrade/Migrate Diagnostic Information (dbupgdiag.sql)
lsnrctl start
SID:ORACLE_HOME:Y
比如: orcl:/opt/oracle/product/11.2/db_1:Y
SQL> conn / as sysdba
Connected. SQL>SELECT version FROM v$timezone_file; VERSION ---------- 4
注意:
* 在 11gR2 里使用低版本的 DST 是支持的,但是从技术角度讲,没有必要使用低版本的 DST。 所以我们强烈推荐升级到 11gR2 版本里自带的最高版本的 DST。 * 或者我们还可以升级到当前最高版本的 DST, 您可以从下面的文档找到当前最高版本的 DST: Note 412160.1 : Updated DST transitions and new Time Zones in Oracle Time Zone File patch
EXECUTE DBMS_STATS.UPGRADE_STAT_TABLE('SYS','dictstattab');
ORACLE_HOME/rdbms/bin/extusrupgrade --dbconnectstring
<hostname:port_no:sid> --dbuser <db admin> --dbuserpassword <password> -a
Note 453903.1 - Enabling and Disabling Oracle Database Vault in UNIX
Note 453902.1 - Enabling and Disabling Oracle Database Vault in WINDOWS
DECLARE
acl_path VARCHAR2(4000); BEGIN SELECT acl INTO acl_path FROM dba_network_acls WHERE host = 'host_name' AND lower_port IS NULL AND upper_port IS NULL; IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(acl_path,'principal','privilege') IS NULL THEN DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(acl_path,'principal', is_grant, 'privilege'); END IF; EXCEPTION WHEN no_data_found THEN DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('ACL_name.xml','ACL description', 'principal', is_grant, 'privilege'); DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('ACL_name.xml','host_name'); END; COMMIT;
Note 453786.1 ORA-24247 When Executing UTL_HTTP UTL_INADDR Packages
从 pfile 创建 spfile。
SQL> create spfile from pfile;
SQL> SELECT username, account_status FROM dba_users ORDER BY username;
SQL> ALTER USER username PASSWORD EXPIRE ACCOUNT LOCK;
1. 对于 User Extended Knowledge Base 文件,检查
$ORACLE_HOME/ctx/admin/ctxf102.txt 2. 使用数据库拥护 SYS,SYSTEM 或者 CTXSYS 执行下面的脚本 $ORACLE_HOME/ctx/admin/ctxf102.sql
Note 300172.1 Obsolescence of KOREAN_LEXER Lexer Type
Note 1354793.1 Oracle Text 11.2.0.3 Support Note for Lexer Feature Updates
Note 1319592.1 Upgrading Oracle Text Post 10.2.0.4 To 11.2.0.2 Upgrade
emca -upgrade (db | asm | db_asm) [-cluster] [-silent] [parameters]
TDE (Transparent Data Encryption) 如果你使用了 TDE (Transparent Data Encryption)技术,那么需要重新键入 master key:
SQL> alter system set encryption key identified by "<wallet password>";
对于其它信息请您参照文档 Note 1260584.1 : Ora-28374 After Migration From 10.2.0.4 To 11.2.0.1。 第42步 收集 Fixed Object 统计信息 请在升级后两周后收集 fixed objects 统计信息: It would to good to gather the statistic during non-peak hours 其它有用的升级文档: Note 1561791.2 Upgrade / Downgrade Assistant: Oracle Database/Client
Step 43 在升级到11.2.0.4时,如果compatiblity设置的小于11,那么需要额外的步骤去手工实施bug 14373728的补丁 修订历史: 03-Sep-2009 Article Created 27-Oct-2009 Changed Indirect upgrade table value from 9.2.0.3(or lower) to 9.2.0.7(or lower) 27-Oct-2009 Check the certification of the 11g R2 with you platform before installing the software 29-OCt-2009 Note in step 32 参考NOTE:453903.1 - 10g DB : Enabling and Disabling Oracle Database Vault in UNIXNOTE:560336.1 - Script that Checks for Schemas Containing Stale Statistics NOTE:560980.1 - Unable to Display Ultra Search Administration Page on 11gR1 BUG:8937877 - CORE_DUMP_DEST IS NOT MARKED AS DEPRECATED PARAMETER NOTE:67695.1 - PROCEDURE DBMS_JOB.BROKEN Specification NOTE:73408.1 - How to Truncate, Delete, or Purge Rows from the Audit Trail Table AUD$ NOTE:815679.1 - Actions For DST Updates When Upgrading To 11.2.0.1 Base Release NOTE:1201253.1 - Actions For DST Updates When Upgrading To Or Applying The 11.2.0.2 Patchset NOTE:414590.1 - Time Zone IDs for 7 Time Zones Changed in Time Zone Files Version 3 and Higher, Possible ORA-1882 After Upgrade NOTE:1260584.1 - Ora-28374 After Migration To 11.2.0.x from earlier releases 10gR2 or 11gR1 NOTE:404238.1 - How to Disable an Entry from DBMS_SCHEDULER NOTE:1319592.1 - Where to find ctxf102.txt and ctxf102.sql scripts for Post-Upgrade steps from 10gR2 to 11gR2 NOTE:453902.1 - How To Enable And/Or Disable Oracle Database Vault on Windows machines NOTE:753736.1 - Quick Reference to RDBMS Database Patchset And PSU Patch Numbers NOTE:1442457.1 - During 11g Upgrade, Mview refresh warning NOTE:1329590.1 - How to Pre-Process SYS.AUD$ Records Pre-Upgrade From 10.1 or later to 11.2.0.1 or later to Avoid Hungs/Slow While Running catupgrd.sql ? NOTE:1335741.1 - How To Stop A Running Job Using DBMS_JOB NOTE:388604.1 - ORA-00201 while downgrading from 10gR2 to 10gR1 or 9iR2 NOTE:1320966.1 - Things to Consider to Avoid Poor Performance or Wrong Results on 11.2.0.2 NOTE:884522.1 - How to Download and Run Oracle's Database Pre-Upgrade Utility NOTE:1354793.1 - Oracle Text 11.2.0.3 and 11.2.0.4 Support Note for Lexer Feature Updates NOTE:977512.1 - Updating the RDBMS DST version in 11g Release 2 (11.2.0.1 and up) using DBMS_DST NOTE:359145.1 - Impact of 2007 USA daylight saving changes on the Oracle database NOTE:562980.1 - DB Control 11g: emdwgrd core dumps : emdwgrd[228]: 10366 Memory fault(coredump) NOTE:276914.1 - The National Character Set ( NLS_NCHAR_CHARACTERSET ) in Oracle 9i, 10g , 11g and 12c NOTE:1305561.1 - While Upgrading From 10.2.0.4.0 To 11.2.0.2.0 Catupgrd.sql=ORA-31061 ORA-19202 LSX-23 NOTE:971222.1 - Do I Need To Disable The GoldenGate DDL Trigger Before An Oracle DB Upgrade or PSU patching? BUG:13646689 - SQL PROFILES LOST AFTER UPGRADE: ORA-1 NOTE:979942.1 - Database Upgrade Appears To Have Halted At SYS.AUD$ Table NOTE:454442.1 - 11g Install : Understanding Oracle Base, Oracle Home and Oracle Central/Global Inventory locations BUG:10419629 - HL7 SPL : INVALID LSX-00020: UNKNOWN TYPE "NOINFORMATION" ON INSERT NOTE:453786.1 - ORA-24247 When Executing UTL_HTTP UTL_INADDR Packages NOTE:1127179.1 - ORA-07445 [qmkmgetConfig()+52] During Catupgrd.sql (11.2.0.1) NOTE:412160.1 - Updated DST Transitions and New Time Zones in Oracle RDBMS and OJVM Time Zone File Patches NOTE:745407.1 - What Roles Can Be Set as Default for a User? NOTE:1537496.1 - How to Manually Enable the Patch for Bug:14373728 on Oracle 11g Release 11.2.0.4 NOTE:300172.1 - Obsolescence of KOREAN_LEXER Lexer Type NOTE:1358166.1 - Actions For DST Updates When Upgrading To Or Applying The 11.2.0.3 Patchset NOTE:556610.1 - Script to Collect DB Upgrade/Migrate Diagnostic Information (dbupgdiag.sql) NOTE:870877.1 - How To Save Oracle Enterprise Manager Database Control Data Before Upgrading The Single Instance Database To Other Release NOTE:209355.1 - ORA-30657: Using ANALYZE TABLE for Statistics for an External Table NOTE:438049.1 - How To Find RDBMS patchsets on My Oracle Support |
mos_升级 1674333.1
最新推荐文章于 2024-03-12 14:57:27 发布
本文提供了手动将Oracle数据库升级至11g R2版本的完整核对清单,包括升级前的准备工作、具体步骤及升级后的配置调整等内容。


447

被折叠的 条评论
为什么被折叠?



