1. 程式人生 > >MySQL備份之mysqlpump工具之--hex-blob引數

MySQL備份之mysqlpump工具之--hex-blob引數

從5.7.8開始,mysql提供mysqlpump工具。
這個工具目前還不能大面積使用,因為他要求服務端版本也要>=5.7.8。
但是這個工具真是極好的。
經過測試發現,該工具提供如下一個引數:
--hex-blob
該引數控制mysqlpump將:BINARY, VARBINARY, BLOB, BIT型別匯出為十六進位制。
而相比於mysqlpump,mysqldump就沒有這個功能。
在面對BINARY, VARBINARY, BLOB, BIT型別時,mysqldump只能匯出為“亂碼”。
這個“亂碼”在傳輸過程中,很容易發生改變。
導致最終恢復資料後,無法百分百保證資料的一致性。
比如,有表結構為:
mysql> desc t1;
+--------+----------+------+-----+---------+-------+
| Field  | Type     | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+-------+
| b_bit  | bit(5)   | YES  |     | NULL    |       |
| c_char | char(10) | YES  |     | NULL    |       |
| b_blob | blob     | YES  |     | NULL    |       |
+--------+----------+------+-----+---------+-------+
3 rows in set (0.01 sec)


mysql>
其中資料為:



如果我們使用mysqldump匯出後,你會發現bit列和blob列都是“亂碼”。
而我們使用mysqlpump工具--hex-blob匯出後,你會發現bit列和blob列都是十六進位制。


為了簡單,我們把blob列刪除後,對比一下mysqldump和mysqlpump的匯出結果:

C:\Users\Administrator>mysqlpump -P3307 -B test--hex-blob > d:\temp\t2.sql
Dump progress: 0/1 tables, 2/2 rows
Dump completed in 1244 milliseconds


C:\Users\Administrator>cat d:\temp\t2.sql
-- Dump created by MySQL pump utility, version: 5.7.11, Win64 (x86_64)
-- Dump start time: Fri Apr 01 14:20:34 2016
-- Server version: 5.7.11


SET @

