首页 > 其他分享 >tidb-逻辑备份(6)-lightning导入工具的部署、使用

tidb-逻辑备份(6)-lightning导入工具的部署、使用

时间:2024-04-02 17:03:22浏览次数:25  
标签:断点 备份 lightning checkpoint 导入 tidb true

一、Tidb lightning的部署

方法一、

1.联网安装

[root@tidb01 ~]# tiup install tidb-lightning

方法二(tidb-community-toolkit

1.下载包(https://docs.pingcap.com/zh/tidb/v6.1/download-ecosystem-tools),解压

获取:

wget https://download.pingcap.org/tidb-community-toolkit-v6.1.0-linux-amd64.tar.gz

解压tar xvf xxxxxxxx

2.配置环境变量

二、Tidb lightning的使用

文件名

 

查找对象位置

which tidb-lightning

 

1.编辑配置文件

vi tidb-lightning.toml

[lightning]

# 日志

level = "info"

file = "tidb-lightning.log"

max-size = 128 # MB

max-days = 28

max-backups = 14

#导入并发数,默认为逻辑cpu个数,不需配置

#混合部署的情况可配置为逻辑cpu75%大小

#region-concurrency =

# 启动之前检查集群是否满足最低需求。

check-requirements = true

[mydumper]

# 本地源数据目录或外部存储 URL

data-source-dir = "/data/my_database"

#默认规则会过滤mysqlsysINFORMATION_SCHEMAPERFORMANCE_SCHEMAMETRICS_SCHEMAINSPECTION_SCHEMA 系统数据库下的所有表

#不配置会导致报错 找不到schema 的异常。!表示过滤掉。

filter = ['*.*', '!mysql.*', '!sys.*', '!INFORMATION_SCHEMA.*', '!PERFORMANCE_SCHEMA.*', '!METRICS_SCHEMA.*', '!INSPECTION_SCHEMA.*']

# [[mydumper.files]]

# 解析 AWS Aurora parquet 文件所需的表达式

# pattern = '(?i)^(?:[^/]*/)*([a-z0-9_]+)\.([a-z0-9_]+)/(?:[^/]*/)*(?:[a-z0-9\-_.]+\.(parquet))$'

# schema = '$1'

# table = '$2'

# type = '$3'

#eg.

# pattern = '(?i)^(?:[^!]*/)*emp\.sal\.(00000000[0-1] | 000000001)\.csv'

# schema = "emp"

# table = "sal"

# type = "csv"

# 配置 CSV 文件的解析方式。

[mydumper.csv]

# 字段分隔符,支持一个或多个字符,默认值为 ','

separator = ','

# 引用定界符,设置为空表示字符串未加引号。

delimiter = '"'

# 行尾定界字符,支持一个或多个字符。设置为空(默认值)表示 "\n"(换行)和 "\r\n" (回车+换行),均表示行尾。

terminator = ""

# CSV 文件是否包含表头。

# 如果 header = true,将跳过首行

header = true

# CSV 文件是否包含 NULL

# 如果 not-null = trueCSV 所有列都不能解析为 NULL

not-null = false

# 如果 not-null = false(即 CSV 可以包含 NULL),

# 为以下值的字段将会被解析为 NULL

null = '\N'

# 是否对字段内“\“进行转义

backslash-escape = true

# 如果有行以分隔符结尾,删除尾部分隔符。

trim-last-separator = false

[tikv-importer]

# 导入模式配置,设为 local 即使用 Physical Import Mode

backend = "local"

#是否允许向已存在数据的表导入。默认为false

#当使用并行导入时,由于多个tidb lightning实例同时导入一张表,因此次开关必须设为true

Incremental-import = true

# 冲突数据处理方式

duplicate-resolution = 'remove'

# 本地进行 KV 排序的路径,临时存储地址。

sorted-kv-dir = "./some-dir"

[tidb]

# 目标集群的信息。tidb-server 的地址,填一个即可。

host = "172.16.31.1"

port = 4000

user = "root"

# 设置连接 TiDB 的密码,可为明文或 Base64 编码。

password = ""

# 必须配置。表结构信息从 TiDB “status-port”获取。

status-port = 10080

# 必须配置。pd-server 的地址,填一个即可。

pd-addr = "172.16.31.4:2379"

# tidb-lightning 引用了 TiDB 库,并生成产生一些日志。

# 设置 TiDB 库的日志等级。

log-level = "error"

[post-restore]

# 配置是否在导入完成后对每一个表执行 `ADMIN CHECKSUM TABLE <table>` 操作来验证数据的完整性。

# 可选的配置项:

# - "required"(默认)。在导入完成后执行 CHECKSUM 检查,如果 CHECKSUM 检查失败,则会报错退出。

# - "optional"。在导入完成后执行 CHECKSUM 检查,如果报错,会输出一条 WARN 日志并忽略错误。

# - "off"。导入结束后不执行 CHECKSUM 检查。

# 默认值为 "required"。从 v4.0.8 开始,checksum 的默认值由此前的 "true" 改为 "required"。

#

# 注意:

# 1. Checksum 对比失败通常表示导入异常(数据丢失或数据不一致),因此建议总是开启 Checksum。

# 2. 考虑到与旧版本的兼容性,依然可以在本配置项设置 `true` 和 `false` 两个布尔值,其效果与 `required` 和 `off` 相同。

checksum = "required"

# 配置是否在 CHECKSUM 结束后对所有表逐个执行 `ANALYZE TABLE <table>` 操作。

# 此配置的可选配置项与 `checksum` 相同,但默认值为 "optional"

analyze = "optional"

2.创建库与表

drop database emp;

create database emp;

use emp;

create table xxxxxxxxxxxx

3.启用tidb lightning

#!/bin/bash

nohup tidb-lightning-config tidb-lightning.toml > nohup.out &

4.检查日志

查看nohup日志与tidb-lightning.log

过滤:

断点续传

配置文件里加入

[checkpoint]

# 启用断点续传。

# 导入时,TiDB Lightning 会记录当前进度。

# 若 TiDB Lightning 或其他组件异常退出,在重启时可以避免重复再导入已完成的数据。

enable = true

# 存储断点的方式

#  - file:存放在本地文件系统(要求 v2.1.1 或以上)

#  - mysql:存放在兼容 MySQL 的数据库服务器

driver = "file"

# 存储断点的架构名称(数据库名称)

# 仅在 driver = "mysql" 时生效

# schema = "tidb_lightning_checkpoint"

# 断点的存放位置

#

# driver = "file",此参数为断点信息存放的文件路径。

# 如果不设置该参数则默认为 `/tmp/CHECKPOINT_SCHEMA.pb`

#

# 若 driver = "mysql",此参数为数据库连接参数 (DSN),格式为“用户:密码@tcp(地址:端口)/”。

# 默认会重用 [tidb] 设置目标数据库来存储断点。

# 为避免加重目标集群的压力,建议另外使用一个兼容 MySQL 的数据库服务器。

# dsn = "/tmp/tidb_lightning_checkpoint.pb"

# 导入成功后是否保留断点。默认为删除。

# 保留断点可用于调试,但有可能泄漏数据源的元数据。

# keep-after-success = false

断点续传的控制

服务器宕机之类的,可以通过断点续传继续,但是如果数据因不可恢复的错误报错,重启时不会使用断点,会直接报错离开。使用tidb-lightning-ctl工具表示已经修复好了。

Schema/table区分大小写

目标库移除该表

tidb-lightning-ctl --checkpoint-error-destroy='`schema`.`table`'

移除全部表

tidb-lightning-ctl --checkpoint-error-destroy=all

忽略该表报错(慎用)

tidb-lightning-ctl --checkpoint-error-ignore='`schema`.`table`'

忽略全部报错(慎用)

tidb-lightning-ctl --checkpoint-error-ignore=all

该表断点清理掉,从头开始

tidb-lightning-ctl --checkpoint-remove='`schema`.`table`'

所有表断点清理掉,从头开始

tidb-lightning-ctl --checkpoint-remove=all

标签:断点,备份,lightning,checkpoint,导入,tidb,true
From: https://blog.csdn.net/u014596132/article/details/137223425

相关文章

  • Windows10基于docker的mysql8的备份和拷贝文件到宿主机
    Windows10基于docker的mysql8的备份和拷贝文件到宿主机##环境说明操作系统:windows10docker:v4.25.0mysql:8##进入容器dockerexec-itmysql8/bin/bash ##备份特定数据库mysqldump-uroot-pMm123456jeesite>jeesite.sql ##退出容器 exit ##将备份......
  • 在Linux中,有哪些备份和恢复工具?
    在Linux环境中,备份和恢复工具众多,以下是几种常用的备份和恢复工具,以及它们的主要特点和用途:rsyncrsync是一款强大的文件同步和备份工具,它通过仅复制自上次备份以来发生变化的部分来实现增量备份,这大大减少了备份所需时间和存储空间。rsync可通过本地或网络进行数据同步,支持SS......
  • 在Linux中,如何备份一个数据库?
    在Linux系统中,备份数据库是一项重要的维护任务,它可以确保在发生数据丢失或系统故障时能够恢复数据。根据所使用的数据库类型,备份方法会有所不同。以下是针对MySQL和PostgreSQL两种常见数据库的备份方法:1.MySQL数据库备份使用mysqldump工具:mysqldump是MySQL自带的一个命令行......
  • KingbaseES V8R6集群运维案例之---single-pro模式备份
    案例说明:KingbaseESV8R6集群物理备份配置参数_target_db_style,可选single或cluster或single-pro。single对应单机模式的目标数据库实例,cluster对应集群模式的目标数据库实例,single-pro对应集群模式的每个DB节点独立备份。本案例详细描述集群架构在singl-pro模式下的备份。适用......
  • Veritas NetBackup 10.4 (Unix, Linux, Windows) - 领先的企业备份解决方案
    VeritasNetBackup10.4(Unix,Linux,Windows)-领先的企业备份解决方案The#1enterprisebackupandrecoverysolution.请访问原文链接:https://sysin.org/blog/veritas-netbackup-10/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org备份和恢复软件解决方案领......
  • credwiz.exe 是 Windows 操作系统中的一个程序,用于备份和还原用户凭据。凭据可以包括
    credwiz.exe是Windows操作系统中的一个程序,用于备份和还原用户凭据。凭据可以包括保存的密码、证书、访问令牌等信息。使用凭据向导(CredentialBackupandRestoreWizard)可以帮助用户在需要时轻松地备份和恢复这些重要的凭据。这个工具通常用于帮助用户在更换计算机、重装操......
  • MYSQL整库备份
    要进行MySQL整库备份,可以使用mysqldump工具。以下是一个基本的命令行示例,该命令将备份名为mydatabase的整个数据库到一个名为mydatabase_backup.sql的文件中:bashmysqldump-uusername-pmydatabase>mydatabase_backup.sql在上面的命令中,username是你用来连接MySQL服务......
  • openGauss 物理备份
    物理备份可获得性本特性自openGauss1.0.0版本开始引入。特性简介支持将整个数据库的数据以内部格式备份到指定的存储介质中。客户价值通过物理备份特性,可以达成以下目的:整个数据库的数据备份到可靠性更高的存储介质中,提升系统整体的可靠性。通过采用数据库内部的数据格......
  • KingbaseES V8R3备份恢复案例之---backup_label does not exist in KINGBASE_DATA
    案例说明:在KingbaseESV8R3集群主库执行sys_rman的全备时,出现‘backup_labeldoesnotexistinKINGBASE_DATA’的故障,如下图所示:适用版本:KingbaseESV8R3一、问题现象如下所示,数据库执行sys_rman物理备份:[kingbase@node201bin]$./sys_rman-Usystem-W123456-dtes......
  • SinoDB备份恢复工具之onbar
    onbar是SinoDB数据库的备份工具之一,它可以根据用户选择的线程数量并行地运行备份或恢复。不同于ontape,onbar必须先安装和配置存储管理器,进行才能备份和恢复。1.onbar功能特性支持选择具体的存储空间进行备份或恢复支持基于时间点的恢复支持执行单独的物理和逻辑恢复......