Backup-Restoration

選擇性地將“記錄集”從一個 mysql 實例導入到另一個

  • July 16, 2012

我有一個託管生產數據庫的 mysql 伺服器,並且我通常會對其進行快照,我們也可以將其用作暫存環境。

有時會發生不好的事情,例如我們從生產中刪除一行(以及所有通過外鍵連接到它的行),在修復壞程式碼後,我繼續導入備份的數據。

但是,作為運營方面的菜鳥,我不確定正確的流程是什麼。

截至目前,我有一個腳本可以執行以下操作:

  • 獲取鍵 K 索引的行(使用 mysqldump -w)
  • 從表列表中獲取 row_key = K 的所有行(再次使用 mysqldump -w)
  • 在 prod db 中插入所有這些行(使用 mysql )

這看起來很駭人聽聞,並且總是在數據查找部分(例如,我的數據庫中的“相關”表列表不正確)和數據導入部分(例如,由於數據庫“分歧”而違反約束我必須手動修復INSERT程式碼)。

有沒有合適的方法來做這種事情?

我可以看到有關 SF 的相關問題,例如 將數據從一個 MYSQL 數據庫移動到另一個數據庫, 但這似乎與合併整個數據庫或導入整個備份有關,而不是恢復一小塊“自包含”數據。

不,你得到它的方式幾乎就是它必須完成的方式。該問題的正確解決方案是永遠不要刪除數據——將其標記為非活動狀態,或者最壞的情況是將其移動到“已刪除”表中。審計跟踪也很有效。

引用自:https://serverfault.com/questions/408043