這篇文章給大家分享的是有關MySQL中如何使用percona的pt-archiver工具的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
網頁設計是網站建設的前奏,好的網頁設計更深度的剖析產品和設計風格定位,結合最新的網頁設計流行趨勢,與WVI應用標準,設計出具企業(yè)表現(xiàn)力,大器而深穩(wěn)的網站界面設。創(chuàng)新互聯(lián)建站從2013年開始,是成都網站建設公司:提供企業(yè)網站設計,品牌網站設計,營銷型企業(yè)網站建設方案,響應式網站建設,微信小程序定制開發(fā),專業(yè)建站公司做網站。
DBA或者運維人員經常需定期對數(shù)據(jù)進行歸檔和清除,我們可以使用percona的pt-archiver工具能完成這一功能,使得數(shù)據(jù)歸檔變得方便簡單。
歸檔數(shù)據(jù)一例:
原表結構為:
mysql>desc test.t1;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| a | int(11) | YES | MUL | NULL | |
| b | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql>show create table test.t1 \G
*************************** 1. row ***************************
Table: t1
Create Table: CREATE TABLE `t1` (
`id` int(11) NOT NULL,
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `a` (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
1 row in set (0.00 sec)
歸檔到文件:
# pt-archiver --source h=192.168.140.51,u=root,p=123456,P=3306,D=test,t=t1 --file '/tmp/test.txt' --progress 500 --no-delete --statistics --where '1=1' --txn-size 1000 --no-check-charset
TIME ELAPSED COUNT
2019-06-19T16:14:48 0 0
2019-06-19T16:14:48 0 500
2019-06-19T16:14:49 0 1000
2019-06-19T16:14:49 0 1000
Started at 2019-06-19T16:14:48, ended at 2019-06-19T16:14:49
Source: D=test,P=3306,h=192.168.140.51,p=...,t=t1,u=root
SELECT 1000
INSERT 0
DELETE 0
Action Count Time Pct
select 1001 0.6883 72.33
print_file 1000 0.0149 1.57
commit 2 0.0004 0.04
other 0 0.2480 26.06
注意:
pt-archiver操作的表必須有主鍵。
--where '1=1'條件是導出全部數(shù)據(jù),如果想導出部分數(shù)據(jù),可以設置where條件,例如--where 'b>500'
--no-check-charset 設置不校驗字符集,否則會報錯:
Character set mismatch: --source DSN uses latin1, table uses utf8mb4. You can disable this check by specifying --no-check-charset.
常用的參數(shù)有:
--limit 10000 每次取1000行數(shù)據(jù)用pt-archive處理,Number of rows to fetch and archive per statement.
--txn-size 1000 設置1000行為一個事務提交一次,Number of rows pertransaction.
--where 'id<3000' 設置操作條件
--progress 1000 每處理1000行輸出一次處理信息
--statistics 輸出執(zhí)行過程及最后的操作統(tǒng)計。(只要不加上--quiet,默認情況下pt-archive都會輸出執(zhí)行過程的)
--charset=UTF8 指定字符集為UTF8
--bulk-delete 批量刪除source上的舊數(shù)據(jù)(例如每次1000行的批量刪除操作)
--bulk-insert 批量插入數(shù)據(jù)到dest主機 (看dest的general log發(fā)現(xiàn)它是通過在dest主機上LOAD DATA LOCAL INFILE插入數(shù)據(jù)的)
--replace 將insert into 語句改成replace寫入到dest庫
--sleep 80 每次歸檔了limit個行記錄后的休眠80秒(單位為秒)
恢復數(shù)據(jù)例子:
恢復數(shù)據(jù)應使用load data命令
mysql>use peihy
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql>CREATE TABLE `t1` (
-> `id` int(11) NOT NULL,
-> `a` int(11) DEFAULT NULL,
-> `b` int(11) DEFAULT NULL,
-> PRIMARY KEY (`id`),
-> KEY `a` (`a`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Query OK, 0 rows affected (0.18 sec)
mysql>load data infile '/tmp/test.txt' into table t1;
Query OK, 1000 rows affected (0.61 sec)
Records: 1000 Deleted: 0 Skipped: 0 Warnings: 0
感謝各位的閱讀!關于“mysql中如何使用percona的pt-archiver工具”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
網站題目:mysql中如何使用percona的pt-archiver工具
當前URL:http://jinyejixie.com/article34/pgggse.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊、定制網站、網站建設、軟件開發(fā)、微信小程序、云服務器
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)