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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM