SlideShare a Scribd company logo
1 of 8
Download to read offline
Oracle 数据库升级前必要
      的准备工作




     by Maclean.liu
           liu.maclean@gmail.com
       www.oracledatabase12g.com
About Me

l Email:liu.maclean@gmail.com
l Blog:www.oracledatabase12g.com
l Oracle Certified Database Administrator Master 10g
and 11g
l Over 6 years experience with Oracle DBA technology
l Over 7 years experience with Linux technology
l Member Independent Oracle Users Group
l Member All China Users Group
l Presents for advanced Oracle topics: RAC,
DataGuard, Performance Tuning and Oracle Internal.
Oracle 数据库升级向来是一门纷繁复杂的工程,DBA 需要为产品数据库的升级耗费大量时间精力在准备工作上;
因为其升级复杂度高,所以即便做了较为充分的准备仍可能在升级过程中遇到意想不到的问题,为了更高效地完
成升级任务和减少停机时间,我们有必要为升级工作营造一种”舒适的”防御式的数据库”氛围”:
1.为了保障升级后的数据库性能,我们有必要在升级前有效地收集数据库的性能统计信息,以便升级后若发生性
能问题可以做出对比:

   • 为了保证性能统计信息真实有效,有必要在数据库升级前的一个月即开展收集工作

   • 收集的性能统计信息应当尽可能的精确真实

   • 在 Oracle 8i/9i 中使用 Statspack 性能报表,将快照级别设置为 6 或更高,设置快照间隔为 30 分钟,
      在具体升级前将 perfstat 用户使用 exp 工具导出,参考 Metalink 文档 Note:466350.1 介绍了若何
      对比升级前后的 Statspack 快照

   • 在 Oracle 10g/11g 中使用 AWR 自动负载仓库性能报告,保证采集 30 天左右的快照,快照间隔最好为
      30-60 分钟;之后可以使用 dbms_swrf_internal.awr_extract 存储过程将 AWR 导出到 dumpfile 文
      件,在升级完成后载入这部分 AWR 信息,并可以使用
      DBMS_WORKLOAD_REPOSITORY.AWR_DIFF_REPORT_HTML 函数对比升级前后的性能




2.正式升级前的防御性措施:



   • 过多的审计信息可能会导致升级速度下降,可以在升级前将审计数据导出,并清理审计字典基表:



截断 SYS.AUD$基表:
SQL>TRUNCATE TABLE SYS.AUD$;




   • 同样的有必要清理 10g 后出现的回收站:



清理 DBA 回收站:
SQL>purge DBA_RECYCLEBIN;
• 移除一些”过期”的参数,设置这些参数的原因很有可能是为了修正原版本上的一些问题,例如我们都会
      做的设置 event 参数;但在新版本中这些参数是否仍有必要设置是一个值得讨论的问题,当然你完全可
      以就此事去提交一个 SR:




这些"过期"参数可能包括:过老的如
optimizer_features_enable=8.1.7.4,_always_semi_join=off,_unnest_subquery=false
或者 event = "10061 trace name context forever, level 10",如此之类等等。




   • 为数据库中的数据字典收集统计信息:



