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

首頁 > 數據庫 > MySQL > 正文

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

2024-07-24 13:07:43
字體:
來源:轉載
供稿:網友

我相信數據庫崩潰都不是大家所愿意看到的,但是這種情況發生時我們要采取補救措施,本文就是介紹了如何利用備份和日志進行災難恢復,需要的朋友可以參考下

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

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

 

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

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

 

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 清远市| 绥江县| 彝良县| 厦门市| 庆云县| 句容市| 正蓝旗| 桑日县| 河南省| 富民县| 武清区| 蚌埠市| 游戏| 张北县| 西丰县| 滨海县| 手机| 平昌县| 简阳市| 高淳县| 定边县| 抚州市| 武清区| 光泽县| 赫章县| 雷州市| 新民市| 南靖县| 湄潭县| 仪陇县| 同德县| 泊头市| 乐亭县| 育儿| 南开区| 比如县| 临朐县| 丁青县| 隆化县| 密山市| 铜鼓县|