數(shù)據(jù)庫崩潰,利用備份和日志進(jìn)行災(zāi)難恢復(fù)
更新時間:2015年07月23日 10:35:05 作者:xcga_wise
我相信數(shù)據(jù)庫崩潰都不是大家所愿意看到的,但是這種情況發(fā)生時我們要采取補救措施,本文就是介紹了如何利用備份和日志進(jìn)行災(zāi)難恢復(fù),需要的朋友可以參考下
在實際的工作中,我們可能經(jīng)常會遇到數(shù)據(jù)庫宕機,數(shù)據(jù)丟失的情況,下面,我將演示一個模擬環(huán)境
1.數(shù)據(jù)庫正常啟動插入數(shù)據(jù):
[root@client103 ~]# mysql -uroot -pkongzhong mysql> use test; mysql> insert into a select * from a; #注: 這里不演示建表,默認(rèn)大家都懂 # 下面進(jìn)行一次全備 [root@client103 ~]# innobackupex --user=root --password=kongzhong --defaults-file=/etc/my.cnf --port=3306 /tmp/backup/ >/tmp/backup/innoback.log 2>&1 # 再次插入數(shù)據(jù) 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/ # 再次插入數(shù)據(jù) mysql> insert into a select * from a; # 此時大家記錄一下現(xiàn)在的總行數(shù)(一會還原需要核對數(shù)據(jù)的) # 此時數(shù)據(jù)庫宕機 #模擬宕機操作為: # 1.將數(shù)據(jù)目錄的下的二進(jìn)制日志,復(fù)制到 /tmp/backup,一會需要重演日志(此步非常重要,復(fù)制操作默認(rèn)大家會了) # 2.刪除數(shù)據(jù)目錄下的所有文件,此時數(shù)據(jù)庫就崩潰了(如果關(guān)閉數(shù)據(jù)庫,是關(guān)不了,記得殺掉進(jìn)程,kill -9 ....)
2.數(shù)據(jù)庫宕機后執(zhí)行恢復(fù)操作
在實際的工作中,我們可能經(jīng)常會遇到數(shù)據(jù)庫宕機,數(shù)據(jù)丟失的情況,下面,我將演示一個模擬環(huán)境 1.數(shù)據(jù)庫正常啟動插入數(shù)據(jù): [root@client103 ~]# mysql -uroot -pkongzhong mysql> use test; mysql> insert into a select * from a; #注: 這里不演示建表,默認(rèn)大家都懂 # 下面進(jìn)行一次全備 [root@client103 ~]# innobackupex --user=root --password=kongzhong --defaults-file=/etc/my.cnf --port=3306 /tmp/backup/ >/tmp/backup/innoback.log 2>&1 # 再次插入數(shù)據(jù) 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/ # 再次插入數(shù)據(jù) mysql> insert into a select * from a; # 此時大家記錄一下現(xiàn)在的總行數(shù)(一會還原需要核對數(shù)據(jù)的) # 此時數(shù)據(jù)庫宕機 #模擬宕機操作為: # 1.將數(shù)據(jù)目錄的下的二進(jìn)制日志,復(fù)制到 /tmp/backup,一會需要重演日志(此步非常重要,復(fù)制操作默認(rèn)大家會了) # 2.刪除數(shù)據(jù)目錄下的所有文件,此時數(shù)據(jù)庫就崩潰了(如果關(guān)閉數(shù)據(jù)庫,是關(guān)不了,記得殺掉進(jìn)程,kill -9 ....) 2.數(shù)據(jù)庫宕機后執(zhí)行恢復(fù)操作 # 全備應(yīng)用日志 [root@client103 ~]# innobackupex --apply-log /tmp/backup/2014-02-27_13-24-51/ # 增備應(yīng)用日志 [root@client103 ~]# innobackupex --apply-log /tmp/backup/2014-02-27_13-24-51/ --incremental-dir=/tmp/backup/2014-02-27_13-32-44/ # 應(yīng)用完日志,利用全備恢復(fù)數(shù)據(jù) [root@client103 ~]# innobackupex --copy-back /tmp/backup/2014-02-27_13-24-51/ # 修改數(shù)據(jù)目錄權(quán)限為mysql:mysql [root@client103 ~]# chown mysq:mysql /var/lib/mysql -R # 啟動數(shù)據(jù)庫 [root@client103 ~]# /etc/init.d/mysql start # 登陸數(shù)據(jù)庫,查看數(shù)據(jù)行數(shù),發(fā)現(xiàn)數(shù)值與崩潰前是不一致的,所以需要利用日志恢復(fù) [root@client103 ~]# mysql -uroot -pkongzhong mysql> use test; mysql> select count(*) from a; # 查看最后一次增備完成時的日志文件名和pos號(備份時自動記錄的) [root@client103 ~]# cat /tmp/backup/2014-02-27_13-32-44/xtrabackup_binlog_info mysql-103-bin.000005 3694 # 所以,我們使用二進(jìn)制執(zhí)行恢復(fù)時,起始點為3694 # 利用日志恢復(fù) [root@client103 ~]# mysqlbinlog --start-pos=3694 /tmp/backup/mysql-103-bin.000005 |mysql -uroot -pkongzhong # 此時在登陸數(shù)據(jù)庫查看數(shù)據(jù)是否相符,請自行測試 mysql> use test; mysql> select count(*) from a;
以上就是本文的全部內(nèi)容,希望大家可以喜歡。
您可能感興趣的文章:
- 定時自動備份IIS的WWW日志的vbs腳本
- mssql自動備份及自動清除日志文件服務(wù)器設(shè)置
- sqlserver 數(shù)據(jù)庫日志備份和恢復(fù)步驟
- SQL Server2008 數(shù)據(jù)庫誤刪除數(shù)據(jù)的恢復(fù)方法分享
- SQL server 2008 數(shù)據(jù)安全(備份和恢復(fù)數(shù)據(jù)庫)
- SQL Server誤區(qū)30日談 第20天 破壞日志備份鏈之后,需要一個完整備份來重新開始日志鏈
- Shell腳本定時備份清除運行系統(tǒng)日志的代碼
- win平臺oracle rman備份和刪除dg備庫歸檔日志腳本
- SQL Server 2008數(shù)據(jù)庫誤刪數(shù)據(jù)如何進(jìn)行數(shù)據(jù)恢復(fù)
- SQL Server 2008及更高版本數(shù)據(jù)庫恢復(fù)方法之日志尾部備份
相關(guān)文章
mysql中mysql-bin.000001是什么文件可以刪除嗎
這篇文章主要介紹了mysql中mysql-bin.000001是什么文件可以刪除嗎,需要的朋友可以參考下2019-05-05
MySQL單表百萬數(shù)據(jù)記錄分頁性能優(yōu)化技巧
自己的一個網(wǎng)站,由于單表的數(shù)據(jù)記錄高達(dá)了一百萬條,造成數(shù)據(jù)訪問很慢,Google分析的后臺經(jīng)常報告超時,尤其是頁碼大的頁面更是慢的不行2016-08-08
Linux中MySQL跳過密碼驗證以及Bug的解決方法(圖文)
這篇文章主要介紹了Linux中MySQL跳過密碼驗證以及Bug的解決方法,文章通過代碼示例和圖文結(jié)合的方式給大家講解的非常詳細(xì),對大家解決問題有一定的幫助,需要的朋友可以參考下
2024-09-09
詳解MySQL中timestamp和datetime時區(qū)問題導(dǎo)致做DTS遇到的坑
datetime和timestamp這兩種類型都是用于表示年月日時分秒格式的數(shù)據(jù),那么他們有那么區(qū)別,本文就詳細(xì)的介紹一下MySQL timestamp和datetime坑,文中通過示例代碼介紹的非常詳細(xì),感興趣的小伙伴們可以參考一下
2021-12-12 
