国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

數據庫崩潰,利用備份和日志進行災難恢復

2020-01-18 22:49:02
字體:
來源:轉載
供稿:網友

在實際的工作中,我們可能經常會遇到數據庫宕機,數據丟失的情況,下面,我將演示一個模擬環境

1.數據庫正常啟動插入數據:

[root@client103 ~]# mysql -uroot -pkongzhongmysql> use test;mysql> insert into a select * from a;#注: 這里不演示建表,默認大家都懂# 下面進行一次全備[root@client103 ~]# innobackupex --user=root --password=kongzhong --defaults-file=/etc/my.cnf --port=3306 /tmp/backup/ >/tmp/backup/innoback.log 2>&1# 再次插入數據mysql> insert into a select * from a;# 實行增量備份[root@client103 ~]# innobackupex --user=root --password=kongzhong --defaults-file=/etc/my.cnf --port=3306 --incremental --incremental-basedir=/tmp/backup/2014-02-27_13-24-51/ /tmp/backup/# 再次插入數據mysql> insert into a select * from a;# 此時大家記錄一下現在的總行數(一會還原需要核對數據的)# 此時數據庫宕機#模擬宕機操作為:# 1.將數據目錄的下的二進制日志,復制到 /tmp/backup,一會需要重演日志(此步非常重要,復制操作默認大家會了)# 2.刪除數據目錄下的所有文件,此時數據庫就崩潰了(如果關閉數據庫,是關不了,記得殺掉進程,kill -9 ....)

2.數據庫宕機后執行恢復操作

在實際的工作中,我們可能經常會遇到數據庫宕機,數據丟失的情況,下面,我將演示一個模擬環境1.數據庫正常啟動插入數據:[root@client103 ~]# mysql -uroot -pkongzhongmysql> use test;mysql> insert into a select * from a;#注: 這里不演示建表,默認大家都懂# 下面進行一次全備[root@client103 ~]# innobackupex --user=root --password=kongzhong --defaults-file=/etc/my.cnf --port=3306 /tmp/backup/ >/tmp/backup/innoback.log 2>&1# 再次插入數據mysql> insert into a select * from a;# 實行增量備份[root@client103 ~]# innobackupex --user=root --password=kongzhong --defaults-file=/etc/my.cnf --port=3306 --incremental --incremental-basedir=/tmp/backup/2014-02-27_13-24-51/ /tmp/backup/# 再次插入數據mysql> insert into a select * from a;# 此時大家記錄一下現在的總行數(一會還原需要核對數據的)# 此時數據庫宕機#模擬宕機操作為:# 1.將數據目錄的下的二進制日志,復制到 /tmp/backup,一會需要重演日志(此步非常重要,復制操作默認大家會了)# 2.刪除數據目錄下的所有文件,此時數據庫就崩潰了(如果關閉數據庫,是關不了,記得殺掉進程,kill -9 ....)2.數據庫宕機后執行恢復操作# 全備應用日志[root@client103 ~]# innobackupex --apply-log /tmp/backup/2014-02-27_13-24-51/# 增備應用日志[root@client103 ~]# innobackupex --apply-log /tmp/backup/2014-02-27_13-24-51/ --incremental-dir=/tmp/backup/2014-02-27_13-32-44/# 應用完日志,利用全備恢復數據[root@client103 ~]# innobackupex --copy-back /tmp/backup/2014-02-27_13-24-51/# 修改數據目錄權限為mysql:mysql[root@client103 ~]# chown mysq:mysql /var/lib/mysql -R# 啟動數據庫[root@client103 ~]# /etc/init.d/mysql start# 登陸數據庫,查看數據行數,發現數值與崩潰前是不一致的,所以需要利用日志恢復[root@client103 ~]# mysql -uroot -pkongzhongmysql> use test;mysql> select count(*) from a;# 查看最后一次增備完成時的日志文件名和pos號(備份時自動記錄的)[root@client103 ~]# cat /tmp/backup/2014-02-27_13-32-44/xtrabackup_binlog_infomysql-103-bin.000005  3694# 所以,我們使用二進制執行恢復時,起始點為3694# 利用日志恢復[root@client103 ~]# mysqlbinlog --start-pos=3694 /tmp/backup/mysql-103-bin.000005 |mysql -uroot -pkongzhong# 此時在登陸數據庫查看數據是否相符,請自行測試mysql> use test;mysql> select count(*) from a;

 以上就是本文的全部內容,希望大家可以喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沿河| 洞头县| 屯昌县| 合作市| 通州区| 班玛县| 仙居县| 蓝山县| 江门市| 霍州市| 遂川县| 浦江县| 南昌市| 普洱| 三门县| 电白县| 眉山市| 科尔| 襄樊市| 乃东县| 历史| 北流市| 平原县| 平顶山市| 九寨沟县| 通河县| 九台市| 盐山县| 南安市| 垣曲县| 阿合奇县| 靖江市| 蓬溪县| 阜新市| 桐柏县| 山东| 柳河县| 乌什县| 方山县| 耿马| 平度市|