pt archiver資料歸檔

2022-04-29 11:00:14 字數 1518 閱讀 6733

可以使用percona-toolkit包中的pt-archiver工具來進行歷史資料歸檔

pt-archiver使用的場景:

1、清理線上過期資料。

2、清理過期資料,並把資料歸檔到本地歸檔表中,或者遠端歸檔伺服器。

3、兩張表之間的資料不完全相同,希望合併。此時加上–ignore或–replace選項,可以輕鬆實現。

4、匯出線上資料,到線下資料作處理。

例子:

pt-archiver --source h=127.0.0.1,p=3306,d=database,t=table,u=root,p=123456 --dest h=127.0.0.1,p=3306,d=database,t=new_table,u=root,p=123456 --no-check-charset --where 'id>100' --progress 1000 --no-delete --limit=1000 --statistics

引數說明:

--statistics:結束的時候給出統計資訊:開始的時間點,結束的時間點,查詢的行數,歸檔的行數,刪除的行數,以及各個階段消耗的總的時間和比例,便於以此進行優化。

--where:給出表中要處理的資料的查詢條件。

--progress:每處理progress指定的行數後,就列印一次資訊。

--no-delete:表示不刪除原來的資料,注意:如果不指定此引數,所有處理完成後,都會清理原表中的資料。

--limit:表示每次事務刪除多少條資料,預設1條(注意:如果資料比較多時,也可以設定大一些,減少迴圈次數)。

--txn-size:每個事務提交的資料行數(包括讀寫操作),批量提交,增加該值可以提公升歸檔效能。

--file:資料存放的檔案,最好指定絕對路徑,檔名可以靈活地組合(另外,我測試過寫檔案與不寫檔案速度幾乎差不多,原本以為不寫檔案速度會快)。

--charset=utf8 指定字符集為utf8

--no-check-charset 不指定字符集

--bulk-delete 批量刪除source上的舊資料(例如每次1000行的批量刪除操作)

--bulk-insert 批量插入資料到dest主機 (看dest的general log發現它是通過在dest主機上load data local infile插入資料的)

--replace 將insert into 語句改成replace寫入到dest庫

--sleep120 每次歸檔了limit個行記錄後的休眠120秒(單位為秒)

--local 不把optimize或analyze操作寫入到binlog裡面(防止造成主從延遲巨大)

--retries 超時或者出現死鎖的話,pt-archiver進行重試的間隔(預設1s)

--no-version-check 目前為止,發現部分pt工具對阿里雲rds操作必須加這個引數

--analyze=ds 操作結束後,優化表空間(d表示dest,s表示source)

--purge 刪除source資料庫的相關匹配記錄,不歸檔刪除資料

參考: ,

pt archiver資料歸檔使用大全

where id 3000 設定操作條件 limit 10000 每次取1000行資料給pt archive處理 txn size 1000 設定1000行為乙個事務提交一次 progress 5000 每處理5000行輸出一次處理資訊 statistics 結束的時候給出統計資訊 開始的時間點,結...

資料持久化,歸檔,反歸檔

資料持久化的本質 將資料讀成檔案儲存在本地 沙盒機制 就是系統針對每個應用程式在本地生成的資料夾 名字隨機生成 對於不同的應用程式 不能訪問其他應用程式沙盒的內容 起到保護作用 1 documents 用來儲存長久儲存的資料 b perferences 儲存使用者的偏好設定 比如程式是否是第一次啟動...

資料儲存之(四) 歸檔 反歸檔

nskeyedarchiver 如果物件是 nsstring nsdictionary nsarray nsdata nsnumber 等型別,可以直接用 nskeyedarchiver 進行歸檔和恢復 不是所有的物件都可以直接用這種方法進行歸檔,只有遵守了 nscoding 協議的物件才可以 ns...