Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » MobiLink - 入门 » MobiLink 教程 » 教程:编写脚本和监控同步

 

第 7 课:使用 MobiLink 监控器检测更新冲突

可以使用 MobiLink 监控器收集同步发生时的相关统计信息。MobiLink 监控器的图表在垂直轴上显示任务,在水平轴上显示时间进度。

使用 MobiLink 监控器可以快速识别导致错误或满足某些条件的同步。由于 MobiLink 监控器对性能的影响不大,建议将其同时用于开发和生产。

在本节中,您将:

  • 启动和配置 MobiLink 监控器,以可视方式区分涉及更新冲突的同步。

  • 通过在 remote1 和 remote2 上更新同一行来生成冲突。

  • 使用 MobiLink 监控器检测冲突。

♦  配置 MobiLink 监控器检测更新冲突
  1. 单击 [开始] » [程序] » [SQL Anywhere 11] » [MobiLink 监控器]。

  2. 连接到 MobiLink 服务器:

    1. 单击 [标识] 选项卡。

    2. 在 [用户] 字段中键入 monitor_user。使用 -zu+ 选项启动 MobiLink 服务器时,将自动添加此用户。

    3. 在 [口令] 字段中,键入口令或将此字段留空。

    4. 单击 [数据库] 选项卡。

    5. 在 [服务器名] 字段中键入 cons

    6. 单击 [确定]。

  3. 单击 [工具] » [监视项目管理器] 以启动 MobiLink 监控器监视项目管理器。

  4. 对更新冲突添加新监视项目:

    1. 单击 [新建]。

    2. 在 [名称] 字段中键入 conflict_detected

    3. 在 [属性] 列表中,单击 [conflicted_updates]。

      conflicted_updates 统计属性指明被检测到冲突的已上载更新的数目。

      有关 MobiLink 监控器统计属性的详细信息,请参见MobiLink 统计信息属性

    4. 在 [操作员] 列表中,单击 [is greater than]。

    5. 在 [] 字段中键入 0

    6. 单击 [添加]。

    7. 在 [图表模式] 列表中,为 [图表] 窗格设置模式。[图表] 窗格是 MobiLink 监控器的中间窗格。

    8. 在 [一览表颜色] 列表中,为 [一览表] 窗格设置颜色。[一览表] 窗格是 MobiLink 监控器的底部窗格。

  5. 单击 [确定]。

  6. 单击 [确定]。

♦  生成更新冲突
  1. 更新 remote1 库存值。

    Salesman1 开始时 Screwmaster Drill 库存有 10 个货品,后来卖出 3 个。他将其远程数据库 remote1 的库存更新为 3 个货品。执行更新:

    1. 启动 Interactive SQL 并连接到 remote1(如果尚未连接)。

    2. 在 Interactive SQL 中执行以下语句,将 Screwmaster Drill 库存更新为 7 个货品。

      UPDATE Product SET quantity = 7
       WHERE name ='Screwmaster Drill'
      COMMIT
  2. 同步 remote1。

    在命令提示符处,键入以下命令启动 MobiLink 同步客户端:

    dbmlsync -c "eng=remote1;uid=DBA;pwd=sql" -v+

    同步之后,统一数据库 Screwmaster Drill 库存为 7 个货品。

  3. 更新 remote2 库存值。

    Salesman2 卖出 4 个货品并将其库存(在 Remote2 上)更新为 6。当 remote2 同步时,将检测到冲突,因为统一数据库中的库存值已更改。执行更新:

    1. 启动 Interactive SQL 并连接到 remote2。

      在命令提示符处,键入以下命令:

      dbisql
    2. 单击 [标识] 选项卡。

    3. 在 [用户 ID] 字段键入 DBA

    4. 在 [口令] 字段中键入 sql

    5. 单击 [数据库] 选项卡。

    6. 在 [服务器名] 字段中键入 remote2

    7. 单击 [确定]。

    8. 在 Interactive SQL 中执行以下语句,将 Screwmaster Drill 库存更新为 6 个货品:

      UPDATE Product SET quantity = 6
       WHERE name ='Screwmaster Drill'
      COMMIT
  4. 同步 remote2。

    • 启动 MobiLink 同步客户端。

      在命令提示符处,键入以下命令:

      dbmlsync -c "eng=remote2;uid=DBA;pwd=sql" -v+

现在可以切换到 MobiLink 监控器并查看同步的结果。

♦  使用 MobiLink 监控器检测更新冲突
  1. 暂停图表滚动。

    单击 [文件] » [监控器] » [暂停图表滚动]。

  2. 使用 MobiLink 监控器的 [一览表] 窗格、[图表] 窗格和 [详细信息] 表,查看有关同步的统计信息。

    1. 在监控器的 [一览表] 窗格(MobiLink 监控器的底部窗格)中找到同步项。生成更新冲突的 remote2 同步以红色显示:

    2. 要在 [图表] 窗格中查看 remote2 同步,请单击 [一览表] 窗格中的同步对象并在其上方拖动鼠标:

      该同步对象以您为 conflict_detected 监视项目所选的模式显示。

    3. 使用缩放工具查看同步详细信息。

      从 [视图] 菜单中选择 [放大]。

    4. 要查看同步属性,请双击同步对象或详细信息表中的对应行。选择 [上载] 选项卡,查看发生冲突的更新数。

进一步阅读

有关 MobiLink 冲突解决的详细信息,请参见冲突处理

有关 MobiLink 监控器的详细信息,请参见MobiLink 监控器

有关 MobiLink 监控器统计属性的详细信息,请参见MobiLink 统计信息属性