zoukankan      html  css  js  c++  java
  • tidb使用lightning导入dumper导出的数据

    环境:tidb4.0.4、centos7

    前提:使用dumper导出了数据文件,可以是csv、mysql都可以,如果导入的库中有数据,需要先手动清空表数据 truncate table check_data_sync ;

    官网的说明:https://docs.pingcap.com/zh/tidb/stable/tidb-lightning-web-interface#tidb-lightning-web-界面

    1、下载tidb-lightning工具,下载对应的版本

    官网下载https://docs.pingcap.com/zh/tidb/stable/download-ecosystem-tools#tidb-lightning
    链接: https://pan.baidu.com/s/1aiePjNWZ_9jEmmGqsC20bQ 提取码: vpcq 

    2、启动tidb-lightning

    官方建议运行 tidb-lightning。如果直接在命令行中用 nohup 启动程序,可能会因为 SIGHUP 信号而退出,建议把 nohup 放到脚本里面,如:
    方法一、先启动程序,在页面去添加导入配置 (我这次用的该方法)
    mkdir /tmp/tidb-lightning
    #!/bin/bash
    nohup ./tidb-lightning --server-mode --status-addr :8289 > /tmp/tidb-lightning/lightning.log 2>&1 &
    
    方法二、直接将配置文件修改好进行启动
    #!/bin/bash
    nohup ./tidb-lightning -config tidb-lightning.toml > nohup.out &

    3、准备配置文件,可以直接官网下载

    [lightning]
    
    # 转换数据的并发数,默认为逻辑 CPU 数量,不需要配置。
    # 混合部署的情况下可以配置为逻辑 CPU 的 75% 大小。
    region-concurrency = 12
    
    # 日志
    level = "info"
    file = "tidb-lightning.log"
    
    [checkpoint]
    # 是否启用断点续传。
    # 导入数据时,TiDB Lightning 会记录当前表导入的进度。
    # 所以即使 Lightning 或其他组件异常退出,在重启时也可以避免重复再导入已完成的数据。
    enable = true
    # 存储断点的数据库名称。
    schema = "tidb_lightning_checkpoint"
    # 存储断点的方式。
    #  - file:存放在本地文件系统。
    #  - mysql:存放在兼容 MySQL 的数据库服务器。
    driver = "file"
    
    # dsn 是数据源名称 (data source name),表示断点的存放位置。
    # 若 driver = "file",则 dsn 为断点信息存放的文件路径。
    #若不设置该路径,则默认存储路径为“/tmp/CHECKPOINT_SCHEMA.pb”。
    # 若 driver = "mysql",则 dsn 为“用户:密码@tcp(地址:端口)/”格式的 URL。
    # 若不设置该 URL,则默认会使用 [tidb] 部分指定的 TiDB 服务器来存储断点。
    # 为减少目标 TiDB 集群的压力,建议指定另一台兼容 MySQL 的数据库服务器来存储断点。
    # dsn = "/tmp/tidb_lightning_checkpoint.pb"
    
    # 所有数据导入成功后是否保留断点。设置为 false 时为删除断点。
    # 保留断点有利于进行调试,但会泄漏关于数据源的元数据。
    # keep-after-success = false
    # https://docs.pingcap.com/zh/tidb/stable/tidb-lightning-checkpoints#tidb-lightning-断点续传
    
    [tikv-importer]
    # backend 设置为 local 模式
    backend = "local"
    # 设置本地临时存储路径
    sorted-kv-dir = "/tmp/tidb-lightning"
    
    [mydumper]
    # Mydumper 源数据目录。
    data-source-dir = "/bak/20201026bak"
    
    [tidb]
    # 目标集群的信息。tidb-server 的监听地址,填一个即可。
    host = "172.21.210.40"
    port = 4000
    user = "root"
    password = "password"
    # 表架构信息在从 TiDB 的“状态端口”获取。
    status-port = 10080
    # pd-server 的地址,填一个即可
    pd-addr = "172.21.210.40:2379"
    
    [post-restore]
    #去除表分析
    analyze = false

    3、访问lightning的web页面http://172.21.210.21:8289/web/progress,导入配置文件。在该页面可以看到进行中的active、完成的和排队的详情

     4、如果数据量很大,最好在导入前将gc(垃圾回收时间)改长。

    调整TiDB集群的GC时间
    SELECT * FROM mysql.tidb WHERE VARIABLE_NAME = 'tikv_gc_life_time';
    update mysql.tidb set VARIABLE_VALUE = '10h' where VARIABLE_NAME = 'tikv_gc_life_time';
    导入完成后改回原值
    update mysql.tidb set VARIABLE_VALUE = '10m' where VARIABLE_NAME = 'tikv_gc_life_time';
    

    5、注意lightning异常退出情况

    如果 tidb-lightning 异常退出,集群可能仍处于“导入模式” (import mode),该模式不适用于生产环境。此时可执行以下命令查看当前使用的模式:(工具拷贝到中控机执行下面命令)
    tidb-lightning-ctl --fetch-mode
    可执行以下命令强制切换回“普通模式” (normal mode):
    tidb-lightning-ctl --switch-mode=normal
    

    6、检查数据

    导入完毕后,TiDB Lightning 会自动退出。若导入成功,日志的最后一行会显示 tidb lightning exit

    做一个决定,并不难,难的是付诸行动,并且坚持到底。
  • 相关阅读:
    移动端web
    递归求和
    json的基础了解
    冒泡排序的编程方法
    js面向对象
    1002,javascript的原型属性
    1001,instanceof关键字以及typeof关键字
    19,简述一下src与href的区别(不懂)
    531,<form>action属性
    530,css outline属性
  • 原文地址:https://www.cnblogs.com/wukc/p/13881406.html
Copyright © 2011-2022 走看看