MySQL 是如何归档数据的呢?

pt-archiver是Percona Toolkit中的数据归档工具,用于安全地从业务实例迁移数据到归档实例并删除源数据。本文详细介绍了pt-archiver的安装、使用方法、实现原理、批量归档、性能对比以及其他常见用法,旨在帮助开发者理解如何高效、安全地执行MySQL数据归档操作。
摘要由CSDN通过智能技术生成

它通常涉及以下两个动作:

  • 迁移: 将数据从业务实例迁移到归档实例。

  • 删除: 从业务实例中删除已迁移的数据。

在处理类似需求时,都是开发童鞋提单给DBA,由DBA来处理。

于是,很多开发童鞋就好奇,DBA都是怎么执行归档操作的?归档条件没有索引会锁表吗?安全吗,会不会数据删了,却又没归档成功?

针对这些疑问,下面介绍MySQL中的数据归档神器——pt-archiver。

一、什么是 pt-archiver

pt-archiver是Percona Toolkit中的一个工具。

Percona Toolkit是Percona公司提供的一个MySQL工具包。

工具包里提供了很多实用的MySQL管理工具。

譬如,我们常用的表结构变更工具pt-online-schema-change,主从数据一致性校验工具pt-table-checksum。

毫不夸张地说,熟练使用Percona Toolkit是MySQL DBA必备的技能之一。

二、安装

Percona Toolkit下载地址:https://www.percona.com/downloads/percona-toolkit/LATEST/

官方针对多个系统提供了现成的软件包。

我常用的是Linux - Generic二进制包。

下面以Linux - Generic版本为例,看看它的安装方法。

 

# cd /usr/local/

# wget https://downloads.percona.com/downloads/percona-toolkit/3.3.1/binary/tarball/percona-toolkit-3.3.1_x86_64.tar.gz --no-check-certificate

# tar xvf percona-toolkit-3.3.1_x86_64.tar.gz

# cd percona-toolkit-3.3.1

# yum install perl-ExtUtils-MakeMaker perl-DBD-MySQL perl-Digest-MD5

# perl Makefile.PL

# make

# make install

三、简单入门

首先,我们看一个简单的归档Demo。

测试数据

 

mysql> show create table employees.departments\G

*************************** 1. row ***************************

Table: departments

Create Table: CREATE TABLE `departments` (

`dept_no` char(4) NOT NULL,

`dept_name` varchar(40) NOT NULL,

PRIMARY KEY (`dept_no`),

UNIQUE KEY `dept_name` (`dept_name`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

1 row in set (0.00 sec)

mysql> select * from employees.departments;

+---------+--------------------+

| dept_no | dept_name |

+---------+--------------------+

| d009 | Customer Service |

| d005 | Development |

| d002 | Finance |

| d003 | Human Resources |

| d001 | Marketing |

| d004 | Production |

| d006 | Quality Management |

| d008 | Research |

| d007 | Sales |

+---------+--------------------+

9 rows in set (0.00 sec)

下面,我们将employees.departments表的数据从192.168.244.10归档到192.168.244.128。

具体命令如下:

pt-archiver --source h=192.168.244.10,P=3306,u=pt_user,p=pt_pass,D=employees,t=departments --dest h=192.168.244.128,P=3306,u=pt_user,p=pt_pass,D=employees,t=departments --where "1=1"

命令行中指定了三个参数。

  • --source:源库(业务实例)的DSN。

DSN在Percona Toolkit中比较常见,可理解为目标实例相关信息的缩写。

支持的缩写及含义如下:

  • --dest:目标库(归档实例)的DSN。

  • --where:归档条件。"1=1"代表归档全表。

四、实现原理

下面结合General log的输出看看pt-archiver的实现原理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值