mysql 歸檔方案(一次性)

1、 歸檔流程:mysql

               1. 導出須要的數據sql

               2. 建立臨時表table_tmp數據庫

               3. 導入數據到臨時表工具

               4. 修改原始表名爲table_bak事務

               5. 修改臨時表爲原始表名ip

2、歸檔方式對比get

  1. select into outfile load data infile 導入導出的方式it

    SELECT * FROM student where create_time > '2018-10-01 00:00:00' into  /data/mysql/student.sqlio

    source  /data/mysql/student.sqltable

  2. INSERT INTO 直接讀取寫入的方式

    INSERT INTO student_tmp SELECT * FROM student where create_time > '2019-02-16 00:00:00'

  3. mysql官方自帶邏輯備份工具mysqldump

    mysqldump --user=root --host=127.0.0.1 -p --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 test student --where="create_time > '2019-04-16 00:00:00'" > /data/mysql/student.sql

  4. Percona歸檔工具pt-archiver

    pt-archiver  \

    --source h=127.0.0.1, u=root, p=123456, D=test, t=student \

    --dest h=127.0.0.1, P=3306,u=root,p=123456, D=test,t=student_tmp \

     --progress 50000 \

    --where "create_time > '2019-02-16 00:00:00'" \

    --bulk-insert \

    --statistics \

    --charset=UTF8 \

    --limit=50000 \

    --txn-size 1000  \

    --no-delete  

    參數說明:

      --source      #源數據庫信息

      --dest    #目標數據庫信息

      --progress 5000    #每處理5000行輸出一次處理信息

      --where         #設置操做條件

      --bulk-insert    #批量插入數據到dest主機

      --statistics     #輸出執行過程及最後的操做統計

      --charset=UTF8    #指定字符集爲UTF8

      --limit=50000     #每次取1000行數據用pt-archive處理

      --txn-size 1000    #設置1000行爲一個事務提交一次

      --no-delete      #不刪除源數據

      --purge     #刪除source數據庫的相關匹配記錄 

相關文章
相關標籤/搜索