1.处理dm不兼容DDL

迁移中断,执行跳过操作

tiup dm list
tiup dm display xxx-dm-prod
tiup dmctl --master-addr 10.0.xx.xx:8261
» query-status task-xxx-01
» binlog skip task-xxx-01
» query-status task-xxx-01

迁移中断,执行替代操作

报错:"Message": "cannot track DDL: ALTER TABLE `db1`.`tbl1` ADD COLUMN `new_col` INT UNIQUE KEY"
替代:
» binlog replace test "ALTER TABLE `db1`.`tbl1` ADD COLUMN `new_col` INT;ALTER TABLE `db1`.`tbl1` ADD UNIQUE(`new_col`)";

参考:https://docs.pingcap.com/zh/tidb/stable/handle-failed-ddl-statements

修改任务配置

因为 DM 集群会持久化保存任务配置,所以修改任务配置需要通过 stop-task、start-task 将修改后的配置更新到 DM 集群中,如果直接修改任务配置文件,
但是不重启任务,配置变更不会生效,DM 集群重启时仍然会读取之前保存的任务配置。
只要task-name不变,则还是沿用之前的dm-meta的元数据,如:{task-name}_syncer_checkpoint 这里以修改timezone为例,其任务配置修改步骤如下: 1.修改任务配置文件,将 timezone 设置为 Asia/Shanghai 2.通过 stop-task 命令停止任务:stop-task <task-name | task-file> 3.通过 start-task 命令启动任务:start-task <config-file> 4.在 DM v2.0.1 及其以后版本中,可通过 get-config 命令检查配置是否生效:get-config task <task-name>

参考:https://docs.pingcap.com/zh/tidb-data-migration/v5.3/task-configuration-file

重置数据迁移任务

当数据迁移过程中发生异常且无法恢复时,需要重置数据迁移任务,对数据重新进行迁移:

1.使用 stop-task 停止异常的数据迁移任务。

2.清理下游已迁移的数据。

3.从下面两种方式中选择其中一种重启数据迁移任务:
1)修改任务配置文件以指定新的任务名,然后使用 start-task {task-config-file} 重启迁移任务。
2)使用 start-task --remove-meta {task-config-file} 重启数据迁移任务。

参考:https://docs.pingcap.com/zh/tidb/stable/dm-faq

2.设置GC

系统变量进行 GC 配置:

  • tidb_gc_enable
  • tidb_gc_run_interval
  • tidb_gc_life_time
  • tidb_gc_concurrency
  • tidb_gc_scan_lock_mode
  • tidb_gc_max_wait_time
tidb_gc_enable:这个变量用于控制是否启用 TiKV 的垃圾回收 (GC) 机制。默认是on;
tidb_gc_life_time:这个变量用于指定每次进行垃圾回收 (GC) 时保留数据的时限。
tidb_gc_max_wait_time :这个变量用于指定活跃事务阻碍 GC safe point 推进的最大时间
tidb_gc_run_interval:这个变量用于指定垃圾回收 (GC) 运行的时间间隔
tidb_gc_concurrency:这个变量用于指定 GC 在Resolve Locks(清理锁)步骤中线程的数量。默认值 -1 表示由 TiDB 自主判断运行 GC 要使用的线程的数量
GC in compaction Filter 机制
可以由TiKV配置文件中的以下开关控制:
[gc] enable-compaction-filter = true
该 GC 机制可通过在线配置变更开启:
show config where type = 'tikv' and name like '%enable-compaction-filter%';
+------+-------------------+-----------------------------+-------+
| Type | Instance | Name | Value |
+------+-------------------+-----------------------------+-------+
| tikv | 172.16.5.37:20163 | gc.enable-compaction-filter | false |
| tikv | 172.16.5.36:20163 | gc.enable-compaction-filter | false |
| tikv | 172.16.5.35:20163 | gc.enable-compaction-filter | false |
+------+-------------------+-----------------------------+-------+
set config tikv gc.enable-compaction-filter = true;
show config where type = 'tikv' and name like '%enable-compaction-filter%';
+------+-------------------+-----------------------------+-------+
| Type | Instance | Name | Value |
+------+-------------------+-----------------------------+-------+
| tikv | 172.16.5.37:20163 | gc.enable-compaction-filter | true |
| tikv | 172.16.5.36:20163 | gc.enable-compaction-filter | true |
| tikv | 172.16.5.35:20163 | gc.enable-compaction-filter | true |
+------+-------------------+-----------------------------+-------+

最新文章

  1. Datafactory必须注意事项
  2. 带连接池的netty客户端核心功能实现剖解
  3. FancyTree 状态保持
  4. javascript之document对象
  5. cvsnt 设置用户、修改密码
  6. SimpleAliasRegistry implements AliasRegistry
  7. 解决SQL Server Management Studio Express不支持更新全文目录的方法
  8. Java学习系列(一)Java的运行机制、JDK的安装配置及常用命令详解
  9. 自己动手打造html5星际迷航!
  10. sql 比较2个test字段的值
  11. Hibernate(或其它ORM)里的inverse用法详解,内容摘自Java web轻量级开发面试教程
  12. JAVA实现网页上传头像
  13. Short But Scary 解题报告
  14. ThreadLocal, HandlerThread, IntentService
  15. JAVA实现简单的四则运算
  16. java中的\b是什么意思?
  17. Jupyter中python3之numpy练习
  18. centos7环境安装rabbitMQ
  19. .NET Core 指南 官方
  20. SPL之Iterator和ArrayAccess的结合使用

热门文章

  1. get请求拼接数组转字符串
  2. element-ui中table组件的表格嵌套Select,table中使用select
  3. 【Vue】启动vue项目报错: errno: -4058, code: ‘ENOENT‘, syscall: ‘spawn cmd‘
  4. 2022年7月14日,第四组 周鹏,认识JAVA的第二天(;&#180;д`)ゞ(;д;)
  5. Redis RDB 与AOF
  6. [C++]什么是POD?
  7. 使用IDEA搭建SSM项目
  8. P8775 [蓝桥杯 2022 省 A] 青蛙过河
  9. 面试官:JVM是如何判定对象已死的?
  10. java基础:方法