IBM Cloud Docs
调查等待时间事件

调查等待时间事件

对于从本地应用程序迁移到云上服务时面临等待时间问题的用户,请联系 Db2 on Cloud 团队,然后完成以下步骤以提高等待时间。 要开始等待时间改进过程,请打开支持案例。

有关打开 IBM 支持案例或有关支持级别和案例严重性的信息,请参阅: 使用支持案例

如果此时未联系 Db2 on Cloud 团队,那么无法完成等待时间改进过程。

步骤

  1. 设置客户机 SSL (如果尚未设置)

    对于现有 Db2 用户,将在配置过程中设置 SSL。

    如果需要 SSL 设置,请遵循 Db2 文档中概述的步骤:
    https://www.ibm.com/docs/en/db2/11.5?topic=ctsidc-configuring-tls-support-in-non-java-db2-clients

  2. 设置客户机连接

    1. 要启用客户机亲缘关系,自动客户机重新路由 (ACR) 配置由 db2 客户机上的 db2dsdriver.cfg 提供

      1. /opt/ibm/db2/V11.5/cfg/db2dsdriver.cfg.sample 获取样本 db2dsdriver

      2. 复制到 /home/db2inst1/sqllib/cfg/

      3. 重命名为 db2dsdriver.cfg

    2. db2dsdriver.cfg 是用于与 db2 数据库建立连接的最后一种配置方法。 这意味着 db2dsdriver.cfg 的优先级最低,仅当没有其他连接配置可用时才会用于连接。

    3. 为了将 db2dsdriver.cfg 用于连接,需要对该特定数据库禁用或除去所有其他连接配置。 确保在需要执行回退的情况下备份这些现有配置方法。 这包括以下内容:

      1. db2 节点和数据库连接详细信息 (选中 db2 list node directorydb2 list database directory -验证您尝试连接到的数据库的连接详细信息是否不存在)
        • 先备份连接配置,然后再将其移除
      2. db2cli.ini 文件 (验证此文件不存在或不具有特定数据库的连接详细信息-可以在 ~/sqllib/cfg中找到)
        • 将 db2cli.ini 备份为 db2cli.ini.bak
      3. 有关更多详细信息,请参阅 https://www.ibm.com/docs/en/db2/11.5?topic=file-order-precedence-obtaining-database-information
  3. 更新 db2dsdriver.cfg

    1. 需要使用数据库所需的连接参数来更新 db2dsdriver.cfg。

      • 如果存在现有 db2dsdriver.cfg,请将其复制到 db2dsdriver.cfg.bak
    2. 请参阅 db2 数据服务器驱动程序配置文档- https://www.ibm.com/docs/en/db2/11.5?topic=drivers-data-server-driver-configuration-file

    3. 首选路径将是客户机所在的任何区域,而不考虑主区域的位置,因为主区域可以轮换到其他区域。 当主项与客户机位于不同的区域中时,会有 50% 的改进 (比没有首选路径),但如果当前主项与客户机位于同一区域中 (比没有首选路径改进 75%),那么将实现最快的连接时间。

    4. 要启用客户机亲缘关系 (设置首选路径),db2dsdriver.cfg: 中需要 <acr>...</acr> 配置

           <acr>
               <parameter name="enableACR" value="true"/>
               <!--<parameter name="enableSeamLessACR" value="true"/>-->
               <parameter name="maxAcrRetries" value="10"/>
               <!--maximum number of connection attempts to each server in the list of alternate servers for ACR-->
               <parameter name="acrRetryInterval" value="5"/>
               <!--number of seconds to wait between retries-->
               <parameter name="affinityFailbackInterval" value="10"/>
               <!--number of seconds to wait after the first transaction boundary to fail back to the primary server-->
               <alternateserverlist>
                   <server name="dal10" hostname="db2-icd-preprod-us-s-759393.us-south.serviceendpoint.cloud.ibm.com" port="31014">
                   </server>
                   <server name="dal12" hostname="db2-icd-preprod-us-s-207889.us-south.serviceendpoint.cloud.ibm.com" port="31014">                        
                   </server>
                   <server name="dal13" hostname="db2-icd-preprod-us-s-747467.us-south.serviceendpoint.cloud.ibm.com" port="31014">
                   </server>
               </alternateserverlist>
               <affinitylist>
                   <list name="dal13_primary" serverorder="dal13,dal12,dal10">
                   </list>
                   <list name="dal12_primary" serverorder="dal12,dal13,dal10">                        
                   </list>
                   <list name="dal10_primary" serverorder="dal10,dal12,dal13">
                   </list>
               </affinitylist>
               <clientaffinitydefined>
                   <!--this section has specific defined affinities -->
                   <client name="client1" hostname="localhost" listname="dal10_primary">
                   </client>
               </clientaffinitydefined>
           </acr>
      
      1. <acr></acr> 块中,必需参数包括:
        • enableACR-应设置为 true
        • alternateserverlist-要尝试的备用服务器的列表,包括要连接到的主服务器 (注意: 主机名值应该引用在服务器设置的步骤 2 中创建的别名)
        • affinitylist-尝试连接来自 alternateserverlist 的服务器的顺序。 当主和客户机位于同一区域中时,亲缘关系列表排序: <client_zone, zone2, zone3> 其中 zone2 和 zone3 顺序无关紧要。 当主区域和客户机位于不同的区域中时,affinitylist 排序: <client_zone, primary_zone, zone3>
        • clientaffinitydefined-定义给定客户机应该使用的来自 affinitylist 的列表
    5. db2dsdriver.cfg 示例:

       <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
       <configuration>
           <dsncollection>
               <dsn alias="hadb" host="db2-icd-preprod-us-s-747467.us-south.serviceendpoint.cloud.ibm.com" name="BLUDB" port="31014">
           </dsncollection>
           <databases>
               <database host="db2-icd-preprod-us-s-747467.us-south.serviceendpoint.cloud.ibm.com" name="BLUDB" port="31014">
                   <parameter name="SecurityTransportMode" value="SSL"/>
                   <parameter name="SSLServerCertificate" value="/home/db2inst1/SSL/db2_ha.crt"/>
                   <acr>
                       <parameter name="enableACR" value="true"/>
                       <!--<parameter name="enableSeamLessACR" value="true"/>-->
                       <parameter name="maxAcrRetries" value="10"/>
                       <!--maximum number of connection attempts to each server in the list of alternate servers for ACR-->
                       <parameter name="acrRetryInterval" value="5"/>
                       <!--number of seconds to wait between retries-->
                       <parameter name="affinityFailbackInterval" value="10"/>
                       <!--number of seconds to wait after the first transaction boundary to fail back to the primary server-->
                       <alternateserverlist>
                           <server name="dal10" hostname="db2-icd-preprod-us-s-759393.us-south.serviceendpoint.cloud.ibm.com" port="31014">
                           </server>
                           <server name="dal12" hostname="db2-icd-preprod-us-s-207889.us-south.serviceendpoint.cloud.ibm.com" port="31014"> <!--client is in dal12-->
                           </server>
                           <server name="dal13" hostname="db2-icd-preprod-us-s-747467.us-south.serviceendpoint.cloud.ibm.com" port="31014">
                           </server>
                       </alternateserverlist>
                       <affinitylist>
                           <list name="dal13_primary" serverorder="dal13,dal12,dal10">
                           </list>
                           <list name="dal12_primary" serverorder="dal12,dal13,dal10">  
                           </list>
                           <list name="dal10_primary" serverorder="dal10,dal12,dal13"> <!--primary-->
                           </list>
            </affinitylist>
                       <clientaffinitydefined>
                           <!--this section has specific defined affinities -->
                           <client name="client1" hostname="localhost" listname="dal13_primary">
                           </client>
                       </clientaffinitydefined>
                   </acr>
               </database>
           </databases>
       </configuration>    
      

    此配置假定主数据库位于 dal13 区域中,客户机位于 dal12 中 (因此,仍需要至少 1 个网络中继段)

    • 此样本定义 preprod 中两种不同构造的 db2 连接详细信息-使用数据库别名的单个节点构造 singledb 和使用数据库别名的 ha 构造 hadb