tencent cloud

文档反馈

高级对象检查

最后更新时间:2022-09-21 17:24:22

    MySQL/MariaDB/Percona 检查详情

    选择迁移/同步高级对象时,DTS 会对如下内容进行校验。报错项必须要处理才能继续任务,警告项用户评估业务风险后可忽略,继续任务。

    • 报错项:目标实例参数 log_bin_trust_function_creators 必须为 ON。

    • 警告项:

      • 迁移/同步高级对象与库表重命名功能冲突,选择高级对象后需要取消库表重命名。

      • 选择高级对象的函数,存储过程时,DTS 会检查源库中 DEFINER 对应的 user1( [DEFINER = user1])和执行任务账号 user2 是否一致。

        • 如果一致则迁移/同步后不做改动。
        • 如果不一致,则迁移/同步后修改 user1 在目标库中的 SQL SECURITY 属性,由 DEFINER 转换为 INVOKER( [INVOKER = user1]),同时设置目标库中 DEFINER 为执行任务账号的 user2([DEFINER = 执行任务账号user2])。
      • 高级对象的迁移/同步时间:

        • 存储过程和函数,在“源库导出”阶段进行迁移/同步。
        • 触发器和事件,没有增量任务,在任务结束时进行迁移/同步;有增量任务,在用户单击完成操作后开始迁移/同步,所以单击完成后任务的过渡时间会长一些。

    修复方法

    修改 log_bin_trust_function_creators 参数。

    log_bin_trust_function_creators 用于控制是否信任用户将存储函数写入 binlog 日志中。设置为 OFF ,仅 SUPER 权限的用户可将创建的存储函数操作写入 binlog 日志,设置为 ON ,非 SUPER 权限的用户也可将创建的存储函数操作写入 binlog 日志中。

    发生报错时,请参考如下步骤进行修改。

    1. 登录源数据库。

    2. 参考如下内容修改 log_bin_trust_function_creators 参数。

      set global log_bin_trust_function_creators = ON;
      
    3. 通过如下命令查看参数修改是否生效。

      show variables like '%log_bin_trust_function_creators%';
      

    系统显示结果类似如下:

    mysql>  show variables like '%log_bin_trust_function_creators%';
    +---------------------------------+-------+
    | Variable_name                   | Value |
    +---------------------------------+-------+
    | log_bin_trust_function_creators | ON    |
    
    1. 重新执行校验任务。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持