TiDB日常运维手册
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_enabletidb_gc_run_intervaltidb_gc_life_timetidb_gc_concurrencytidb_gc_scan_lock_modetidb_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 |
+------+-------------------+-----------------------------+-------+
TiDB日常运维手册的更多相关文章
- hadoop日常运维与升级总结
日常运维 升级 问题处理方法 日常运维 进程管理 由于配置文件的更改,需要重启生效, 或者是进程自己因某种致命原因终止, 或者发现进程工作出现异常等情况下,需要进行手动进程的关闭或启动, 或者是增删节 ...
- zookeeper 用法和日常运维
本文以ZooKeeper3.4.3版本的官方指南为基础:http://zookeeper.apache.org/doc/r3.4.3/zookeeperAdmin.html,补充一些作者运维实践中的要 ...
- hadoop记录-hadoop集群日常运维命令
hadoop集群日常运维命令 #1.namenode hadoop namenode -format #格式化,慎用 su hdfs hadoop-daemon.sh start namenode h ...
- Jenkins日常运维笔记-重启数据覆盖问题、迁移、基于java代码发版(maven构建)
之前在公司机房部署了一套jenkins环境,现需要迁移至IDC机房服务器上,迁移过程中记录了一些细节:1)jenkins默认的主目录放在当前用户家目录路径下的.jenkins目录中.如jenkins使 ...
- Docker Swarm 日常运维命令笔记
之前介绍了Docker管理工具-Swarm部署记录,这里简单总结下Docker Swarm的日常维护命令,以作为平时运维笔记. Swarm作为一个管理Docker集群的工具,首先需要将其部署起来,可以 ...
- Windows系统日常运维
WINDOWS系统日常运维 http://www.docin.com/p-677263438.html
- MySQL 日常运维业务账号权限的控制
在MySQL数据库日常运维中,对业务子账号的权限的统一控制十分必要. 业务上基本分为读账号和写账号两种账号,所以可以整理为固定的存储过程,让数据库自动生成对应的库的账号,随机密码.以及统一的读权限,写 ...
- mysql日常运维与参数调优
日常运维 DBA运维工作 日常 导数据,数据修改,表结构变更 加权限,问题处理 其它 数据库选型部署,设计,监控,备份,优化等 日常运维工作: 导数据及注意事项 数据修改及注意事项 表结构变更及注意事 ...
- Hbase 日常运维
日常维护的命令 1,major_compact 'testtable',通常生产环境会关闭自动major_compact(配置文件中hbase.hregion.majorcompaction设 为0) ...
- linux日常运维工作
Linux的使用环境也日趋成熟,各种开源产品络绎不绝,大有百花齐放的盛景,那么当Linux落地企业,回归工作时,我们还要面对这Linux运维方面的诸多问题,今天我们特意组织一场有关Linux 在企业运 ...
随机推荐
- 11、lombok日志记录
一.添加依赖: <!--lombok插件--> <dependency> <groupId>org.projectlombok</groupId> &l ...
- Netty-架构设计及入门程序-3
一.原生 NIO 存在的问题 1.NIO 的类库和 API 繁杂,使用麻烦:需要熟练掌握 Selector.ServerSocketChannel.SocketChannel.ByteBuffer等. ...
- 前菜--Numpy
import numpy as np NumPy : numberial python NumPy的核心:数据结构 ndarray 1.1 数组方法 np.array 创建数组 基本语法:np.arr ...
- Linux中的infuxdb安装及数据迁移
一.安装influxdb 1.更新yum源 cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo [influxdb] baseu ...
- LCD副屏-CPU,内存,时显,日期显示
文章结构: 项目概述 成品预览 项目框架 硬件资料,代码 项目槽点 -项目概述- 以前的旧模块搁置很久没用,最近看到圈子很多倒腾电脑副屏的,咱虽然没钱,但是闲啊,刚好手头有这些东西,开干. 目的: 显 ...
- 构建api gateway之 http路由实现
http路由 路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程. 而这里的http路由其实等同于web开发中,根据http相关参数(比如url.http me ...
- 跟着廖雪峰学python 003
编辑 列表和元组 list 是一种有序.可变的数据类型,可添加删除其中的元素. len()函数:可以获取列表元素的个数 classmates = ['Micheal' , 'Bob' , 'Ja ...
- 文盘Rust -- 给程序加个日志
作者:贾世闻 日志是应用程序的重要组成部分.无论是服务端程序还是客户端程序都需要日志做为错误输出或者业务记录.在这篇文章中,我们结合[log4rs](https://github.com/estk/l ...
- 分布式事务 | 使用DTM 的Saga 模式
DTM 简介 前面章节提及的MassTransit.dotnetcore/CAP都提供了分布式事务的处理能力,但也仅局限于Saga和本地消息表模式的实现.那有没有一个独立的分布式事务解决方案,涵盖多种 ...
- C++ 从数组中拿值,每个值不相同
代码和思路 原理就是生成0,n个索引,每个索引不相同即可. 索引再到数组拿数据就行 #include <iostream> #include <vector> #include ...