MySQL binlog實現增量恢復

2021-10-01 01:51:24 字數 2411 閱讀 3859

mysql實時增量備份,採用binlog日誌的好處

掌控所有更改操作,必要時可用於恢復資料

資料庫主從複製的必要條件

[root@localhost~]# vim /etc/my.cnf

[mysqld]

… …log-bin=mysql-bin //啟用二進位制日誌,並指定字首

… …[root@dbsvr1 ~]# service mysqld restart

確認binlog日誌檔案

新啟用binlog後,每次啟動mysql服務都會新生成乙份日誌檔案:

[root@localhost~]# ls /var/lib/mysql/mysql-bin.*

/var/lib/mysql/mysql-bin.000001 /var/lib/mysql/mysql-bin.index

清除binlog日誌

刪除早前指定版本的binlog日誌

rurge master logs to 「binlog日誌」

刪除所有binlog日誌,重新新建日誌

reset mastetr

分析binlog日誌

使用mysqlbinlog工具

格式:mysqlbinlog [選項] 日誌檔案

常用選項

--start-datatime=「yyyy-mm-dd hh:mm:ss」

--stop-datatime=「yyyy-mm-dd hh:mm:ss」

--start-position=起止位置

--stop-positon=結束位置

[root@localhost ~]# mysqlbinlog /var/lib/mysql/mysql-bin.000002

[root@localhost ~]# mysqlbinlog --start-datetime=「2018-10-20 23:30」 /var/lib/mysql/mysql-bin.000002

利用binlog恢復資料

基本方法

使用mysqlbinlog提取歷史sql操作

通過管道交給mysql命令重做

案例重做第乙份binlog所記錄的更改操作

執行指定pos節點範圍內的sql命令恢復資料

根據上述日誌分析,只要恢復從2018-10-12 20:40:50到2018-10-20 23:15:50之間的操作即可。可通過mysqlbinlog指定時間範圍輸出,結合管道交給msyql命令執行匯入重做:

xtrabackup基本選項

基本選項 解釋

–backup 執行備份操作

–target-dir 備份到目標資料夾

–datadir 備份的原始資料夾(mysql庫的位置)

–prepare 準備恢復資料

–increamental-basedir 增量備份時,指定參照的完整備份路徑

–incremental-dir 準備恢復目錄時,指定增量備份的路徑

1)使用xtrabackup執行資料庫備份

[root@localhost~]# mkdir -p /backup/mysql

[root@localhost~]# xtrabackup_56 –backup --datadir=/var/lib/mysql/ --target-dir=/backup/mysql/

2)確認備份好的檔案資料:

[root@loclahost~]# ls /backup/mysql/

3)做乙個增量備份(基於前一步的完整備份)

[root@localhost ~]# xtrabackup_56 --backup \ #xtrabackup_55 是5.5版本,xtrabackup_56是5.6版本

–datadir=/var/lib/mysql/

–target-dir=/backup/inc01/

–incremental-basedir=/backup/mysql/

確認備份好的檔案資料:

[root@localhost~]# ls /backup/inc01/

對比完整備份、增量備份的大小:

[root@localhost~]# du -sh /backup/mysql/ /backup/inc01/

11m /backup/mysql/ //完整備份的大小

264k /backup/inc01/

準備用於恢復的資料庫目錄

以/backup/mysql/可用來重建mysql伺服器。這種情況下,官方建議連做兩次–prepare,以確保資料一致性:

[root@localhost ~]# xtrabackup_56 --prepare --target-dir=/backup/mysql/

[root@localhost ~]# xtrabackup_56 --prepare --target-dir=/backup/mysql/

準備恢復「完整備份+增量備份」

Tableau實現增量重新整理

為了節省tableau的重新整理時間,有時候我們只需要增量重新整理就可以了,設定如下圖 選擇選單欄的 資料 提取重新整理 所有行 增量重新整理,然後再選擇對應的增量識別符號就可以了,比如我選擇的是日期 dob 那大於這個日期的資料都會重新整理 當然你也可以選擇前多少行或者根據篩選器條件進行篩選重新整...

hive 實現增量更新

保險公司有乙個表記錄客戶的資訊,其中包括有客戶的id,name和age 為了演示只列出這幾個字段 建立hive的表 create table customer id int,age tinyint,name string partitioned by dt string row format del...

MySQL Binlog預分配的實現和效能

最近對上提到的binlog預分配進行了實現,基於percoan5.5.18版本 在worklog中號稱在sync binlog 1的情況下有10倍的tps提公升。在沒有group commit的情況下確實有可能。實現思路 與worklog中提到的不同,這裡使用daemon plugin來實現預分配 ...