Chinaunix首页 | 论坛 | 博客
  • 博客访问: 547389
  • 博文数量: 855
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5005
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-16 19:08
文章分类

全部博文(855)

文章存档

2011年(1)

2008年(854)

我的朋友

分类:

2008-10-16 19:10:00

    11gR1提供了捕获生产环境中应用程序的负载,并在环境中重放负载的能力,利用这种技术判断当对系统、数据库或应用程序修改后在性能方面的影响有多大,在本文中,我将描述 11g数据库重放功能如何从当前的生产数据库中(p+0环境)捕获和准备负载,以及如何在一个Oracle 11g环境(作为下一个p+1数据库系统)重放相同的负载,这种技术使Oracle DBA有机会分析和隔离对性能有害的改变。

    这篇文章主要集中讲述如何:

◆从一个Oracle 11g数据库捕获一个真实的负载
◆捕获对应的自动负载仓库(AWR)数据
◆为最后的负载重放准备测试数据库环境
◆传输生产环境配置到测试环境
◆预处理生产负载
◆在测试系统上重放负载
◆分析发现的任何性能问题和分歧

模拟应用程序环境

    本文中关于我的测试环境有一点需要说明:为了简化过程,捕获和重放操作都使用相同的数据库。我使用的是最基本的Oracle 11g种子数据库和默认安装的样本方案。数据库将运行在带闪回日志功能的ARCHIVELOG模式下,以便需要重放时可以快速地利用FLASHBACK DATABASE命令回退到某个初始点。

第一阶段:录制负载

    ◆为了建立一个捕获/重放情景,我建立了一个新用户、表、索引和相关的PL/SQL对象:

    ◆一个新用户ADMIN,它将被用作所有管理对象的一个仓库,同时,我还创建了一个表主键的值。创建该用户和表的代码请参考附件A:ADMINSetup.sql.

    ◆PL/SQL包ADMIN.PKG_SEQUENCING控制指定新的主键值,该包的说明参考附件B:pkg_sequencing.spc,该包最初的版本内容参考附件C:pkg_sequencing_v1.bdy.

    ◆另一个用户AP,它将封装一个帐户支付系统的方案,包括新的表AP.VENDORS,AP.INVOICES和AP.INVOICE_ITEMS,创建这个方案及其相关的对象脚本参考附件D:APSetup.sql.

    ◆为了填充AP方案的对象,我创建了一个包AP.PKG_LOAD_GENERATOR,它的说明文件和主体文件分别参考附件E:pkg_load_generator.spc和附件F:pkg_load_generator.bdy.

    ◆最后,APInitialization.sql中的代码用几百行模拟数据填充了表AP.VENDORS,并在表AP.INVOICES中创建了25条发票记录,在表AP.INVOICE_ITEMS中创建了与之对应的发票详细信息条目,收集了ADMIN和AP方案下所有对象的原始统计信息,它还创建了一个目录对象DBRControl,用于数据库重放时存储结果脚本和捕获负载期间产生的XML文件。

[1]       

【责编:Chuan】

--------------------next---------------------

阅读(239) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~