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數據庫的相關匹配記錄