[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @[email protected]@TIME_ZONE;
SET TIME_ZONE='+00:00';
SET @[email protected]@CHARACTER_SET_CLIENT;
SET @[email protected]@CHARACTER_SET_RESULTS;
SET @[email protected]
@COLLATION_CONNECTION;
SET NAMES utf8mb4;
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET utf8 */;
CREATE TABLE `test`.`t1` (
`b_bit` bit(5) DEFAULT NULL,
`c_char` char(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
;
INSERT INTO `test`.`t1` VALUES (0x1C,"abcd1\'\n;\n"),(0x1C,"abcd1\'\n;\n");  #並且mysqlpump把字串型別的列使用雙引號("")包括,而mysqldump是單引號
SET [email protected]_TIME_ZONE;
SET [email protected]_CHARACTER_SET_CLIENT;
SET [email protected]_CHARACTER_SET_RESULTS;
SET [email protected]_COLLATION_CONNECTION;
SET [email protected]_FOREIGN_KEY_CHECKS;
SET [email protected]_UNIQUE_CHECKS;
-- Dump end time: Fri Apr 01 14:20:35 2016


C:\Users\Administrator>

但是mysqldump呢:

C:\Users\Administrator>mysqldump -P3307 -B test  > d:\temp\t2.1.sql
Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events.


C:\Users\Administrator>

簡單起見,這裡截圖顯示“亂碼”內容:


途中的亂碼你認識嗎?

所以mysqlpump是極好的。

更新:mysqldump也有--hex-blob引數,而文件描述該工具只能對BINARY, VARBINARY, BLOB型別作十六進位制轉換。

但是測試過程中發現,對bit型別也可以作十六進位制轉換。

相關推薦

MySQL備份mysqlpump工具--hex-blob引數

從5.7.8開始,mysql提供mysqlpump工具。 這個工具目前還不能大面積使用,因為他要求服務端版本也要>=5.7.8。 但是這個工具真是極好的。 經過測試發現,該工具提供如下一個引數: --hex-blob 該引數控制mysqlpump將:BINARY, V

MySQL備份mysqlpump工具備份

從5.7.8開始,mysql官方提供一個邏輯備份工具:mysqlpump。 和mysqldump工具類似,也是用來備份資料庫的。 功能和mysqldump也差不多,但是速度卻比mysqldump快很多。我在筆記本上測試至少快50%(但是我mysqlpump執行緒開到5時,i

MySQL備份mysqldump工具--lock-all-tables

在使用mysqldump(或者mysqlpump)備份mysql資料庫時,有如下三個引數值得研究: --lock-all-tables 保證整個資料庫(所有schema)的資料具有一致性快照。 在mysqldump匯出的整個過程中以read方式鎖住所有表(鎖住方式

MySQL(十四)數據備份與還原

pic 還原 mysql .com ace sql .cn uid 數據備份 http://pic.cnhubei.com/space.php?uid=4614&do=album&id=1719909http://pic.cnhubei.com/space.

實時備份工具inotify+rsync

rsync inotify 1.inotify簡介 inotify 是一個從 2.6.13 內核開始,對 Linux 文件系統進行高效率、細粒度、異步地監控機制, 用於通知用戶空間程序的文件系統變化。可利用它對用戶空間進行安全、性能、以及其他方面的監控。Inotify 反應靈敏,用法非常簡單,並且比

Mysql備份還原資料庫mysqldump例項及引數詳細說明

Mysql備份還原資料庫之mysqldump例項及引數詳細說明 我們在運營專案的過程中肯定會遇到備份資料庫,還原資料庫的情況,我們一般用一下兩種方式來處理: 1.使用into outfile 和 load data infile匯入匯出備份資料 這種方法的好處是,匯出

Mysql閃回工具binlog2sql的原理及其使用

生產上誤刪資料、誤改資料的現象也是時常發生的現象,作為 DBA 這時候就需要出來補鍋了,最開始的做法是恢復備份,然後從中找到需要的資料再進行修復,但是這個時間太長了,對於大表少數資料的修復來講,動作太大,成本也大。 當然還有其他的一些操作方法,我們今天有主角。 MySQL 閃回工具 -- &nb

MySQL測試工具-tpcc

首先安裝tpcc 官網地址:https://github.com/Percona-Lab/tpcc-mysql [[email protected] src]# unzip tpcc-mysql-master.zip [[email protected] src]# mv tpcc

Windows平臺備份還原工具Ghost

Ghost是一款symamtec公司開發的備份還原軟體。很多人談Ghost色變只是因為Ghos常被用來製作盜版作業系統。。但是作為一款備份還原工具來說,Ghost確實功能非常強大。 Ghost官方網站:https://www.symantec.com/products/gho

mysql備份lvm

新建一個lvm磁碟,這裡我建的lv為mydatalv,掛載到了/data下[[email protected] ~]# lvsLV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert mydatalv mydata -wi-

mysql備份xtrabackup(建議用來備份innodb)

安裝xtrabackup 下載地址:https://www.percona.com/downloads/XtraBackup/ 安裝xtrabackup [[email protected] ~]# yum install percona-xt

實時抽取mysql資料工具maxwell

利用Maxwell元件實時監聽mysql的binlog日誌,並且把解析的json格式資料傳送到kafka視窗供實時消費 文件主題: 如何使用Maxwell實時監聽Mysql的binlog日誌,並且把解析的json格式資料傳送到kafka視窗 具體步驟 一:在linux環境下安裝部署好mysq

MySQL 命令列工具 mysqldump 深入研究

mysqldump 是MySQL的一個命令列工具,用於邏輯備份。可以將資料庫和表的結構,以及表中的資料分別匯出成:create database, create table, insert into的sql語句。當然也可以匯出 儲存過程,觸發器,函式,排程事件(events)

MySQL備份xtrabackup

2.x 拷貝文件 xtra 線程 apply-log 遠程備份 ont reat 3.5 目錄 1.xtrabackup安裝 2.xtrabackup原理 3.xtrabackup命令詳解 1)xtrabackup安裝 wget https://www.percona.

MySQL備份與恢復percona-xtrabackup軟體的使用

一 使用percona-xtrabackup的原因        在前面,我們講到MySQL冷備、熱備、mysqldump、熱拷貝、保證資料的一致性。因為mysql冷備、mysqldump、mysql熱拷貝均不能實現增量備份,在實際環境中增量備份是使用較多的,percon

mysql系列5.mysql備份恢復

備份資料: mysqldump #mysqldump -uroot -p123456 test > /test_bak.sql #egrep -v "#|\*|--|^$" /test_bak.sql 指定對應字符集 #mysqldump -uroot -p1234

MySQL備份mysqldump

備份型別: 1.物理備份:指的是物理檔案的複製,從一個存放位置拷貝到另一個位置;分為冷備和熱備和溫備;熱備份:讀、寫不受影響; 溫備份:僅可以執行讀操作;冷備份:離線備份;讀、寫操作均中止;很少使用,生產環境下的伺服器堅決不允許停機 優點:直接拷貝mysql

MySQL 5.7 mysqlpump 備份工具

MySQL5.7之後多了一個備份工具:mysqlpump。它是mysqldump的一個衍生,mysqldump就不多說明了,現在看看mysqlpump到底有了哪些提升,可以檢視官方文件,這裡針對如何使用做下說明。 mysqlpump和mysqldump一樣,屬

Android開發中有用工具--Log工具

util lena 日誌 日誌信息 stat 們的 常常 我們 imp 在開發的過程中。我們常常會使用Log來輸出日誌,幫助我們來調試程序 可是有時候並不能全然滿足我們的須要 ,比方我想知道這個日誌信息是來自於哪一個包 哪一個類 所以我們封裝一個這個Log類。方便我們的

1Python全棧路系列MySQL數據庫基本操作

大型數據庫 數據庫管理 數據庫軟件 程序員 sql數據庫 Python全棧之路系列之MySQL數據庫基本操作MySQL數據庫介紹MySQL是一種快速易用的關系型數據庫管理系統(RDBMS),很多企業都在使用它來構建自己的數據庫。MySQL由一家瑞典公司MySQL AB開發、運營並予以支持。