您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > Oracle_11g_面向DBA的新功能学习指南less05_DB_Replay
OracleDatabase11g:面向管理员的新增功能5-2OracleDatabase11g:面向管理员的新增功能5-3为什么使用数据库重放?大型业务关键应用程序不但复杂,而且负载模式和使用模式也相当多。与此同时,这些业务系统要在响应时间、吞吐量、运行时间和可用性方面提供特定服务级别的保证。对系统的任何更改(如升级数据库或修改配置)通常都需要进行全面的测试和验证,然后才能在生产系统中实施这些更改。在移到生产系统之前为了保证安全,数据库管理员(DBA)需要让测试系统承受与生产环境中的工作量很近似的工作量。DBA使用一种有效的方式分析系统级更改对整体SQL性能的影响也很有益处,因为这样便可以在生产之前对更改执行任何必要的优化。OracleDatabase11g:面向管理员的新增功能5-4数据库重放针对之前幻灯片中列出的挑战,OracleDatabase11g提供了具体的解决方案。通过数据库重放,在将实际的工作量放到生产系统之前,可以在测试系统上重放实际工作量,从而测试系统更改的影响。记录数据库服务器在一段有代表性的时段(例如高峰期间)内的生产工作量(包括事务处理并发度和相关性)。此记录数据用于在经过适当配置的测试系统上重放工作量。通过在测试系统中使数据库服务器承受与生产工作量几乎相同的工作量,可以在数据库更改获得整体成功方面获得高度的信心。OracleDatabase11g:面向管理员的新增功能5-5系统体系结构:捕获幻灯片中展示了一个正在进行记录的系统。应始终记录生产系统中某个“您所关注的”期间内的工作量。一般情况下,可通过重放记录来确定升级到新版本的RDBMS服务器是否安全。在系统中运行生产工作量时,内置到RDBMS中的一种特殊记录基础结构可以记录有关所有外部客户机请求的数据。外部请求包括所有SQL查询、PL/SQL块、PL/SQL远程过程调用、DML语句、DDL语句、对象导航请求或OracleCallInterface(OCI)调用。在记录过程中,后台作业以及通常情况下的所有内部客户机将继续工作,不会被记录。最终结果是一份工作量记录,其中包含重放工作量所必需的全部信息;RDBMS可通过外部请求来查看这些信息。记录基础结构只会对记录系统造成最低的性能开销(额外的CPU、内存和输出/输出)。但是,应计划配备额外的磁盘空间用于记录实际工作量。RAC说明:RAC环境中的实例可以访问公用数据库文件。但是,它们不需要共享公用的通用文件系统。在这样的环境中,工作量记录会在记录过程中写入各个实例的文件系统。为了进行处理和重放,需要将工作量记录的所有部分手动复制到单个目录中。OracleDatabase11g:面向管理员的新增功能5-6系统体系结构:处理工作量处理工作量捕获数据,创建特定于新工作量重放的元数据文件,这是重放指定工作量捕获所必需的。仅创建新文件,而不对工作量捕获过程中创建的任何文件进行修改。因此,可以对相同的捕获目录多次运行预处理(例如,过程遇到意外错误或被取消时)。在此阶段中,将重新映射外部客户机连接。可以修改会影响重放结果的所有重放参数。注:因为处理工作量捕获的成本可能相对较高,所以最好的做法是在生产数据库系统以外的某个系统中执行该操作。OracleDatabase11g:面向管理员的新增功能5-7系统体系结构:重放在重放系统中重放工作量之前,务必执行以下操作:1.在测试系统中还原重放数据库,以便与工作量捕获开始时的捕获数据库匹配。2.根据需要更改测试系统(如执行升级等)。3.将工作量复制到测试系统。一个名为“重放驱动程序”的特殊应用程序将使用工作量记录,向在其中重放工作量的RDBMS发送请求。该RDBMS通常是一个测试系统。假定重放系统的数据库适合于重放已记录的工作量。不会重放内部RDBMS客户机。重放驱动程序是一种特殊客户机,它使用工作量记录并向测试系统发送相应的请求,其行为与记录工作量过程中使用的客户机在发送外部请求时的行为相同(参见前面的示例)。使用其行为与RDBMS的唯一外部客户机相同的特殊驱动程序,可以记录和重放客户机不可知的基础结构。重放驱动程序包含一个或多个连接到重放系统的客户机,并且可以根据工作量捕获发送请求。重放驱动程序可以根据网络带宽、CPU和内存容量,在所有重放客户机之间均匀分配工作量捕获流。OracleDatabase11g:面向管理员的新增功能5-8整体情况OracleDatabase11g管理系统的更改带来的一个显著优点是:增加了企业对成功执行更改的信心。记录和重放功能使数据库服务器升级过程中的升级变得更加容易。数据库重放的一种有用的应用是测试新服务器配置的性能。假定一个客户正在使用单个实例数据库,并且希望移到RAC设置。该客户记录了一个相关期间的工作量,然后设置了一个RAC测试系统进行重放。在重放过程中,该客户可以通过比较记录系统的性能来监视新配置的性能改进。这也有助于说服客户在看到使用数据库重放功能的优点后转为使用RAC配置。另一种应用就是调试。可以记录和重放模拟某个环境的会话,提高Bug的重现能力。可管理性功能测试是另一个优点。自助管理和自愈系统需要自动实施此项建议(“自动计算模型”)。使用多次重放迭代可以测试和优化控制策略的效果和稳定性。许多Oracle客户对这种更改保障功能表示出了强烈的兴趣。数据库管理员或者被DBA授予了特殊权限的用户可以启动记录和重放周期,并且可以完全控制整个过程。OracleDatabase11g:面向管理员的新增功能5-9更改前生产系统数据库重放侧重于记录和重放RDBMS所承受的工作量。因此,记录工作量的操作是在幻灯片图中所示的位置完成的。在软件堆栈中的RDBMS上进行记录可实现此级别以下的所有项目交换,并可使用记录和重放功能测试新的设置。在重放工作量时,RDBMS将执行记录过程中发现的操作。也就是说,RDBMS代码在重放阶段的行为方式与记录阶段的行为方式非常相似。这是通过重新创建所有外部客户机对RDBMS的请求实现的。外部客户机请求包括了RDBMS的所有可能的外部客户机发出的请求。OracleDatabase11g:面向管理员的新增功能5-10支持的工作量此幻灯片显示了支持的和不支持的数据库操作。注:也会捕获基于SQL的XML操作。系统仅捕获显式的SQL语句(客户机发布的SQL语句)。不会捕获数据库本身生成的隐式调用。例如,审计是隐式的,类似后台进程活动是隐式的。OracleDatabase11g:面向管理员的新增功能5-11捕获注意事项在工作量记录的计划阶段要执行以下任务:•检查数据库备份策略,确保在记录开始时数据库可被还原为StartSCN。•计划捕获期间:根据应用情况和峰值期间选择捕获期间。可以使用现有的可管理性功能,如自动工作量资料档案库(AWR)和活动会话历史记录(ASH),根据工作量历史记录选择一个恰当的期间。应谨慎计划捕获的开始时间,因为建议的操作是在捕获开始前关闭并重新启动数据库。•指定工作量捕获数据的位置。必须设置用于存储工作量捕获数据的目录。应提供充足的磁盘空间,因为磁盘空间不足时记录会停止。但是,在停止之前捕获的所有内容仍可用于重放。•定义捕获过滤器,过滤掉不捕获的用户会话。可以指定记录过滤器以跳过不应捕获的会话。•数据库重放功能没有引入任何新的权限或用户角色。记录用户和重放用户必须具有SYSDBA权限或SYSOPER权限。这是因为仅具备SYSOPER权限或SYSDBA权限的用户才可以启动或关闭开始记录的数据库。还应分配正确的操作系统(OS)权限,以便用户能够访问记录、重放目录以及操作这些目录下的文件。OracleDatabase11g:面向管理员的新增功能5-12重放注意事项预处理阶段是必需的针对指定数据库版本的一次性操作。创建了必需的元数据以后,可以按需要多次重放工作量。必须还原重放数据库,以便与工作量捕获开始时的捕获数据库匹配。成功的重放取决于应用程序事务处理,该事务处理要访问与捕获系统上的数据相同的应用程序数据。可以选择使用时间点恢复、闪回和导入/导出来还原应用程序数据。OracleDatabase11g:面向管理员的新增功能5-13重放注意事项(续)捕获的工作量可能包含对仅在捕获环境中才有意义的外部系统的引用。如果工作量包含对外部系统的未解析引用,重放该工作量可能会在生产环境中导致意外问题。应在一个完全孤立的测试环境中执行重放。应确保对外部系统的所有引用都已在重放环境中得到解析,这样重放工作量才不会危害生产环境。可以进行一对一或多对一重新映射。例如,在捕获的生产环境中的数据库链接可以引用不应在重放过程中引用的外部生产数据库。因此,应修改在重放过程中可能会危害生产环境的所有外部引用。重放客户机(名为wrc的可执行程序)将提交捕获的会话的工作量。应安装一个或多个重放客户机,最好安装在生产主机以外的其它系统上。每个重放客户机都必须能访问保存预处理的工作量的目录。也可以修改重放参数以更改重放的行为。OracleDatabase11g:面向管理员的新增功能5-14重放选项在重放工作量的过程中,可以修改以下重放选项:•synchronization参数将确定在重放工作量时是否使用同步。如果将此参数设置为TRUE,则重放时将保留捕获的工作量中的COMMIT顺序,并且所有重放操作都仅在相关COMMIT操作全部完成后才能执行。默认值为TRUE。•think_time_scale参数将确定同一会话中两个连续的用户调用之间的占用时间范围;该参数以百分比值形式表示。使用此参数可提高或降低重放速度。将此参数设置为0在重放时将以尽可能快的速度将用户调用发送给数据库。默认值为100。•如果重放时完成用户调用所需的时间比捕获时所需的时间长,则think_time_auto_correct参数可以更正调用之间的考虑时间(根据think_time_scale参数)。此参数的值可以为TRUE或FALSE。•connect_time_scale参数确定了从开始工作量捕获到会话与指定值连接之间的占用时间范围;该参数值以百分比形式表示。使用此选项可以控制重放过程中的会话连接时间。默认值为100。注:在工作量捕获过程中,占用时间通过用户时间和用户考虑时间来度量。用户时间是用户调用数据库的占用时间。用户考虑时间是在发布的调用之间用户用于等待的占用时间。在重放工作量过程中,占用时间是通过用户时间、用户考虑时间和同步时间来度量的。OracleDatabase11g:面向管理员的新增功能5-14OracleDatabase11g:面向管理员的新增功能5-15重放分析与记录的内容比较,重放可能会有一些差异。例如,在较新版本的RDBMS上重放时,新的算法可能会导致特定请求的速度变快,从而出现执行时速度较快的差异。这种差异是用户所需要的。差异的另一个示例是,重放过程中SQL语句返回的行数少于记录过程中返回的行数。这种差异显然不是用户所需要的。对于数据差异,可以将某个操作的结果看成:•SQL查询的结果集•对持久数据库状态的更新•返回代码或错误代码在确定重放系统中引入的新算法会对整体性能产生怎样的影响时,性能差异很有用。可能导致重放差异的因素有很多。虽然有些差异无法控制,但其它差异是可以缓解的。DBA应负责了解工作量运行时操作,并采取必要的措施来降低记录和播放差异的程度。联机差异有助于决定停止会造成显著差异的重放。差异出现之前的重放结果可能仍然有用,但继续重放则不会生成可靠的结论。脱机差异报告用于确定重放完成后重放的成功情况。OracleDatabase11g:面向管理员的新增功能5-16重放分析(续)重放的数据差异包含了查询和错误的结果。也就是说,记录过程中发生的错误将被当成正确的结果,重放过程中的任何更改都会被报告。可以使用现有的工具(如ADDM)来度量记录系统与重放系统之间的性能差异。此外,重放过程中的错误比较报表可以报告以下内容:•记录过程中未出现的错误•重放过程中未重现的错误•错误类型方面的差异OracleDatabase11g:面向管理员的新增功能5-17E
本文标题:Oracle_11g_面向DBA的新功能学习指南less05_DB_Replay
链接地址:https://www.777doc.com/doc-5374456 .html