mysql系列之5--完全備份和增量備份

一、利用系統自帶的工具實現完全備份:mysqldump

數據備份方式:

         物理備份:直接拷貝庫或表對應的文件。限於myisam,跨平臺性差

         邏輯備份:執行備份時,根據已有的數據,生成對應的sql命令,把sql保存到指定的文件裏

1、備份所有的數據庫:

        mysqldump -hlocalhost -uroot -p12345678   --all-databases > /opt/$(date +%F).sql

      //--all-databases--所有數據庫 /opt/$(date +%F).sql 重定向到以日期命名的文件

2、備份指定的數據庫:

   mysqldump -hlocalhost -uroot -p12345678   db1 db2  > /opt/$(date +%F).sql

3、完全恢復:首先要確保庫存在,沒有先創建

    mysql -hlocalhost -uroot -p12345678 db88 < /opt/123.sql

4、完全恢復也可以在mysql命令行裏進行:source  /opt/2018-01-22.sql

5、完全備份可以用定時計劃任務來進行

     if [ ! -d /data ];then    //首先判斷該目錄是否存在,不存在則創建

          mkdir /data

     fi

    mysqldump -uroot -p12345678 test > /data/$(date +%F)-test.sql


二、啓用binlog日誌實現實時增量備份  

差異備份:備份自完全備份後,所有產生的數據

增量備份:備份自上一次備份後,所有新產生的數據

  1、二進制日誌,記錄除查詢之外的sql命令

      由於mysql默認沒有啓用binlog日誌,故需在配置文件裏面修改

      日誌文件,不能大於500M,mysqlbinlog server51-bin.000001 //查看日誌命令

      server_id=51                       //服務器編號,唯一

      log-bin=/mysqllog/server51  //啓用logbin日誌文件,指定其路徑和文件名,必須要給mysql帳號權限

      binlog-format="mixed"        //指定日誌文件格式,有三種格式

 2、日誌文件記錄sql命令的方式

       時間: 180127 23:23:29 server id 51

       偏移量:  at 313

 3、恢復數據

   A、偏移量恢復:

    mysqlbinlog  --start-position=378  --stop-position=534  /mysqllog/server51.000001      |  mysql -uroot  -p12345678 

                                    起始偏移量                           終止偏移量                       binlog日誌文件                                                 登陸的帳號和密碼

    B、時間恢復

        mysqlbinlog --start-datetime="2018-1-27 23:22:22" --stop-datetime="2018-1-27 23:23:29"  //指定起始時間和終止時間

          /mysqllog/server51.000001   |  mysql -uroot  -p12345678    //指定日誌文件和登陸的用戶名和密碼

  4、  手動生成新的日誌文件   binlog

         刷新日誌:flush logs;

         登陸時創建:mysql  -uroot  -p123456   -e  "flush logs"

         導出備份數據庫時:mysqldump  -uroot  -p123456  --flush-logs  db4  > /root/db4.sql

         重啓服務器時生成新的日誌文件

 5、如何刪除日誌

 mysql> reset   master;        //刪除所有的日誌,生成一個新的日誌文件

 mysql> purge  master  logs  to  "日誌文件名";   //刪除單個日誌文件

 mysql> purge  master  logs  to "plj.000006";     //刪除指定日誌文件之前所有的日誌文件






















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章