mysql数据丢失_当数据被误删除/误操作后造成数据丢失。你尝试过用什么手段来挽救数据/损失?...
目錄:
MySQL高可用架構應該考慮什么? 你認為應該如何設計?
MySQL備份,使用xtrabackup備份全實例數據時,會造成鎖等待嗎?那么如果使用mysqldump進行備份呢?
MySQL 5.7開始支持JSON,那還有必要使用MongoDB存JSON嗎?請列出你的觀點/理由。
當數據被誤刪除/誤操作后造成數據丟失。你嘗試過用什么手段來挽救數據/損失?
MySQL 5.7的復制架構,在有異步復制、半同步、增強半同步、MGR等的生產中,該如何選擇?
一、MySQL高可用架構應該考慮什么? 你認為應該如何設計?
(一)MySQL高可用架構應該考慮什么?
(二)你認為應該如何設計?
二、MySQL備份,使用xtrabackup備份全實例數據時,會造成鎖等待嗎?那么如果使用mysqldump進行備份呢?
(一)xtrabackup和mysqldump會造成鎖等待嗎?
(二)xtrabackup冷知識
三、MySQL 5.7開始支持JSON,那還有必要使用MongoDB存JSON嗎?請列出你的觀點/理由。
(一)觀點A:支持MySQL存儲JSON
1.MongoDB不支持事務,而MySQL支持事務
2.MySQL相對MongoDB而言,MySQL的穩定性要優于MongoDB
3.MySQL支持多種存儲引擎
(二)觀點B:支持MongoDB存儲JSON
1.從性能的角度考慮,對于JSON讀寫效率MongoDB要優于MySQL
2.MongoDB相對MySQL而言,MongoDB的擴展性要優于MySQL
3.MongoDB支持更多的JSON函數
(三)總結
1.如果應用程序無事務要求,存儲數據表結構復雜并且經常被修改, 例如游戲中裝備等場景用MongoDB比較適合
2.如果應用程序有事務要求,存儲數據的"表"之間相互有關聯,例如有訂單系統等場景用MySQL比較適合
3.整體來看相對看好MySQL的JSON功能,在未來官方的努力下MySQL的JSON功能有機會反超MongoDB
四、當數據被誤刪除/誤操作后造成數據丟失。你嘗試過用什么手段來挽救數據/損失?
(一)前提
1.當數據被誤刪除/誤操作后,第一時間要關閉數據庫。業務方需要緊急掛停機公告,避免數據二次污染,用于保護數據的一致性
2.BINLOG格式為ROW格式,不討論其他格式的BINLOG
(二)數據被誤操作(update/delete/drop)造成數據丟失,可以用哪些手段來恢復?
1.BINLOG恢復:可以使用逆向解析BINLOG工具來恢復。例如:binlog2SQL等
2.延遲從庫: 可以通過解除延遲從庫,并指定BINLOG結束位置點,可以實現數據恢復
(三)數據被誤刪除(rm/物理文件損壞)造成數據丟失,可以用哪些手段來恢復?
1.如果有備份,可以通過備份恢復 mysqldump/xtrabackup + binlog 來實現全量+增量恢復
2.如果無備份但是有從庫,可以通過主從切換,提升從庫為主庫,從而實現數據恢復
3.如果無備份并且無從庫,但MySQL沒有重啟,可以通過拷貝/proc/$pid/fd中的文件,來進行嘗試恢復
4.如果無備份并且無從庫,但MySQL有重啟,可以通過extundelete或undrop-for-innodb來恢復
五、MySQL 5.7的復制架構,在有異步復制、半同步、增強半同步、MGR等的生產中,該如何選擇?
(一)生產環境中:
幾種復制場景都有存在的價值。下面分別描述一下:
(二)理由:
總的來講,從技術實現上來看:MGR> 增強半同步>異步復制。
未來可能見到更多的MGR在生產中使用,對于MySQL的運維的要求也會更上一層樓。
總結
以上是生活随笔為你收集整理的mysql数据丢失_当数据被误删除/误操作后造成数据丢失。你尝试过用什么手段来挽救数据/损失?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cat 常用的日志分析架构方案_芯片失效
- 下一篇: python中head_Python p