MySQL資料“誤”刪“攻防”戰

來源:互聯網
上載者:User

相信各位線上都可能遇到過或者聽到過資料被應用程式“誤”刪,可能因為拼SQL導致謂詞為永真刪除或者更新了全部資料?或者虛驚一場?因此,面對這種情況我們要能:

1.“攻”:如何防止這種情況發生

2.“守”:如何發生了怎麼辦

對於“攻”:

因為我們是MySQL,主要拿MySQL舉例:

1.sql_safe_update:當設定為1時

對於update:如果謂詞沒有索引並且沒有limit會被拒絕

對於delete:如果謂詞永真或為空白,或者謂詞沒有索引並且沒有limit被拒絕

其實這兩點對於oltp來說是很有意義的

2.在driver/proxy層面上進行過濾

可以嵌入規則引擎到driver(比如druid)或者proxy(比如cobar)中,這樣更靈活,可配置.

3.逾時自動kill,對於OLTP來說如果要死就早死早超生,也叫fail fast,如果當真一個大語句update/delete很久產生的後果也是很可怕的,真要是這樣還不如直接kill掉(當然更優雅的是上面的方式,直接就根據規則拒絕掉)

4.流程自動/正常化

SQL上線流程,測試環境自動化正常化

對於“守”:

0.定期備份和有效性測試是必須的,這個是底線

1.可以建立延遲複製:

這個方法就很多了,pt-slave-delay/tungsten-replicator/blabla...

2.MySQL Flashback:

http://mysql.taobao.org/index.php/Patch_source_code#Add_flashback_feature_for_mysqlbinlog

各位小夥伴們歡迎補充J

誤刪資料庫所有檔案(包括資料檔案、控制檔案、記錄檔等)後恢複

Linux下通過mysqldump備份MySQL資料庫成sql檔案

Linux中使用mysqldump對MySQL資料庫進行定時備份

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.