mysql-utilities工具之MySQL数据库比对工具mysqldiff和mysqldbcompare

0    1064    1

Tags:

👉 本文共约4376个字,系统预计阅读时间或需17分钟。

简介

  • 如果要比较数据库表结构就使用mysqldiff,并生成差异SQL语句

  • 如果要比较数据库数据是否一致就使用mysqldbcompare,并生成差异SQL语句(全能比较,也可以比较数据库结构)

  • 如果要比较数据库主从一致使用pt-table-checksum,生成差异报告,在利用pt-table-sync数据修复

mysqldbcompare

mysqldbcompare从两个数据库比较对象和数据的不同。显示差异可以使用不同风格,如GRID, CSV, TAB, 或 VERTICAL。

在比较过程中数据不可以改变,否则出现错误。

数据库中的对象包括:表、视图、触发器、存储过程、函数和事件。每一个对象类型计数可以使用-vv选项显示。

通过一系列步骤检查进行测试,默认情况下,一旦测试失败就终止检测。可以指定 --run-all-tests 选项来进行所有的测试。

比较检测的内容包括:

  1. 数据库定义的检查

一个数据库存在的前提是检测确保数据库都存在。如果不存在,不需要进行下一步检测, --run-all-tests选项也被忽略的。

  1. 检测数据库的对象

检测两者数据库中的对象是否丢失。剩余的检测是针对这些数据库对象的。可以使用--skip-object-compare跳过该测试。当你已知缺少某些对象这个选项是有用的。

  1. 比较对象的定义

对对象的定义(CREATE语句)进行比较和显示不同。可以使用 --skip-diff 选项跳过这步。当你已知对象不同想忽略可用这个选项。

  1. 检测表的行数

这个检查确保这两个表有相同的行数,但这并不确保表的数据是一致性的。只是粗略性的检查表数据行数的缺失与否,识别丢失的行。可以使用 --skip-row-count选项跳过这步。

  1. 检查表数据的一致性

这个检查包括检查第四步的行数,同时也检查数据是否一致。行不同显示不同的风格报告,缺失的行也是如此,默认是GRID。

这个检查分为两步:首先对全表进行checksum校验,然后如果这步失败了算法将找出不同。

可以使用--skip-checksum-table 选项跳过表校验,使用--skip-data-check选项跳过数据检查。

如果你不想进行所有的检查,可以使用 --skip-xxx 选项来只进行某个测试。这在只想同步避免执行所有的测试非常有用。

测试的状态信息:

  • pass测试成功
  • FAIL测试失败
  • SKIP缺少或跳过测试
  • WARN测试时出现不寻常的但不是错误
  • -测试不适用于该对象

指定如何显示 diff-style输出:

可以通过--difftype选项来定义输出风格。

  • unified (default)统一的格式输出
  • context上下文格式输出
  • differdiffer-style格式输出
  • sqlSQL转换语句输出

指定如何显示行丢失或改变的输出:

可以通过使用--format选项来定义。

  • grid (default)网格化输出,类似于mysql命令行客户端输出
  • csv逗号分隔格式输出
  • tab制表符格式输出
  • vertical类似于mysql命令行客户端\G执行的输出

--changes-for选项控制着差异报告(默认)还是转换报告(需要--difftype=sql选项),以谁为参照物。如:

最左边的db1对应于--server1选项,最右边的dbx对应于--server2选项。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
mysql-utilities工具之MySQL数据库比对工具mysqldiff和mysqldbcompare后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部