婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > mysql增量備份及斷點恢復腳本實例

mysql增量備份及斷點恢復腳本實例

熱門標簽:400電話辦理都選易號網 外呼系統服務 如何在高德地圖標注新地址 湘潭電銷機器人咨詢電話 寶應電信400電話辦理費用 高德地圖標注中心個人注冊 高德地圖標注模式 外呼系統防封號違法嗎 電銷機器人針對的

簡介

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

目的

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

特點

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

實現方式

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

實驗環境:

安裝了mysql5.7數據庫的一臺centos7虛擬機

操作過程:

一、增量備份

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

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

2、重啟服務,并查看二進制日志

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


3、在數據庫自由創建數據庫、表,作為實驗模板


4、對school數據庫進行完全備份

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

5、刷新日志,生成新的日志,注意:之前數據庫的操作寫入編號為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數據庫操作,然后刷新日志,進行增量備份

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、恢復完全備份,然后恢復增量備份

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

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


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

二、斷鏈恢復

在操作斷鏈恢復前,需要還原到未進行增量備份還原的狀態,如圖


基于時間點

2018-09-04 16:43:52 錯誤操作時間 (開頭加載到此時間點結束)
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 上一次正確執行位置 --stop-position
at 667 下一次正確執行位置 --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

您可能感興趣的文章:
  • mysql8.0.20配合binlog2sql的配置和簡單備份恢復的步驟詳解
  • 淺析MySQL 備份與恢復
  • 詳解mysql的備份與恢復
  • MySQL數據庫備份恢復實現代碼
  • mysql數據備份與恢復實現方法分析
  • mysql全量備份和快速恢復的方法整理
  • shell腳本實現mysql定時備份、刪除、恢復功能
  • 從MySQL全庫備份中恢復某個庫和某張表的方法
  • MySQL使用全庫備份數據恢復單表數據的方法
  • C#實現MySQL命令行備份和恢復
  • MySQL備份恢復設計思路

標簽:馬鞍山 蘭州 南充 黔南 佛山 賀州 宿遷 黃山

巨人網絡通訊聲明:本文標題《mysql增量備份及斷點恢復腳本實例》,本文關鍵詞  mysql,增量,備份,及,斷點,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《mysql增量備份及斷點恢復腳本實例》相關的同類信息!
  • 本頁收集關于mysql增量備份及斷點恢復腳本實例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 唐河县| 兴隆县| 桐乡市| 吉林市| 阳朔县| 丰台区| 石景山区| 广德县| 三台县| 炉霍县| 青河县| 托克托县| 大洼县| 台山市| 盐城市| 东至县| 西平县| 长岭县| 阿拉善左旗| 柳林县| 微山县| 望都县| 都江堰市| 南和县| 黎城县| 潍坊市| 东城区| 集贤县| 玉环县| 宿迁市| 尤溪县| 米林县| 溆浦县| 晋江市| 福海县| 定结县| 房产| 海晏县| 鲜城| 垣曲县| 武山县|