编辑手记:在Oracle 12.2中,ADG有许多惊人的改进,通过ADG standby数据库的性能数据收集和诊断、快照standby数据库的应用,以及实时的数据库操作监控的实现,能够根据用户需求相协调来提高DBA效率,从而为业务应用程序提供更好的服务质量。
1、Oracle Data Guard Support for Oracle Diagnostics Pack(Oracle DG 提供诊断包的支持)
Oracle诊断包可以与以read-only的ADG standby数据库一起使用。能够将性能数据捕获到ADG standby数据库的AWR报告中,并对AWR数据运行自动数据库诊断监视器(ADDM)分析。
此功能可以对在ADG standby数据库上执行的只读工作负载进行性能调优。
管理Active Data Guard standby数据库中的AWR从Oracle 12.2开始,可以为ADG standby数据库捕获AWR数据。此功能可以分析ADG standby数据库的任何性能相关问题。
知识补充:
ADG standby数据库的AWR快照称为远程快照。称为目标的数据库节点负责存储从远程ADG standby数据库节点(称为源)收集的快照。目标可以是ADG主数据库或非ADG数据库。如果目标是ADG主数据库,则它也是源数据库,其快照是本地快照。
实现该功能需要满足以下两个条件:
源通过唯一的名称或源名称识别,通过该唯一名称或源名称对目的地是已知的。可以在配置期间为目标节点或源节点分配名称。否则,初始化参数DB_UNIQUE_NAME的值被默认指定为节点的名称。
每个源必须具有两个DBlink,目标到源数据库DBlink和源到目标数据库DBlink。在ADG部署期间为每个源配置这些DBlink。在某些ADG事件(例如故障转移,切换,主机添加和删除)之后,必须手动重新配置这些DBlink,以便数据库应用程序在这些事件后继续正常运行。
可以以预定的时间间隔自动或手动地拍摄远程快照。远程快照始终由目标节点启动。目标启动快照创建存储过程后,源使用数据库链接将其快照数据推送到目标。可以使用AWR报告,Oracle数据库导入和导出功能以及用户定义的查询来访问存储在目标上的快照数据或AWR数据。自动数据库诊断监视器(ADDM)应用程序可以使用AWR数据来分析任何数据库性能相关的问题。
2、Active Data Guard Support for SQL Tuning Advisor(支持SQL Tuning Advisor的ADG)
SQL Tuning Advisor已得到增强,因此可以在一个数据库上启动调整,但实际的调整过程在不同的数据库上远程执行。这允许DBA将primary数据库工作负载的调优卸载到ADG standby数据库,并在ADG 自身上调整ADG SQL工作负载。
工作原理如下:
当将primary数据库工作负载的SQL调整卸载到ADG standby数据库时,SQL调整过程从primary数据库启动,但是调整过程在ADG standby数据库上远程执行,并且结果将写回primary数据库数据库。调整ADG工作负载时,整个SQL调整过程在ADG standby数据库上本地执行,同时保持数据库为read-only状态。这是通过从primary数据库的DBlink接收集所需的信息并将任何数据库状态更改(例如SQL配置文件实现)写回primary数据库来实现的。在primary数据库上实施的SQL配置文件建议将使用redo应用机制应用于ADG standby数据库。
SQL Tuning Advisor的远程SQL调优功能支持调整ADG工作负载,并将primary数据库工作负载的调整卸载到ADG standby数据库。 此功能的业务优势如下:
通过支持应用程序调整来提高Active Data Guard数据库的可管理性。
通过利用Active Data Guard上的可用资源提高主数据库工作负载调整的投资回报率。
改进了Active Data Guard和主数据库工作负载的应用程序性能。
提高了苛刻应用的读取性能
灵活启动SQL Tuning Advisor并将结果远程存储在不同的数据库中。
当与SQL Performance Analyzer一起使用时,支持端到端调整和测试工作流程。
在Active Data Guard环境中,SQL Tuning Advisor可以调整主数据库上的备用工作负载,通过DBlink,可以在一个数据库上发出SQL Tuning Advisor语句,但在不同的数据库上执行语句。
在某些情况下,standby数据库可以承担报告角色。 standby数据库可以有自己的查询工作负载,其中一些可能需要调整。 在这种情况下,通过在standby数据库上发出每个调整语句来调整自身数据库工作负载,但SQL Tuning Advisor通过使用standby数据库到primary数据库DBlink在primary数据库上执行其分析。
为调整主数据库上的standby数据库工作负载,以下是必须执行的任务(任务必须按照给定的顺序在备用数据库中执行,使用DBMS_SQLTUNE PL / SQL包) :
1、执行DBMS_SQLTUNE.CREATE_TUNING_TASK语句以从主数据库获取创建任务所需的数据。因为standby数据库是只读数据库,所以有关任务的数据将远程写入primary数据库。在此步骤中,需要DBlink参数写入primary数据库。
2、执行DBMS_SQLTUNE.EXECUTE_TUNING_TASK语句。最初,从远程primary数据库获取执行任务所需的数据。执行调谐分析过程以找到可能的建议。因为standby数据库是只读数据库,所以当结果可用时,它们将远程存储在primary数据库中。
3、执行DBMS_SQLTUNE.REPORT_TUNING_TASK语句。构建报告所需的数据远程存储在primary数据库中。数据从主机远程读取,并在standby数据库本地构建。
4、执行DBMS_SQLTUNE.ACCEPT_SQL_PROFILE语句。配置文件数据将写入远程primary数据库,因为standby数据库是只读的。
注:执行以上任务,必须要保证SQL配置文件在standby数据库上使用重做应用程序可用。
快照standby数据库是完全可更新的standby数据库,它接收并归档从primary数据库获得的redo数据,但不会应用日志。在将快照standby数据库转换回物理standby数据库后,只有在丢弃快照standby数据库的所有本地更新后,才能应用从preimary数据库接收的redo数据。
快照standby数据库通常随着时间的推移与其primary数据库差别变大,因为来自primary数据库的redo数据未应用。快照standby数据库的本地更新更会导致额外的分歧。然而,primary数据库中的数据受到完全保护,因为快照standby数据库可以随时转换回物理standby数据库,然后应用从primary数据库接收的redo数据。
快照standby数据库提供与物理standby数据库类似的灾难恢复和数据保护优势。快照standby数据库最适用于具有primary数据库的临时可更新快照的情况,增加从primary数据库故障恢复的时间。
快照Standby数据库和物理Standby数据库的切换
1、 将物理standby数据库转换为快照standby数据库
执行以下步骤将物理备用数据库转换为快照备用数据库:
如果redo日志处于active状态,则应用。
确保数据库以mount状态打开。
确保已配置快速恢复区, 不用启用闪回功能。
发出以下SQL语句以执行转换:SQL> ALTER DATABASE CONVERT TO SNAPSHOT STANDBY;
通过发出以下SQL语句以读/写模式打开快照standby数据库:SQL> ALTER DATABASE OPEN READ WRITE;
快照standby数据库可以以读写模式打开,并且是完全可更新的。
快照standby数据库具有以下特征:
快照standby数据库不能是切换或故障转移的目标。 在执行角色转换之前,必须先将快照standby数据库转换回物理standby数据库。
快照standby数据库不能是最大保护Oracle Data Guard配置中唯一的standby数据库。
注意:闪回数据库用于将快照standby数据库转换回物理standby数据库。 使用闪回数据库技术无法撤消的任何操作都会阻止快照standby数据库转换回物理standby数据库。
3、将快照Standby数据库转换为物理Standby数据库执行以下步骤将快照备用数据库转换为物理备用数据库:
1、在Oracle Real Applications集群(Oracle RAC)数据库上,关闭除一个实例之外的所有实例。
2、确保数据库已装入,但未打开。
3、发出以下SQL语句以执行转换:
SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;
(SQL性能分析器和SQL调优集增强功能)
SQL性能分析器(SPA)增强了提供三个新的任务参数:
EXECUTE_FULLDML_TRIGGERS:使用此参数可以启用或禁用在FULLDML模式下运行SPA试用时递归触发的数据库触发器。
EXECUTE_WITH_FIXED_DATE:在SPA试用中使用此参数为引用SYSDATE函数的SQL设置固定日期。
NUM_ROWS_TO_FETCH:此参数允许您限制SQL语句根据优化程序模式设置获取的行数。
SQL调优集(STS)增强如下:
通过显式使用DBMS_SQLTUNE PL / SQL包的start_capture和stop_capture API来启动和停止STS捕获。
增强了STS捕获,以支持跨所有Oracle Real Application Cluster(Oracle RAC)实例的SQL工作负载捕获。
STS捕获现在包括特定于Exadata,SQL监视和内存数据库的其他统计信息。
STS捕获支持用于报告在备用数据库或活动Oracle Data Guard数据库上运行的工作负载。
这些增强功能可以准确地诊断性能问题,改进Oracle服务质量管理,并以最低的风险和工作量进行更好的质量测试。 这也提高了系统性能和可靠性,降低了整体管理成本。
4、Monitoring Real-Time Database Operations(监控实时的数据库操作)
实时数据库操作(DBOP)监视功能有显著增强:
动态和外部启动和停止DBOP,使我们能够通过指定特定会话的会话标识符和序列号,从数据库中的任何会话启动和停止DBOP。
DBOP持久性和比较:DBOP监视的执行自动保留到AWR,可以使用它们做offline和历史性能分析。可以比较多个相同DBOP的运行,以了解某些操作花费更长时间的原因。
DBOP报告和趋势分析:增强报告现在包括在同一DBOP下的SQL和PL / SQL执行详细信息。随着时间的推移对DBOP的多次运行进行分析,可以更好地了解特定工作负载随时间的变化。
多会话DBOP支持:这对于监视在多个会话上运行的SQL或PL / SQL非常有用,这在提取,转换和加载(ETL)任务和批处理作业中很常见。
这些DBOP增强功能通过将业务操作监视与最终用户需求相协调来提高DBA效率,从而为业务应用程序提供更好的服务质量。