pt-archiver數據導入遷移工具


pt-archiver數據導入遷移工具

  一直想明白,如何將一個大表的數據,每多少行數據已提交,分批次的轉儲到另外的地方,幸好有現成的工具,趕緊把實驗成功的操作記錄下來。

原理就不解釋了,直接上最常用的命令。

 

數據導入導出工具pt-archiver
工具可以將MySQL的表數據導出到一個新表或者一個文件,也有自己的應用場景,比如數據歸檔,刪除數據,數據合並等。
具體用法:
pt-archiver [OPTIONS] --source DSN --where WHERE

PT工具鏈接參數DSN一般適用於所有toolkit工具。
DSN的詳細參數:
a:查詢
A:字符集
b:true代表禁用binlog
D:數據庫
u:數據庫鏈接賬號
p:數據庫鏈接密碼
h:主機IP
F:配置文件位置
i:是否使用某索引
m:插件模塊
P:端口號
S:socket文件
t:表

具體使用,從一張表導入到另外一張表,要注意的是新表必須是已經建立好的一樣的表結構,不會自動創建表,而且where條件是必須指定的:

環境:
源表: t_user  
目標表: t_user_tg


pt-archiver --source h=192.168.65.128,P=3306,D=db222,t=t_user,u=root,p=rootpwd --dest h=192.168.65.128,P=3306,D=db223,t=t_user_tg,u=root,p=rootpwd --no-check-charset  --share-lock --sleep=1 --where 'id>=0'  --no-delete --progress 1000 --limit 1000 --txn-size 1000 --statistics --file '/tmp/arch_%Y-%m-%d-%D.%t.log'

 

[root@my3-224 ~]# pt-archiver --source h=192.168.65.128,P=3306,D=db222,t=t_user,u=root,p=rootpwd --dest h=192.168.65.128,P=3306,D=db223,t=t_user_tg,u=root,p=rootpwd --no-check-charset   --sleep=1 --where 'id>=0'  --no-delete --progress 1000 --limit 1000 --txn-size 1000 --statistics --file '/tmp/arch_%Y-%m-%d-%D.%t.log'

...
...
2018-05-24T05:55:43   21773 12967000
2018-05-24T05:55:45   21775 12968000
2018-05-24T05:55:46   21777 12969000
2018-05-24T05:55:48   21778 12970000
2018-05-24T05:55:49   21779 12970603
Started at 2018-05-23T23:52:49, ended at 2018-05-24T05:55:50
Source: D=db222,P=3306,h=192.168.65.128,p=...,t=t_user,u=root
Dest:   D=db223,P=3306,h=192.168.65.128,p=...,t=t_user_tg,u=root
SELECT 12970603
INSERT 12970603
DELETE 0
Action          Count       Time        Pct
sleep           12971 12986.5408      59.62
inserting    12970603  6889.6769      31.63
commit          25942   570.4564       2.62
print_file   12970603   129.9266       0.60
select          12972    97.4990       0.45
other               0  1106.9789       5.08

從中可以看出來,休眠12986秒,inserting 6889.6769秒.

所有時間加起來:

12986.5408
6889.6769
570.4564
129.9266
97.499
1106.9789
21781.0786

大約每秒執行效率: 12970603/2181.0786 = 5946.8755504730552
個人測試環境虛擬機,可以看出來,效率還是挺高的。

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM