欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql增量備份及斷點恢復(fù)腳本實例

 更新時間:2018年09月05日 08:32:19   作者:藍月CC  
生產(chǎn)環(huán)境中在mysql中誤操作是非常正常的,所以就需要用到mysql的增量備份恢復(fù)。增量備份是我們經(jīng)常用到的,它可以指定某個誤操作的時間以及位置點進行數(shù)據(jù)恢復(fù),更加準確的恢復(fù)我們想要還原的數(shù)據(jù)。

簡介

增量備份是指在一次全備份或上一次增量備份后,以后每次的備份只需備份與前一次相比增加或者被修改的文件。這就意味著,第一次增量備份的對象是進行全備后所產(chǎn)生的增加和修改的文件;第二次增量備份的對象是進行第一次增量備份后所產(chǎn)生的增加和修改的文件,如此類推。

目的

解決完全備份中時間長、恢復(fù)慢的問題,采取了增量備份

特點

優(yōu):無重復(fù)數(shù)據(jù),備份量不大,時間短
缺:需要上次完全備份及完全備份后的增量備份才能恢復(fù),需對增量備份逐個反復(fù)恢復(fù),操作繁瑣

實現(xiàn)方式

通過mysql的二進制日志間接實現(xiàn)增量備份:
二進制日志保存了所有更新或可能更新的數(shù)據(jù)
二進制日志在mysql啟動時開始記錄,且會重新創(chuàng)建新的日志文件
需定時執(zhí)行flush logs方法重新創(chuàng)建日志,生成二進制文件序列

實驗環(huán)境:

安裝了mysql5.7數(shù)據(jù)庫的一臺centos7虛擬機

操作過程:

一、增量備份

1、在配置文件中添加二進制日志

vim /etc/my.cnf
[mysqld] #在此模塊下添加
log-bin=mysql-bin #二進制日志

2、重啟服務(wù),并查看二進制日志

systemctl restart mysqld.service
cd /usr/local/mysql/data/
mysqlbinlog --no-defaults mysql-bin.000001


3、在數(shù)據(jù)庫自由創(chuàng)建數(shù)據(jù)庫、表,作為實驗?zāi)0?br />


4、對school數(shù)據(jù)庫進行完全備份

mysqldump -uroot -pabc123 school > /opt/school.sql

5、刷新日志,生成新的日志,注意:之前數(shù)據(jù)庫的操作寫入編號為000001的日志中,新生成的000002的日志為空

mysqladmin -uroot -pabc123 flush-logs #刷新日志
mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000001 #查看000001日志
mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002 #查看000002日志
#--base64-output=decode-rows -v:避免文件中亂碼,前面的查看命令也可以使用



6、新添加mysql數(shù)據(jù)庫操作,然后刷新日志,進行增量備份

use school;
mysql>indert into info (id,name,score) values (3,'aaa',78);
mysql>delete from info where name='tom'; #誤操作
mysql> insert into info (id,name,score) values (4,'bbb',64);
mysqladmin -uroot -pabc123 flush-logs #刷新日志,生成000003
#此次增量備份已記錄到000002日志文件中



7、刪除info表

mysql -uroot -pabc123 -e 'use school;drop table info;'

8、恢復(fù)完全備份,然后恢復(fù)增量備份

mysql -uroot -pabc123 school < /opt/school.sql #完全備份還原

mysqlbinlog --no-defaults mysql-bin.000002 | mysql -uroot -p


那么,此處暴露出一個問題,如果出現(xiàn)誤操作,還原備份時就會出現(xiàn)錯誤,并不能實現(xiàn)理想的備份,達到真正的目的。此時,就需要斷鏈恢復(fù)(屬于恢復(fù)增量備份的特殊用法),即在還原時只恢復(fù)正確的數(shù)據(jù)庫操作。

二、斷鏈恢復(fù)

在操作斷鏈恢復(fù)前,需要還原到未進行增量備份還原的狀態(tài),如圖


基于時間點

2018-09-04 16:43:52 錯誤操作時間 (開頭加載到此時間點結(jié)束)
2018-09-04 16:44:32 正確操作時間 (從此時間點再次開始加載) 從此時間點再次開始加載

mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002 #查看000002日志


mysqlbinlog --no-defaults --stop-datetime='2018-09-04 16:43:52' /usr/local/mysql/data/mysql-bin.000002 | mysql -uroot -p
mysqlbinlog --no-defaults --start-datetime='2018-09-04 16:44:32' /usr/local/mysql/data/mysql-bin.000002 | mysql -uroot -p


基于位置點

at 565 上一次正確執(zhí)行位置 --stop-position
at 667 下一次正確執(zhí)行位置 --start-position

mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002 #查看000002日志

mysqlbinlog --no-defaults --stop-position='565' /usr/local/mysql/data/mysql-bin.000002 | mysql -uroot -p
mysqlbinlog --no-defaults --start-position='667' /usr/local/mysql/data/mysql-bin.000002 | mysql -uroot -p

相關(guān)文章

  • MySQL查詢in操作 查詢結(jié)果按in集合順序顯示

    MySQL查詢in操作 查詢結(jié)果按in集合順序顯示

    MySQL 查詢in操作,查詢結(jié)果按in集合順序顯示的實現(xiàn)代碼,需要的朋友可以參考下。
    2010-12-12
  • 云服務(wù)器安裝mysql的實現(xiàn)步驟

    云服務(wù)器安裝mysql的實現(xiàn)步驟

    在當前的互聯(lián)網(wǎng)時代,云計算已經(jīng)成為重要的平臺支撐,本文就來介紹一下云服務(wù)器安裝mysql的實現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • mysql獲取指定時間段中所有日期或月份的語句(不設(shè)存儲過程,不加表)

    mysql獲取指定時間段中所有日期或月份的語句(不設(shè)存儲過程,不加表)

    最近需要用mysql獲取一個時間段中的所有月份,網(wǎng)上查都是要設(shè)置存儲過程或者加一個日期表的,不滿足我的需求,翻墻找資料加上自己試驗,如下代碼分享給大家
    2021-06-06
  • 解決mysql輸入密碼閃退的問題

    解決mysql輸入密碼閃退的問題

    之前安裝的mysql一直運行正常,但是在昨天裝了個VS2010旗艦版。結(jié)果今天mysql就不能用了,于是在網(wǎng)上看了一下最只要就是mysql的服務(wù)沒有起來的緣故。本文分享了幾個解決方案,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-11-11
  • mysql全文模糊搜索MATCH AGAINST方法示例

    mysql全文模糊搜索MATCH AGAINST方法示例

    這篇文章主要介紹了mysql全文模糊搜索MATCH AGAINST方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • 最新評論