日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL数据库无完整备份删库,除了跑路还能怎么办?

發布時間:2024/8/23 数据库 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL数据库无完整备份删库,除了跑路还能怎么办? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

來源 |?阿丸筆記

責編| Carol

封圖|?CSDN│下載于視覺中國

“刪庫跑路”這個詞兒,經常被掛在嘴邊當玩笑,是因為大家都知道,一旦真的發生這樣的事情,企業損失是無比慘重的。

本文作者為 CSDN 博客的一位博主,?他的描述中得知前段時間作者所在的公司,由于運維同事的一次誤操作,清空了內網核心數據庫,導致了公司內部管理系統長時間不可用,大量知識庫內容由于沒有備份險些丟失。

結合近期的刪庫跑路事件,我們可以看到,數據庫的備份與恢復顯得尤為重要。

本文將對此次內網數據恢復過程做一些整理,介紹刪庫后的搶救方案。同時,引發對數據庫穩定性的思考。

接下來讓我們從作者的角度,來看看他們是如何對數據庫進行搶救的。

數據搶修

這份內網數據事先沒有特意備份,所以一開始認為需要從磁盤恢復數據了。所以緊急聯系了數據恢復公司,希望過來恢復磁盤數據。

這里需要注意,數據恢復公司建議馬上關機,避免磁盤數據被覆蓋。

聯系數據恢復公司的同時,運維同事在內網找到了幾個殘缺的備份文件,包括去年4月份的一個全量備份數據、今年2月初一個半全量備份數據(備份到r開頭的表就失敗了,剩余表沒有備份),以及近7天到binlog日志文件。

所以立刻進行另一套恢復方案:

1)用今年2月初的半全量數據恢復一個庫A

2)用去年4月份的全量數據恢復一個庫B

3)將B數據庫中r開頭之后的表拷貝一份到數據庫A中

4)數據庫A中重放近3天的binlog。(注意,binlog回放時間截止到drop命令時間之前)

1、dump文件恢復

一開始想通過阿里云,把dump文件恢復到rds上。

結果發現需要super權限,而這個權限是阿里云高權限賬號(另外還有普通賬號)也不具備的,問了阿里云也不提供。因此,無法恢復到rds。

所以我們只能把dump文件恢復到本地數據庫。

在ECS上建立一個mysql數據庫,然后就是dump文件恢復。

有兩種方式:

1)命令行恢復

mysql -u root xxxdb < xxxx-backup.sql

2)在mysql客戶端中恢復

用root登陸后

use xxxdb;
source /data/xxxx-backup.sql

2、binlog文件重放恢復

基于起止時間恢復數據

sudo mysqlbinlog --start-datetime=“2020-02-16 17:00:01” --stop-datetime=“2020-02-20 17:00:00” —database=xxxdb mysql-bin.000218 | mysql -f -u root xxxdb

–database 指定了使用binlog中的哪個數據庫進行導入,否則,如果binlog中有多個庫的操作記錄,會大量報錯。

更多binlog命令參數見:

https://dev.mysql.com/doc/refman/5.6/en/mysqlbinlog.html#option_mysqlbinlog_database

-f 用于mysql命令,重建過程中如果遇到問題會繼續執行而不是中斷退出。

Actually mysqlbinlog does not stop after error, mysqlbinlog just converts log file to text format, nothing more. The problem is that mysql client stops after error. Please try ‘mysql -f’.

數據備份

數據備份可以有多種方式,這里介紹三種

1、本地dump備份數據文件

比較方便存儲,不過用起來限制也比較多,容易中斷。

mysqldump --max_allowed_packet=1024M -u root xxxxdv > 20200219.sql

2、阿里云dts遷移備份

可以在阿里云上建一個dts遷移任務(遷移任務基本免費,同步任務收費),然后通過dts將源數據庫直接遷移到rds、ecs自建數據庫、vpc網絡下到自建數據等地方。

可以避免dump還原的過程。

需要有個目標庫,備份不是以簡單的數據文件形式,而是一個備份數據庫的形式。

3、xtrabackup(簡稱xbk)

https://www.percona.com/software/mysql-database/percona-xtrabackup

基于拷貝物理文件和redo來實現備份。

數據庫穩定性思考


不管是運維的誤操作,還是刪庫跑路的事件,從根本上反映了企業數據庫穩定性管理的不足。

任何事后搶救的措施,都比不上事前的謹慎防范。

如何提高企業數據庫的穩定性,避免出現類似這樣的事情呢?

1、統一技術棧,使用云廠商的云數據庫

從現在云技術的發展來看,以阿里云、華為云等大廠提供的云數據庫,能大大降低企業數據庫的運維成本。

雖然云數據庫可能比自建數據庫的價格貴一點,但是,云數據庫提供的完整的配套設施,如備份恢復、監控報警、技術支持、數據庫高可用等,都會給企業數據庫穩定性帶來巨大幫助。從長期來看,能夠大大節約企業的運維成本和人力成本。

另外,我特意去看了下阿里云的rds數據庫,有完整的備份恢復機制,而且七天內的備份數據是不可刪除的。

所以,如果使用了云數據庫,那基本上不需要擔心數據丟失或者被人惡習刪除的問題了。

2、自建數據庫的完善備份機制

當然,有的公司雖然使用了云數據庫,但是出于數據安全性的角度,還是會有自建數據庫的可能。

如果使用了自建數據庫,那么一定需要有完善的備份機制。

我司自從發生了誤操作刪除內網數據的事件后,立刻引起重視,重新盤點梳理了核心數據的備份機制,包括云數據庫、自建數據庫,對于核心數據(包括但不限于生產數據、內部核心數據等)必須實施定期全量備份,同時考慮末日容災,實施跨機房、跨云廠商的數據備份。

3、更健全的權限管理系統

除了數據備份外,我們還可以看到,數據庫權限管理的重要性。

尤其中小企業,數據庫權限要么沒有管理,開發人員可以任意操作;要么是集中在少數幾個運維同事手上。

無論哪種,都不安全。

最好的方式,還是開發一個統一數據庫管理操作平臺(或者購買類似阿里云DMS產品),在系統層面進行數據庫的權限管控。

所有人員都只能通過這個平臺操作數據庫,同時,禁用危險命令,對高危操作進行分級審核。

《原力計劃【第二季】-?學習力挑戰》正式開始!即日起至?3月21日,千萬流量支持原創作者!更有專屬【勛章】等你來挑戰

推薦閱讀:如何與亦敵亦友的 null 說拜拜?大神原來是這么做的! 大數據成長之路:談談那些必須學習的Linux基礎知識 無需3D運動數據訓練,最新人體姿勢估計方法達到SOTA | CVPR 2020 國產 14nm 迎曙光,進口荷蘭光刻機順利入廠! 從哈希函數、哈希沖突、開散列出發,一文告訴你哈希思想與哈希表構造到底是什么! 前端 Webpack 工程化的最佳實踐 真香,朕在看了!

總結

以上是生活随笔為你收集整理的MySQL数据库无完整备份删库,除了跑路还能怎么办?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。