在 Oracle 9i 中可以执行以下过程收集数据字典统计信息,
SQL> exec DBMS_STATS.GATHER_SCHEMA_STATS

  ('SYS', options => 'GATHER',estimate_percent =>

   DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt => 'FOR

   ALL COLUMNS SIZE AUTO', cascade => TRUE);


在 Oracle10g/11g 中收集字典统计信息可以由 GATHER_DICTIONARY_STATS 存储过程来完成:
SQL> exec DBMS_STATS.GATHER_DICTIONARY_STATS;




   • 为策万全,我们有必要为回退数据库升级任务做好准备,10g 以前只能通过备份恢复来完成,10g 以后
      我们可以利用闪回数据库的还原点特性来回退数据库,但需要注意以下几点:




          •   利用还原点要求数据库处于归档且打开 flashback database 的模式下
          •   在特性仅在版本 10.2 之后可用
          •   必须保证闪回回复区 flashback recovery area 有足够的磁盘空间
          •   注意在升级后不要立即修改 compatible 参数,restore point 无法跨越 compatible 工作



/* 首先我们在正式升级前创建一个有效的保证闪回数据库的还原点 */


SQL> create restore point pre11gupgrd guarantee flashback database;
Restore point created.


/* 确认以上 4 个注意后,我们可以大胆放心地实施升级工作了 */
SQL> shutdown immediate;
..............
SQL> @?/rdbms/admin/catupgrd.sql
.............
upgrade failed


/* 在升级过程中出现了不可绕过的错误时,我们可能不得不回退数据库到还原点,也就是升级前*/


/* 关闭实例后,还原环境到 10g 下 */


SQL> startup mount;


/* 正式闪回到还原点 pre11gupgrd */
SQL> flashback database to restore point pre11gupgrd;
Flashback complete.


SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open


SQL>    alter database open resetlogs;


/* 以 resetlogs 打开数据库 */


/* 之后有必要删除这一个还原点 */
SQL> select * from v$restore_point;


      SCN DATABASE_INCARNATION# GUA STORAGE_SIZE
---------- --------------------- --- ------------
TIME
---------------------------------------------------------------------------
NAME
--------------------------------------------------------------------------------

    5081633                    3 YES     15941632
08-FEB-11 08.20.33.000000000 PM
PRE11GUPGRD


SQL> drop restore point pre11gupgrd;
Restore point dropped.
• 下载最新版本的预升级检查脚本(pre-upgrade check script),如 utlu102i.sql / utlu111i.sql /
         utlu112i.sql;Metalink 文档 Note:884522.1 <How to Download and Run Oracle’s Database
         Pre-Upgrade Utility> 指出了各版本 utluxxx 脚本的下载地址




/* 将升级信息 spool 到日志文件中 */
SQL> SPOOL /tmp/UPGRADE/utlu112i.log
SQL> @/tmp/UPGRADE/utlu112i.sql




      • 需要关注 SYS 和 SYSTEM 用户模式下的失效对象,有必要在升级前修复所有的失效对象:



SELECT UNIQUE object_name, object_type, owner

    FROM dba_objects

WHERE status = 'INVALID';




      • 在升级完成后推荐执行 utlrp.sql 脚本以重新编译(Recompile)对象,从 11.1.0.7 开始升级前后的失效
         对象将自动对比,执行?/rdbms/admin/utluiobj.sql 脚本可以列出对比信息,同时基表
         registry$sys_inv_objs 和 registry$nonsys_inv_objs 分别列出了数据库中失效的 sys 或非 sys 对
         象:




SQL> select * from v$version;


BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE      11.2.0.1.0      Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production


SQL> @?/rdbms/admin/utluiobj.sql
.
Oracle Database 11.1 Post-Upgrade Invalid Objects Tool 02-08-2011 22:23:22
.
This tool lists post-upgrade invalid objects that were not invalid
prior to upgrade (it ignores pre-existing pre-upgrade invalid objects).
.
Owner                     Object Name                       Object Type
.
SH            FWEEK_PSCAT_SALES_MV                 MATERIALIZED VIEW


PL/SQL procedure successfully completed.




3.解决升级过程中失效的组件(component)

     • 确保该部分组件确实被 link 到目前的 Oracle 软件 2 进制可执行文件或库文件中

     • 如果确认不会用到某些组件(component),想要通过手动彻底移除这部分组件(亦或者希望 reinstall 重
        新安装这部分组件),那么可以参考以下文档:




Note:472937.1 Information On Installed Database Components/Schemas
Note.300056.1 Debug and Validate Invalid Objects
Note:753041.1 How to diagnose Components with NON VALID status
Note.733667.1 How to Determine if XDB is Being Used in the Database?


组件升级失败实例 1:数据库从 10.2 升级到 11.2,在 10g 的环境中 Database Vault 组件已经安装,
Database Vault 组件在升级 relink 前被 turned off,在升级到 11.2 的过程中 XDB 组件升级失败;
其原因在于安装或切换 Database Vault 将使得 XDB 组件失效,或者由 Bug 8942758 引起。
解决方案是在升级前执行 utlrp.sql 脚本重新编译失效对象和组件,在此例中执行 utlrp.sql 可以使 XDB 组件
valid.


组件升级失败实例 2:数据库从 10.2.0.4 升级到 11.1.0.7,在升级过程中"ORACLE SERVER"组件失效;
其原因在于 DMBS_SQLPA 包引用了某个不存在的列,该问题可以参考 metalink 文档 782735.1 和
Notes:605317.1/736353.1。
有效的解决方案是:
1.在升级前将 SYS.PLAN_TABLE$基表或者同义词 PUBLIC.PLAN_TABLE DROP 掉
2.若已执行了升级操作并遭遇了该问题,那么可以使用以下手段修复该问题:
@catplan.sql -- recreate the plan table
@dbmsxpln.sql -- reload dbms_xplan spec
@prvtxpln.plb -- reload dbms_xplan implementation
@prvtspao.plb -- reload dbms_sqlpa
alter package SYS.DBMS_SUMADVISOR compile ;
alter package SYS.DBMS_SUMADVISOR compile body;




4. 使用例如 AIX 上的 slibclean 等命令清理操作系统环境,在少数专有平台上不清理载入的共享库文件可能导致升
级失败




5.在执行 catupgrd.sql 脚本正式升级前打开 sqlplus 的 echo 输出,将升级过程中所有的输出信息转储到日志文件
中:



SQL> set echo on


SQL> SPOOL /tmp/upgrade.log


SQL> @catupgrd.sql
SQL> spool off




DBUA 图形化升级工具默认使用 spool 和”echo”输出,这些日志可以在
$ORACLE_HOME/cfgtoollogs/dbua//upgrade/目录下找到。




© 2011, www.oracledatabase12g.com. 版权所有.文章允许转载,但必须以链接方式注明源地址,否则追求法律责
任.

More Related Content

What's hot

Install Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 LInstall Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 L
heima911
 
为10g rac cluster添加节点
为10g rac cluster添加节点为10g rac cluster添加节点
为10g rac cluster添加节点
maclean liu
 
Sql Cluster Tech Net 0401(Pm)
Sql Cluster Tech Net 0401(Pm)Sql Cluster Tech Net 0401(Pm)
Sql Cluster Tech Net 0401(Pm)
bigqiang zou
 
Liferay环境搭建
Liferay环境搭建Liferay环境搭建
Liferay环境搭建
donotbeevil
 
数据库性能诊断的七种武器
数据库性能诊断的七种武器数据库性能诊断的七种武器
数据库性能诊断的七种武器
Leyi (Kamus) Zhang
 
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
acqua young
 
Cassandra的初步使用及一些简单的操作
Cassandra的初步使用及一些简单的操作Cassandra的初步使用及一些简单的操作
Cassandra的初步使用及一些简单的操作
zhubin885
 
了解真实的Oracle unbreakable database appliance
了解真实的Oracle unbreakable database appliance了解真实的Oracle unbreakable database appliance
了解真实的Oracle unbreakable database appliance
maclean liu
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
weige
 
Am备份恢复文档
Am备份恢复文档Am备份恢复文档
Am备份恢复文档
miglinda
 

What's hot (20)

Install Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 LInstall Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 L
 
Orclrecove 1 pd-prm-dul testing for oracle database recovery_20141030_biot_wang
Orclrecove 1 pd-prm-dul testing for oracle database recovery_20141030_biot_wangOrclrecove 1 pd-prm-dul testing for oracle database recovery_20141030_biot_wang
Orclrecove 1 pd-prm-dul testing for oracle database recovery_20141030_biot_wang
 
Memcached内存分析、调优、集群
Memcached内存分析、调优、集群Memcached内存分析、调优、集群
Memcached内存分析、调优、集群
 
Oracle10g Rac Configuration For Linux X86
Oracle10g Rac Configuration For Linux X86Oracle10g Rac Configuration For Linux X86
Oracle10g Rac Configuration For Linux X86
 
Asm+aix
Asm+aixAsm+aix
Asm+aix
 
为10g rac cluster添加节点
为10g rac cluster添加节点为10g rac cluster添加节点
为10g rac cluster添加节点
 
Sql Cluster Tech Net 0401(Pm)
Sql Cluster Tech Net 0401(Pm)Sql Cluster Tech Net 0401(Pm)
Sql Cluster Tech Net 0401(Pm)
 
Oracle 資料庫建立
Oracle 資料庫建立Oracle 資料庫建立
Oracle 資料庫建立
 
Liferay环境搭建
Liferay环境搭建Liferay环境搭建
Liferay环境搭建
 
数据库性能诊断的七种武器
数据库性能诊断的七种武器数据库性能诊断的七种武器
数据库性能诊断的七种武器
 
Oracle Tablespace介紹
Oracle Tablespace介紹Oracle Tablespace介紹
Oracle Tablespace介紹
 
Oracle Instance 介紹
Oracle Instance 介紹Oracle Instance 介紹
Oracle Instance 介紹
 
Mysql展示功能与源码对应
Mysql展示功能与源码对应Mysql展示功能与源码对应
Mysql展示功能与源码对应
 
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
 
Cassandra的初步使用及一些简单的操作
Cassandra的初步使用及一些简单的操作Cassandra的初步使用及一些简单的操作
Cassandra的初步使用及一些简单的操作
 
了解真实的Oracle unbreakable database appliance
了解真实的Oracle unbreakable database appliance了解真实的Oracle unbreakable database appliance
了解真实的Oracle unbreakable database appliance
 
TomCat迁移步骤简述以及案例
TomCat迁移步骤简述以及案例TomCat迁移步骤简述以及案例
TomCat迁移步骤简述以及案例
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
Am备份恢复文档
Am备份恢复文档Am备份恢复文档
Am备份恢复文档
 
06.web sphere培训 实践
06.web sphere培训 实践06.web sphere培训 实践
06.web sphere培训 实践
 

Viewers also liked

Upgrade 11.2.0.1 rac db to 11.2.0.2 in linux
Upgrade 11.2.0.1 rac db to 11.2.0.2 in linuxUpgrade 11.2.0.1 rac db to 11.2.0.2 in linux
Upgrade 11.2.0.1 rac db to 11.2.0.2 in linux
maclean liu
 
Upgrade 11.2.0.1 gi crs to 11.2.0.2 in linux
Upgrade 11.2.0.1 gi crs to 11.2.0.2 in linuxUpgrade 11.2.0.1 gi crs to 11.2.0.2 in linux
Upgrade 11.2.0.1 gi crs to 11.2.0.2 in linux
maclean liu
 
了解Oracle rac brain split resolution
了解Oracle rac brain split resolution了解Oracle rac brain split resolution
了解Oracle rac brain split resolution
maclean liu
 
Экспедиция X-territory (ноябр, 2010)
Экспедиция X-territory (ноябр, 2010)Экспедиция X-territory (ноябр, 2010)
Экспедиция X-territory (ноябр, 2010)
Eleonor Fedorey
 
Final presentation wellness
Final presentation wellnessFinal presentation wellness
Final presentation wellness
xjennabennax416
 
TripAdvisor online policy primer
TripAdvisor online policy primerTripAdvisor online policy primer
TripAdvisor online policy primer
leannex
 
Expo wc organiser
Expo wc organiserExpo wc organiser
Expo wc organiser
laurenztack
 
Permen tahun2013 nomor81a_lampiran4
Permen tahun2013 nomor81a_lampiran4Permen tahun2013 nomor81a_lampiran4
Permen tahun2013 nomor81a_lampiran4
Irma Muthiara Sari
 
Social media pres
Social media presSocial media pres
Social media pres
dannimooka
 
Uvr emissions from solaria in australia gies
Uvr emissions from solaria in australia giesUvr emissions from solaria in australia gies
Uvr emissions from solaria in australia gies
Leishman Associates
 
Keeping radiation management at beverley uranium mine at best practice woods
Keeping radiation management at beverley uranium mine at best practice  woodsKeeping radiation management at beverley uranium mine at best practice  woods
Keeping radiation management at beverley uranium mine at best practice woods
Leishman Associates
 

Viewers also liked (20)

Upgrade 11.2.0.1 rac db to 11.2.0.2 in linux
Upgrade 11.2.0.1 rac db to 11.2.0.2 in linuxUpgrade 11.2.0.1 rac db to 11.2.0.2 in linux
Upgrade 11.2.0.1 rac db to 11.2.0.2 in linux
 
Upgrade 11.2.0.1 gi crs to 11.2.0.2 in linux
Upgrade 11.2.0.1 gi crs to 11.2.0.2 in linuxUpgrade 11.2.0.1 gi crs to 11.2.0.2 in linux
Upgrade 11.2.0.1 gi crs to 11.2.0.2 in linux
 
了解Oracle rac brain split resolution
了解Oracle rac brain split resolution了解Oracle rac brain split resolution
了解Oracle rac brain split resolution
 
LavaCon 2015: CFP - Modeling Your Content using BPMN
LavaCon 2015: CFP -  Modeling Your Content using BPMNLavaCon 2015: CFP -  Modeling Your Content using BPMN
LavaCon 2015: CFP - Modeling Your Content using BPMN
 
Primo semestre
Primo semestrePrimo semestre
Primo semestre
 
Legionnaires Disease
Legionnaires DiseaseLegionnaires Disease
Legionnaires Disease
 
Tbo
TboTbo
Tbo
 
The New Face of Social Media Marketing
The New Face of Social Media Marketing The New Face of Social Media Marketing
The New Face of Social Media Marketing
 
Экспедиция X-territory (ноябр, 2010)
Экспедиция X-territory (ноябр, 2010)Экспедиция X-territory (ноябр, 2010)
Экспедиция X-territory (ноябр, 2010)
 
Final presentation wellness
Final presentation wellnessFinal presentation wellness
Final presentation wellness
 
TripAdvisor online policy primer
TripAdvisor online policy primerTripAdvisor online policy primer
TripAdvisor online policy primer
 
Expo wc organiser
Expo wc organiserExpo wc organiser
Expo wc organiser
 
Permen tahun2013 nomor81a_lampiran4
Permen tahun2013 nomor81a_lampiran4Permen tahun2013 nomor81a_lampiran4
Permen tahun2013 nomor81a_lampiran4
 
Social media pres
Social media presSocial media pres
Social media pres
 
Asymmetric Volatility
Asymmetric VolatilityAsymmetric Volatility
Asymmetric Volatility
 
Muffin again
Muffin againMuffin again
Muffin again
 
MADD
MADDMADD
MADD
 
Uvr emissions from solaria in australia gies
Uvr emissions from solaria in australia giesUvr emissions from solaria in australia gies
Uvr emissions from solaria in australia gies
 
Keeping radiation management at beverley uranium mine at best practice woods
Keeping radiation management at beverley uranium mine at best practice  woodsKeeping radiation management at beverley uranium mine at best practice  woods
Keeping radiation management at beverley uranium mine at best practice woods
 
Melide
MelideMelide
Melide
 

Similar to Oracle数据库升级前必要的准备工作

Oracle数据库体系结构简介.ppt
Oracle数据库体系结构简介.pptOracle数据库体系结构简介.ppt
Oracle数据库体系结构简介.ppt
james tong
 
Itpub电子杂志(第五期)
Itpub电子杂志(第五期)Itpub电子杂志(第五期)
Itpub电子杂志(第五期)
yiditushe
 
Oracle北大青鸟完全教程
Oracle北大青鸟完全教程Oracle北大青鸟完全教程
Oracle北大青鸟完全教程
yiditushe
 
11g r2新特性之standby max_data_delay
11g r2新特性之standby max_data_delay11g r2新特性之standby max_data_delay
11g r2新特性之standby max_data_delay
maclean liu
 
Essential oracle security internal for dba
Essential oracle security internal for dbaEssential oracle security internal for dba
Essential oracle security internal for dba
maclean liu
 
Times Ten Training
Times Ten TrainingTimes Ten Training
Times Ten Training
Li Chen
 
如何架构和开发高性能,高伸缩性Web 应用系统
如何架构和开发高性能,高伸缩性Web 应用系统如何架构和开发高性能,高伸缩性Web 应用系统
如何架构和开发高性能,高伸缩性Web 应用系统
melity78
 
资身Dba经验谈
资身Dba经验谈资身Dba经验谈
资身Dba经验谈
yiditushe
 
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计
YANGL *
 
Basic oracle for developer&beginner
Basic oracle for developer&beginnerBasic oracle for developer&beginner
Basic oracle for developer&beginner
maclean liu
 
A.oracle 查询结果的缓存问题
A.oracle 查询结果的缓存问题A.oracle 查询结果的缓存问题
A.oracle 查询结果的缓存问题
WASecurity
 

Similar to Oracle数据库升级前必要的准备工作 (20)

Oracle数据库体系结构简介.ppt
Oracle数据库体系结构简介.pptOracle数据库体系结构简介.ppt
Oracle数据库体系结构简介.ppt
 
Itpub电子杂志(第五期)
Itpub电子杂志(第五期)Itpub电子杂志(第五期)
Itpub电子杂志(第五期)
 
1, OCP - architecture intro
1, OCP - architecture intro1, OCP - architecture intro
1, OCP - architecture intro
 
7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery
 
Oracle北大青鸟完全教程
Oracle北大青鸟完全教程Oracle北大青鸟完全教程
Oracle北大青鸟完全教程
 
Oracle sql developer支持第三方数据库
Oracle  sql developer支持第三方数据库Oracle  sql developer支持第三方数据库
Oracle sql developer支持第三方数据库
 
SQL Server 資料庫版本控管
SQL Server 資料庫版本控管SQL Server 資料庫版本控管
SQL Server 資料庫版本控管
 
11g r2新特性之standby max_data_delay
11g r2新特性之standby max_data_delay11g r2新特性之standby max_data_delay
11g r2新特性之standby max_data_delay
 
Essential oracle security internal for dba
Essential oracle security internal for dbaEssential oracle security internal for dba
Essential oracle security internal for dba
 
9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rman9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rman
 
12, OCP - performance tuning
12, OCP - performance tuning12, OCP - performance tuning
12, OCP - performance tuning
 
Times Ten Training
Times Ten TrainingTimes Ten Training
Times Ten Training
 
如何架构和开发高性能,高伸缩性Web 应用系统
如何架构和开发高性能,高伸缩性Web 应用系统如何架构和开发高性能,高伸缩性Web 应用系统
如何架构和开发高性能,高伸缩性Web 应用系统
 
资身Dba经验谈
资身Dba经验谈资身Dba经验谈
资身Dba经验谈
 
2, OCP - installing and creating a database
2, OCP - installing and creating a database2, OCP - installing and creating a database
2, OCP - installing and creating a database
 
Vulkan introduction
Vulkan introductionVulkan introduction
Vulkan introduction
 
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计
 
Basic oracle for developer&beginner
Basic oracle for developer&beginnerBasic oracle for developer&beginner
Basic oracle for developer&beginner
 
A.oracle 查询结果的缓存问题
A.oracle 查询结果的缓存问题A.oracle 查询结果的缓存问题
A.oracle 查询结果的缓存问题
 
3, OCP - instance management
3, OCP - instance management3, OCP - instance management
3, OCP - instance management
 

More from maclean liu

基于Oracle 12c data guard & far sync的低资源消耗两地三数据中心容灾方案
基于Oracle 12c data guard & far sync的低资源消耗两地三数据中心容灾方案基于Oracle 12c data guard & far sync的低资源消耗两地三数据中心容灾方案
基于Oracle 12c data guard & far sync的低资源消耗两地三数据中心容灾方案
maclean liu
 
Shoug at apouc2015 4min pitch_biotwang_v2
Shoug at apouc2015 4min pitch_biotwang_v2Shoug at apouc2015 4min pitch_biotwang_v2
Shoug at apouc2015 4min pitch_biotwang_v2
maclean liu
 
Apouc 4min pitch_biotwang_v2
Apouc 4min pitch_biotwang_v2Apouc 4min pitch_biotwang_v2
Apouc 4min pitch_biotwang_v2
maclean liu
 
使用Oracle osw analyzer工具分析oswbb日志,并绘制系统性能走势图1
使用Oracle osw analyzer工具分析oswbb日志,并绘制系统性能走势图1使用Oracle osw analyzer工具分析oswbb日志,并绘制系统性能走势图1
使用Oracle osw analyzer工具分析oswbb日志,并绘制系统性能走势图1
maclean liu
 
Oracle prm安装说明
Oracle prm安装说明Oracle prm安装说明
Oracle prm安装说明
maclean liu
 
诗檀软件 Oracle数据块损坏知识
诗檀软件 Oracle数据块损坏知识诗檀软件 Oracle数据块损坏知识
诗檀软件 Oracle数据块损坏知识
maclean liu
 
Oracle prm数据库恢复工具与asm
Oracle prm数据库恢复工具与asmOracle prm数据库恢复工具与asm
Oracle prm数据库恢复工具与asm
maclean liu
 

More from maclean liu (20)

Oracle専用データ復旧ソフトウェアprm dulユーザーズ・マニュアル
Oracle専用データ復旧ソフトウェアprm dulユーザーズ・マニュアルOracle専用データ復旧ソフトウェアprm dulユーザーズ・マニュアル
Oracle専用データ復旧ソフトウェアprm dulユーザーズ・マニュアル
 
基于Oracle 12c data guard & far sync的低资源消耗两地三数据中心容灾方案
基于Oracle 12c data guard & far sync的低资源消耗两地三数据中心容灾方案基于Oracle 12c data guard & far sync的低资源消耗两地三数据中心容灾方案
基于Oracle 12c data guard & far sync的低资源消耗两地三数据中心容灾方案
 
PRM DUL Oracle Database Health Check
PRM DUL Oracle Database Health CheckPRM DUL Oracle Database Health Check
PRM DUL Oracle Database Health Check
 
Vbox virtual box在oracle linux 5 - shoug 梁洪响
Vbox virtual box在oracle linux 5 - shoug 梁洪响Vbox virtual box在oracle linux 5 - shoug 梁洪响
Vbox virtual box在oracle linux 5 - shoug 梁洪响
 
【诗檀软件】Mysql高可用方案
【诗檀软件】Mysql高可用方案【诗檀软件】Mysql高可用方案
【诗檀软件】Mysql高可用方案
 
Shoug at apouc2015 4min pitch_biotwang_v2
Shoug at apouc2015 4min pitch_biotwang_v2Shoug at apouc2015 4min pitch_biotwang_v2
Shoug at apouc2015 4min pitch_biotwang_v2
 
Apouc 4min pitch_biotwang_v2
Apouc 4min pitch_biotwang_v2Apouc 4min pitch_biotwang_v2
Apouc 4min pitch_biotwang_v2
 
使用Oracle osw analyzer工具分析oswbb日志,并绘制系统性能走势图1
使用Oracle osw analyzer工具分析oswbb日志,并绘制系统性能走势图1使用Oracle osw analyzer工具分析oswbb日志,并绘制系统性能走势图1
使用Oracle osw analyzer工具分析oswbb日志,并绘制系统性能走势图1
 
诗檀软件 Oracle开发优化基础
诗檀软件 Oracle开发优化基础 诗檀软件 Oracle开发优化基础
诗檀软件 Oracle开发优化基础
 
诗檀软件 – Oracle数据库修复专家 oracle数据块损坏知识2014-10-24
诗檀软件 – Oracle数据库修复专家 oracle数据块损坏知识2014-10-24诗檀软件 – Oracle数据库修复专家 oracle数据块损坏知识2014-10-24
诗檀软件 – Oracle数据库修复专家 oracle数据块损坏知识2014-10-24
 
追求Jdbc on oracle最佳性能?如何才好?
追求Jdbc on oracle最佳性能?如何才好?追求Jdbc on oracle最佳性能?如何才好?
追求Jdbc on oracle最佳性能?如何才好?
 
使用Virtual box在oracle linux 5.7上安装oracle database 11g release 2 rac的最佳实践
使用Virtual box在oracle linux 5.7上安装oracle database 11g release 2 rac的最佳实践使用Virtual box在oracle linux 5.7上安装oracle database 11g release 2 rac的最佳实践
使用Virtual box在oracle linux 5.7上安装oracle database 11g release 2 rac的最佳实践
 
Prm dul is an oracle database recovery tool database
Prm dul is an oracle database recovery tool   databasePrm dul is an oracle database recovery tool   database
Prm dul is an oracle database recovery tool database
 
Oracle prm dul, jvm and os
Oracle prm dul, jvm and osOracle prm dul, jvm and os
Oracle prm dul, jvm and os
 
Oracle dba必备技能 使用os watcher工具监控系统性能负载
Oracle dba必备技能   使用os watcher工具监控系统性能负载Oracle dba必备技能   使用os watcher工具监控系统性能负载
Oracle dba必备技能 使用os watcher工具监控系统性能负载
 
Parnassus data recovery manager for oracle database user guide v0.3
Parnassus data recovery manager for oracle database user guide v0.3Parnassus data recovery manager for oracle database user guide v0.3
Parnassus data recovery manager for oracle database user guide v0.3
 
Oracle prm安装说明
Oracle prm安装说明Oracle prm安装说明
Oracle prm安装说明
 
诗檀软件 Oracle数据块损坏知识
诗檀软件 Oracle数据块损坏知识诗檀软件 Oracle数据块损坏知识
诗檀软件 Oracle数据块损坏知识
 
Oracle prm数据库恢复工具与asm
Oracle prm数据库恢复工具与asmOracle prm数据库恢复工具与asm
Oracle prm数据库恢复工具与asm
 
Prm 一个oracle数据库灾难恢复救护车工具
Prm 一个oracle数据库灾难恢复救护车工具Prm 一个oracle数据库灾难恢复救护车工具
Prm 一个oracle数据库灾难恢复救护车工具
 

Oracle数据库升级前必要的准备工作

  • 1. Oracle 数据库升级前必要 的准备工作 by Maclean.liu liu.maclean@gmail.com www.oracledatabase12g.com
  • 2. About Me l Email:liu.maclean@gmail.com l Blog:www.oracledatabase12g.com l Oracle Certified Database Administrator Master 10g and 11g l Over 6 years experience with Oracle DBA technology l Over 7 years experience with Linux technology l Member Independent Oracle Users Group l Member All China Users Group l Presents for advanced Oracle topics: RAC, DataGuard, Performance Tuning and Oracle Internal.
  • 3. Oracle 数据库升级向来是一门纷繁复杂的工程,DBA 需要为产品数据库的升级耗费大量时间精力在准备工作上; 因为其升级复杂度高,所以即便做了较为充分的准备仍可能在升级过程中遇到意想不到的问题,为了更高效地完 成升级任务和减少停机时间,我们有必要为升级工作营造一种”舒适的”防御式的数据库”氛围”: 1.为了保障升级后的数据库性能,我们有必要在升级前有效地收集数据库的性能统计信息,以便升级后若发生性 能问题可以做出对比: • 为了保证性能统计信息真实有效,有必要在数据库升级前的一个月即开展收集工作 • 收集的性能统计信息应当尽可能的精确真实 • 在 Oracle 8i/9i 中使用 Statspack 性能报表,将快照级别设置为 6 或更高,设置快照间隔为 30 分钟, 在具体升级前将 perfstat 用户使用 exp 工具导出,参考 Metalink 文档 Note:466350.1 介绍了若何 对比升级前后的 Statspack 快照 • 在 Oracle 10g/11g 中使用 AWR 自动负载仓库性能报告,保证采集 30 天左右的快照,快照间隔最好为 30-60 分钟;之后可以使用 dbms_swrf_internal.awr_extract 存储过程将 AWR 导出到 dumpfile 文 件,在升级完成后载入这部分 AWR 信息,并可以使用 DBMS_WORKLOAD_REPOSITORY.AWR_DIFF_REPORT_HTML 函数对比升级前后的性能 2.正式升级前的防御性措施: • 过多的审计信息可能会导致升级速度下降,可以在升级前将审计数据导出,并清理审计字典基表: 截断 SYS.AUD$基表: SQL>TRUNCATE TABLE SYS.AUD$; • 同样的有必要清理 10g 后出现的回收站: 清理 DBA 回收站: SQL>purge DBA_RECYCLEBIN;
  • 4. • 移除一些”过期”的参数,设置这些参数的原因很有可能是为了修正原版本上的一些问题,例如我们都会 做的设置 event 参数;但在新版本中这些参数是否仍有必要设置是一个值得讨论的问题,当然你完全可 以就此事去提交一个 SR: 这些"过期"参数可能包括:过老的如 optimizer_features_enable=8.1.7.4,_always_semi_join=off,_unnest_subquery=false 或者 event = "10061 trace name context forever, level 10",如此之类等等。 • 为数据库中的数据字典收集统计信息: 在 Oracle 9i 中可以执行以下过程收集数据字典统计信息, SQL> exec DBMS_STATS.GATHER_SCHEMA_STATS ('SYS', options => 'GATHER',estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE); 在 Oracle10g/11g 中收集字典统计信息可以由 GATHER_DICTIONARY_STATS 存储过程来完成: SQL> exec DBMS_STATS.GATHER_DICTIONARY_STATS; • 为策万全,我们有必要为回退数据库升级任务做好准备,10g 以前只能通过备份恢复来完成,10g 以后 我们可以利用闪回数据库的还原点特性来回退数据库,但需要注意以下几点: • 利用还原点要求数据库处于归档且打开 flashback database 的模式下 • 在特性仅在版本 10.2 之后可用 • 必须保证闪回回复区 flashback recovery area 有足够的磁盘空间 • 注意在升级后不要立即修改 compatible 参数,restore point 无法跨越 compatible 工作 /* 首先我们在正式升级前创建一个有效的保证闪回数据库的还原点 */ SQL> create restore point pre11gupgrd guarantee flashback database; Restore point created. /* 确认以上 4 个注意后,我们可以大胆放心地实施升级工作了 */ SQL> shutdown immediate; .............. SQL> @?/rdbms/admin/catupgrd.sql
  • 5. ............. upgrade failed /* 在升级过程中出现了不可绕过的错误时,我们可能不得不回退数据库到还原点,也就是升级前*/ /* 关闭实例后,还原环境到 10g 下 */ SQL> startup mount; /* 正式闪回到还原点 pre11gupgrd */ SQL> flashback database to restore point pre11gupgrd; Flashback complete. SQL> alter database open; alter database open * ERROR at line 1: ORA-01589: must use RESETLOGS or NORESETLOGS option for database open SQL> alter database open resetlogs; /* 以 resetlogs 打开数据库 */ /* 之后有必要删除这一个还原点 */ SQL> select * from v$restore_point; SCN DATABASE_INCARNATION# GUA STORAGE_SIZE ---------- --------------------- --- ------------ TIME --------------------------------------------------------------------------- NAME -------------------------------------------------------------------------------- 5081633 3 YES 15941632 08-FEB-11 08.20.33.000000000 PM PRE11GUPGRD SQL> drop restore point pre11gupgrd; Restore point dropped.
  • 6. • 下载最新版本的预升级检查脚本(pre-upgrade check script),如 utlu102i.sql / utlu111i.sql / utlu112i.sql;Metalink 文档 Note:884522.1 <How to Download and Run Oracle’s Database Pre-Upgrade Utility> 指出了各版本 utluxxx 脚本的下载地址 /* 将升级信息 spool 到日志文件中 */ SQL> SPOOL /tmp/UPGRADE/utlu112i.log SQL> @/tmp/UPGRADE/utlu112i.sql • 需要关注 SYS 和 SYSTEM 用户模式下的失效对象,有必要在升级前修复所有的失效对象: SELECT UNIQUE object_name, object_type, owner FROM dba_objects WHERE status = 'INVALID'; • 在升级完成后推荐执行 utlrp.sql 脚本以重新编译(Recompile)对象,从 11.1.0.7 开始升级前后的失效 对象将自动对比,执行?/rdbms/admin/utluiobj.sql 脚本可以列出对比信息,同时基表 registry$sys_inv_objs 和 registry$nonsys_inv_objs 分别列出了数据库中失效的 sys 或非 sys 对 象: SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production PL/SQL Release 11.2.0.1.0 - Production CORE 11.2.0.1.0 Production TNS for Linux: Version 11.2.0.1.0 - Production NLSRTL Version 11.2.0.1.0 - Production SQL> @?/rdbms/admin/utluiobj.sql . Oracle Database 11.1 Post-Upgrade Invalid Objects Tool 02-08-2011 22:23:22
  • 7. . This tool lists post-upgrade invalid objects that were not invalid prior to upgrade (it ignores pre-existing pre-upgrade invalid objects). . Owner Object Name Object Type . SH FWEEK_PSCAT_SALES_MV MATERIALIZED VIEW PL/SQL procedure successfully completed. 3.解决升级过程中失效的组件(component) • 确保该部分组件确实被 link 到目前的 Oracle 软件 2 进制可执行文件或库文件中 • 如果确认不会用到某些组件(component),想要通过手动彻底移除这部分组件(亦或者希望 reinstall 重 新安装这部分组件),那么可以参考以下文档: Note:472937.1 Information On Installed Database Components/Schemas Note.300056.1 Debug and Validate Invalid Objects Note:753041.1 How to diagnose Components with NON VALID status Note.733667.1 How to Determine if XDB is Being Used in the Database? 组件升级失败实例 1:数据库从 10.2 升级到 11.2,在 10g 的环境中 Database Vault 组件已经安装, Database Vault 组件在升级 relink 前被 turned off,在升级到 11.2 的过程中 XDB 组件升级失败; 其原因在于安装或切换 Database Vault 将使得 XDB 组件失效,或者由 Bug 8942758 引起。 解决方案是在升级前执行 utlrp.sql 脚本重新编译失效对象和组件,在此例中执行 utlrp.sql 可以使 XDB 组件 valid. 组件升级失败实例 2:数据库从 10.2.0.4 升级到 11.1.0.7,在升级过程中"ORACLE SERVER"组件失效; 其原因在于 DMBS_SQLPA 包引用了某个不存在的列,该问题可以参考 metalink 文档 782735.1 和 Notes:605317.1/736353.1。 有效的解决方案是: 1.在升级前将 SYS.PLAN_TABLE$基表或者同义词 PUBLIC.PLAN_TABLE DROP 掉 2.若已执行了升级操作并遭遇了该问题,那么可以使用以下手段修复该问题: @catplan.sql -- recreate the plan table @dbmsxpln.sql -- reload dbms_xplan spec @prvtxpln.plb -- reload dbms_xplan implementation @prvtspao.plb -- reload dbms_sqlpa alter package SYS.DBMS_SUMADVISOR compile ;
  • 8. alter package SYS.DBMS_SUMADVISOR compile body; 4. 使用例如 AIX 上的 slibclean 等命令清理操作系统环境,在少数专有平台上不清理载入的共享库文件可能导致升 级失败 5.在执行 catupgrd.sql 脚本正式升级前打开 sqlplus 的 echo 输出,将升级过程中所有的输出信息转储到日志文件 中: SQL> set echo on SQL> SPOOL /tmp/upgrade.log SQL> @catupgrd.sql SQL> spool off DBUA 图形化升级工具默认使用 spool 和”echo”输出,这些日志可以在 $ORACLE_HOME/cfgtoollogs/dbua//upgrade/目录下找到。 © 2011, www.oracledatabase12g.com. 版权所有.文章允许转载,但必须以链接方式注明源地址,否则追求法律责 任.