日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一、確保MySQL開啟了binlog日志功能

在/etc/my.cnf文件里的[mysqld]區塊添加:

#這個是存儲的位置為mysql配置文件的位置

log-bin=mysql-bin

然后重啟mysql服務生效

 

二、創建數據庫

先創建一個ops數據庫

create database ops;

use ops;

創建一個customers表并寫上表結構

create table customers(

id int not null auto_increment,

name char(20) not null,

age int not null,

primary key(id)

)engine=InnoDB;

 

查看創建好的表

desc customers;

mysql數據庫備份及其恢復

 

表中插入數據:

insert into customers values(1,"wangbo","24");

insert into customers values(2,"guohui","22");

insert into customers values(3,"zhangheng","27");

 

檢查插入數據:

select * from customers;

mysql數據庫備份及其恢復

 

 

三、進行數據庫全量備份

mysqldump -uroot -p -B -F -R -x --master-data=2 ops|gzip >/alidata/mysql_bakcup/ops_$(date +%F).sql.gz

ls /alidata/mysql_bakup

mysql數據庫備份及其恢復

 

參數說明:

-B: 指定數據庫

-F:刷新日志

-R:備份存儲過程等

-x:鎖表

--master-data:在備份語句里添加CHANGE MASTER語句以及binlog文件及位置信息

 

四、再次插入數據

insert into customers values(4,"liupeng","21");

insert into customers values(5,"xiaoda","31");

insert into customers values(6,"fuaiai","26");

 

查看最新插入的數據

select * from customers;

mysql數據庫備份及其恢復

 

 

五、模擬誤操作、刪除ops數據庫

drop database ops;

此時,全備之后到誤操作時刻之間,用戶寫入的數據在binlog中,需要恢復出來!

 

查看全備之后新增的binlog文件

cd /alidata/mysql_bakcup

#解壓出已經備份好的數據庫

gzip -d ops_2019-04-23.sql.gz

ls

mysql數據庫備份及其恢復

 

查看數據庫變化的時刻

grep CHANGE ops_2019-04-23.sql

mysql數據庫備份及其恢復

 

 

這是全備時候的binlog文件位置 mysql-bin.000006的第106行

因此在該文件之前的binlog文件中的數據都已經包含在這個全備的sql文件中了

 

移動到binlog文件,并導出sql文件,提出其中的drop語句

 

查看mysql數據存放目錄,由如下信息可知在/var/lib/mysql目錄下

ps -ef |grep mysql

mysql數據庫備份及其恢復

 

cd /var/lib/mysql

cp mysql-bin.000006 /alidata/mysql_bakcup/

cd /alidata/mysql_bakcup/

mysqlbinlog mysql-bin.000006 >006bin.sql #即將binlog日志轉化為可正常導入的sql文件

mysql數據庫備份及其恢復

 

 

vim 006bin.sql 刪除里面drop語句

 

注意:在恢復全備數據之前必須將binlog文件移出,否則恢復過程中,會繼續寫入語句到binlog,最終導致增量恢復數據部分變的比較混亂

 

六、恢復數據

mysql -uroot -p <ops_2019-04-23.sql

 

查看數據庫,看看ops庫在不在

show databases

mysql數據庫備份及其恢復

 

 

use ops;

select * from customers;

#此時恢復了全備時刻時候的數據

mysql數據庫備份及其恢復

 

 

接著,使用006bin.sql文件恢復全備時刻到刪除ops數據庫之前,新增的數據

 

mysql -uroot -p ops <006bin.sql

 

再次查看數據庫,發現備份到刪除數據庫之前的那部分數據也恢復了!

select * from customers;

mysql數據庫備份及其恢復

 

 

以上就是mysql數據庫增量數據恢復的實例過程!

 

最后總結幾點:

1)本案例適合認為SQL語句造成的誤操作或者沒有主從復制等熱備情況宕機時的修復

2)恢復條件為mysql要開啟binlog日志功能,并且要全備和增量所有數據

3)恢復時建議對外定制更新,即禁止更新數據庫

4)先恢復全量,然后把全備時刻點以后增量日志,按順序恢復成SQL文件,然后把文件中有問題的SQL語句刪除,在恢復到數據庫

分享到:
標簽:備份 數據庫 mysql
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定