zoukankan      html  css  js  c++  java
  • redgate的mysql架构比较和数据比较工具

    redgate的mysql架构比较和数据比较工具

    最近线上数据需要进行架构比较,比较两个服务器上的mysql实例上数据库的架构

    数据比较可以用percona的pt-table-checksum和pt-table-sync,但是这两个工具只能比较数据的异同不能比较架构的异同

    网上搜索了一下,只找到redgate的mysql架构比较和数据比较工具

    地址:http://www.red-gate.com/products/mysql/mysql-comparison-bundle/

    下载了mysql-comparison-bundle之后安装会有两个工具,一个是 MySQL Compare用来比较架构的异同,一个是MySQL Data Compare用来比较数据的异同

    MySQL Compare

    数据源选项卡

    选项选项卡

    选项里面两个
    1、差异脚本行为
    用来生成差异脚本的行为
    例如是否包含use database,是否包含脚本头等

    2、忽略选项
    忽略sql中的注释
    约束名
    忽略自增列
    忽略反引号 backticks
    忽略表注释

    两边架构相同的情况

    两边架构不同的情况

    生成的差异脚本以左边的mysql实例为标准

    生成的脚本

    -- Script generated by MySQL Compare 1.0.1.4 on 2017/6/12 23:40:53
    
    SET @ORIGINAL_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
    SET @ORIGINAL_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
    SET @ORIGINAL_SQL_MODE=@@SQL_MODE, SQL_MODE='ALLOW_INVALID_DATES,NO_AUTO_VALUE_ON_ZERO,NO_AUTO_CREATE_USER';
    
    SET @ORIGINAL_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
    SET @ORIGINAL_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
    SET @ORIGINAL_SQL_MODE=@@SQL_MODE, SQL_MODE='ALLOW_INVALID_DATES,NO_AUTO_VALUE_ON_ZERO,NO_AUTO_CREATE_USER';
    
    ALTER TABLE `school`.`tt3`
      DROP COLUMN `tid`;
    
    SET FOREIGN_KEY_CHECKS=@ORIGINAL_FOREIGN_KEY_CHECKS;
    SET UNIQUE_CHECKS=@ORIGINAL_UNIQUE_CHECKS;
    SET SQL_MODE=@ORIGINAL_SQL_MODE;

    MySQL Data Compare

    数据源选项卡

    表格选项卡

    如果表没有主键几乎是不能比较的,所以建议所有表都要有主键

    可以自己选择比较的字段,也可以用where条件,但是where条件比较鸡肋,要针对所有表的

     

    选项里面两个
    1、比较行为
    消除末尾空格

    2、部署行为
    包含部署脚本头
    包含架构(数据库)名

    两边数据相同的情况

    两边数据不同的情况

     

    生成的差异脚本以左边的mysql实例为标准

    生成的脚本

    SET @ORIGINAL_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
    SET @ORIGINAL_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
    
    INSERT INTO `school3`.`tt4` VALUES (5, '78pppppppppp');
    
    SET FOREIGN_KEY_CHECKS=@ORIGINAL_FOREIGN_KEY_CHECKS;
    SET UNIQUE_CHECKS=@ORIGINAL_UNIQUE_CHECKS;

    f

  • 相关阅读:
    *p++与(*p)++与*(p++)------自增运算符常见误区
    二维数组(解引用、指针数组、数组的指针)——C语言
    二叉树、前序遍历、中序遍历、后序遍历
    C语言参数传递(值传递、地址传递)+二级指针
    文件操作(FILE)与常用文件操作函数——C语言
    结构体(结构体嵌套、结构体指针、结构体参数传递)
    链表(单向链表的建立、删除、插入、打印)
    博文与文档发布玩法:Github + MWeb + 语雀 + Cnbolgs
    [笔记] Git 冲突处理
    [笔记] C# 如何获取文件的 MIME Type
  • 原文地址:https://www.cnblogs.com/MYSQLZOUQI/p/6995501.html
Copyright © 2011-2022 走看看