pt-archiver工具歸檔和恢復資料一例
DBA或者運維人員經常需定期對資料進行歸檔和清除,我們可以使用percona的pt-archiver工具能完成這一功能,使得資料歸檔變得方便簡單。
歸檔資料一例:
原表結構為:
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'條件是匯出全部資料,如果想匯出部分資料,可以設定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.
常用的引數有:
--limit 10000 每次取1000行資料用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 輸出執行過程及最後的操作統計。(只要不加上--quiet,預設情況下pt-archive都會輸出執行過程的)
--charset=UTF8 指定字符集為UTF8
--bulk-delete 批次刪除source上的舊資料(例如每次1000行的批次刪除操作)
--bulk-insert 批次插入資料到dest主機 (看dest的general log發現它是透過在dest主機上LOAD DATA LOCAL INFILE插入資料的)
--replace 將insert into 語句改成replace寫入到dest庫
--sleep 80 每次歸檔了limit個行記錄後的休眠80秒(單位為秒)
恢復資料例子:
恢復資料應使用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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2648119/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- pt-archiver資料歸檔Hive
- pt-archiver 歸檔資料Hive
- MySQL使用pt-archiver歸檔歷史資料MySqlHive
- mysql資料庫恢復一例MySql資料庫
- DM7使用dmrestore工具利用不同資料庫的歸檔恢復資料庫REST資料庫
- pt-archiver結合crontab定時自動歸檔資料Hive
- 資料恢復新姿勢——通過ibd和frm檔案恢復資料資料恢復
- 資料恢復工具PhotoRec資料恢復
- 硬碟資料恢復工具硬碟資料恢復
- Sybase ASE資料庫恢復,Sybase資料恢復,資料誤刪除恢復工具READSYBDEVICE資料庫資料恢復dev
- 對歸檔模式下CLEAR 未歸檔日誌後恢復資料庫的一點看法模式資料庫
- 從備份片中恢復某個指定得歸檔或者資料檔案
- 【資料庫資料恢復】透過恢復NDF檔案修復資料庫的資料恢復過程資料庫資料恢復
- DG歸檔日誌缺失恢復
- oradim工具恢復資料庫資料庫
- Disk Drill資料恢復工具資料恢復
- Sybase SQL Anywhere(ASA)資料庫恢復,ASA資料恢復,資料誤刪除恢復工具ReadASADBSQL資料庫資料恢復
- SQL Server資料庫恢復,SQL Server資料恢復,SQL Server資料誤刪除恢復工具SQLRescueSQLServer資料庫資料恢復
- 歸檔路徑更改後,如何對資料庫進行恢復(轉)資料庫
- ibbackup恢復報錯一例
- 【資料庫資料恢復】MongoDB資料庫檔案損壞的資料恢復案例資料庫資料恢復MongoDB
- FastDFS檔案系統遷移和資料恢復AST資料恢復
- 使用WT工具恢復MongoDB資料MongoDB
- 【伺服器資料恢復】StorNext檔案系統資料恢復案例伺服器資料恢復
- DM7使用DMRAMN對多次故障恢復後使用不同資料庫的歸檔進行恢復資料庫
- 【分散式儲存資料恢復】hbase和hive資料庫底層檔案誤刪的資料恢復案例分散式資料恢復Hive資料庫
- 【儲存資料恢復】WAFL檔案系統下raid資料恢復案例資料恢復AI
- 【BBED】丟失歸檔檔案情況下的恢復
- 資料恢復:AMDU資料抽取恢復資料恢復
- oracle dg 歸檔日誌恢復情況Oracle
- SQL資料庫怎麼進行資料歸檔和歸檔管理?SQL資料庫
- 【資料庫資料恢復】Sql Server資料庫檔案丟失的資料恢復過程資料庫資料恢復SQLServer
- 磁碟誤刪卷資料恢復工具資料恢復
- Mac FoneLab for Mac(ios資料恢復工具)MaciOS資料恢復
- 磁碟資料恢復及備份工具資料恢復
- tenorshare 4ddig(資料恢復工具)資料恢復
- Vsan資料恢復—Vsan資料恢復案例資料恢復
- 【Vsan資料恢復】Vsan資料恢復案例資料恢復