1. mydumper備份工具介紹與使用

        共 4275字,需瀏覽 9分鐘

         ·

        2021-09-19 14:01

        前言:

        前面文章有介紹過(guò) MySQL 系統(tǒng)自帶的 mysqldump 備份工具的使用,其實(shí)還有一個(gè)開(kāi)源工具 mydumper 同樣適用于 MySQL 的邏輯備份。之前一直沒(méi)有正式體驗(yàn)過(guò),只是聽(tīng)說(shuō)比 mysqldump 要快很多,具體使用效果如何, 一起來(lái)看下吧。


          1. mydumper 簡(jiǎn)介


        mydumper 是一款社區(qū)開(kāi)源的邏輯備份工具。該工具主要由 C 語(yǔ)言編寫(xiě),目前由 MySQL 、Facebook 等公司人員開(kāi)發(fā)維護(hù)。


        官網(wǎng)地址:https://launchpad.net/mydumper

        GitHub 地址:https://github.com/maxbube/mydumper


        參考官方介紹,mydumper 主要有以下幾點(diǎn)特性:


        • 支持多線程導(dǎo)出數(shù)據(jù),速度更快。

        • 支持一致性備份。

        • 支持將導(dǎo)出文件壓縮,節(jié)約空間。

        • 支持多線程恢復(fù)。

        • 支持以守護(hù)進(jìn)程模式工作,定時(shí)快照和連續(xù)二進(jìn)制日志。

        • 支持按照指定大小將備份文件切割。

        • 數(shù)據(jù)與建表語(yǔ)句分離。

          2. mydumper 安裝


        安裝方法大概有兩種,一種是編譯安裝,一種是 yum 直接安裝 rpm 包。下面以 CentOS 系統(tǒng)為例,簡(jiǎn)單展示下安裝方法:


        # 1.編譯安裝
        [root@localhost ~]# yum -y  install glib2-devel mysql-devel zlib-devel pcre-devel zlib gcc-c++ gcc cmake
        [root@localhost ~]# wget https://launchpad.net/mydumper/0.9/0.9.1/+download/mydumper-0.9.1.tar.gz
        [root@localhost ~]# tar zxf mydumper-0.9.1.tar.gz
        [root@localhost ~]# cd mydumper-0.9.1/
        [root@localhost mydumper-0.9.1]# cmake .
        [root@localhost mydumper-0.9.1]# make
        [root@localhost mydumper-0.9.1]# make install
        # 安裝完成后生成兩個(gè)二進(jìn)制文件 mydumper 和 myloader 位于 /usr/local/bin 目錄下
        [root@localhost bin]# ls /usr/local/bin/
        mydumper  myloader

        # 2.直接安裝 rpm 包
        # rpm包地址:https://github.com/maxbube/mydumper/releases 請(qǐng)根據(jù)自己的系統(tǒng)類(lèi)型選擇下載版本
        [root@localhost ~]# yum install https://github.com/maxbube/mydumper/releases/download/v0.10.7-2/mydumper-0.10.7-2.el7.x86_64.rpm
        # 安裝完成后生成兩個(gè)二進(jìn)制文件 mydumper 和 myloader 位于 /usr/bin 目錄下


          3. mydumper 使用


        安裝完成后,可以很明顯看出,mydumper 和 myloader 是相對(duì)應(yīng)的一組可執(zhí)行程序,二者的作用分別是導(dǎo)出數(shù)據(jù)與導(dǎo)入數(shù)據(jù)。我們先來(lái)看下如何使用 mydumper 來(lái)備份數(shù)據(jù)。


        首先執(zhí)行 mydumper --help 命令可以獲取幫助信息,同 mysqldump 類(lèi)似,mydumper 也可以自定義很多參數(shù),參考官方介紹,以下簡(jiǎn)要說(shuō)明部分常用的參數(shù)。



        看完這些參數(shù),是不是想躍躍欲試嘗試下啦,下面我們來(lái)具體使用下,感受下效果如何。

        # 備份全部數(shù)據(jù)庫(kù) 
        mydumper -u root -p 123456 -o /mysql_backup/all/
        # 全量備份 會(huì)備份 mysql、sys 系統(tǒng)庫(kù)及其他自建庫(kù)

        # 備份全部數(shù)據(jù)庫(kù) 包含觸發(fā)器、事件、存儲(chǔ)過(guò)程及函數(shù)
        mydumper -u root -p 123456 -G -R -E -o /mysql_backup/all2/

        # 備份指定庫(kù)
        mydumper -u root -p 123456 -G -R -E -B db1 -o /mysql_backup/db1/

        # 使用正則 排除系統(tǒng)庫(kù)
        mydumper -u root -p 123456 -G -R -E --regex '^(?!(mysql|sys))' -o /mysql_backup/all3

        # 備份指定表
        mydumper -u root -p 123456 -B db1 -T tb1,tb2 -o /mysql_backup/tb/

        # 只備份表結(jié)構(gòu)
        mydumper -u root -p 123456 -d -B db1 -o /mysql_backup/nodata/

        # 只備份表數(shù)據(jù)
        mydumper -u root -p 123456 -m -B db1 -o /mysql_backup/noschema/

        # 壓縮備份某個(gè)表
        mydumper -u root -p 123456 -B db1 -T tb1 -c -o /mysql_backup/compress/

        以上是針對(duì)不同場(chǎng)景給出的相應(yīng)備份語(yǔ)句,實(shí)際執(zhí)行后,我們發(fā)現(xiàn):mydumper 備份會(huì)產(chǎn)生多個(gè)文件,比如建庫(kù)、建表、表數(shù)據(jù)等都分別在不同文件中。以 db1 庫(kù)的全備為例,來(lái)看下備份出的文件命名規(guī)則及作用。


        [root@localhost ~]# cd /mysql_backup/db1/
        [root@localhost db1]# tree .
        .
        ├── db1-schema-create.sql
        ├── db1-schema-post.sql
        ├── db1.tb1.metadata
        ├── db1.tb1-schema.sql
        ├── db1.tb1-schema-triggers.sql
        ├── db1.tb1.sql
        ├── db1.tb2.metadata
        ├── db1.tb2-schema.sql
        ├── db1.tb2.sql
        ├── db1.tb3.metadata
        ├── db1.tb3-schema.sql
        ├── db1.view1-schema.sql
        ├── db1.view1-schema-view.sql
        └── metadata

        0 directories, 14 files


        可能各個(gè)版本備份出來(lái)的文件命名稍有不同,從文件命名可以較為明顯的看出該文件的內(nèi)容,大致總結(jié)下文件命名規(guī)則如下:


        • dbname-schema-create.sql:建庫(kù)語(yǔ)句。

        • dbname-schema-post.sql:包含事件、存儲(chǔ)過(guò)程及函數(shù)創(chuàng)建語(yǔ)句(若存在則有該文件)。

        • dbname.tbname.metadata:記錄這個(gè)表的行數(shù)。

        • dbname.tbname-schema.sql:此表的創(chuàng)建語(yǔ)句。

        • dbname.tbname-schema-triggers.sql:創(chuàng)建觸發(fā)器語(yǔ)句(若該表存在觸發(fā)器 則有此文件)。

        • dbname.tbname.sql:該表的插入數(shù)據(jù)語(yǔ)句(若該表為空 則不存在此文件)。

        • dbname.viewname-schema.sql:創(chuàng)建視圖語(yǔ)句(只列舉出視圖字段)。

        • dbname.viewname-schema-view.sql:創(chuàng)建視圖的真正語(yǔ)句。

        • metadata:記錄開(kāi)始及結(jié)束備份的時(shí)間以及二進(jìn)制日志位置。


        總結(jié):


        本篇文章簡(jiǎn)單介紹了 mydumper 備份工具的安裝及使用方法,作為自己學(xué)習(xí)的一種記錄,希望本篇文章能對(duì)各位有所幫助,想體驗(yàn) mydumper 工具的小伙伴可以參考下。要想用好這個(gè)工具還需要自己積累實(shí)戰(zhàn)經(jīng)驗(yàn),只有用得多了才會(huì)更順手。

        推薦閱讀


        (點(diǎn)擊標(biāo)題可跳轉(zhuǎn)閱讀)

        MySQL連接控制插件介紹

        執(zhí)行update語(yǔ)句,用沒(méi)用到索引,區(qū)別大嗎?

        MySQL information_schema 系統(tǒng)庫(kù)介紹

        - End -
        瀏覽 107
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 小舞揉搓难受3d动漫 | 精品在线第一页 | 操逼视频一级 | 男人添女人的屁股眼的全过程 | 在线观看操B |