iT邦幫忙

0

關於資料庫還原的問題

  • 分享至 

  • xImage

各位前輩您們好,最近問的問題有點多,我也有努力在學習,
希望前輩們能多多指教,謝謝。

我在web管理介面建立專案、使用者權限等資料並匯出檔案給某軟體當作設定檔使用。
現在有一個維護的需求是,要還原到某一天的資料。

我匯出設定檔的時候都會備份原來的檔案,只要把那個備份檔蓋回來就可以了,
不過資料庫的檔案不知道要怎麼去還原成之前的內容。
比較傾向於在WEB管理介面中完成。

我目前想到的方法是:
1.有一個欄位去紀錄web每次下的sql指令以及輸入的時間,從無到某時間點的資料重新建立,
但這方法不可行,等於把資料全刪再建立,有風險。
2.備份DB,到時需要全部還原蓋回去。可是平時就有在備份SERVER,應該不需要備份到整個資料庫。

不知前輩們有沒有比較好的建議呢?謝謝指教。

看更多先前的討論...收起先前的討論...
hon2006 iT邦大師 1 級 ‧ 2012-09-13 23:09:17 檢舉
請問是那一種資料庫?
wiseguy iT邦超人 1 級 ‧ 2012-09-13 23:51:59 檢舉
除非是資料庫壞掉,才會想要把備份還原回去。沒事做這種無意義的 DB 還原動作,只能說頭殼壞掉。需要前幾天的資料,就 select 到那天不就好了嗎?

很好奇什麼需求會用到把 DB 還原回前幾天?我只遇過公家單位為了要造假,才會這樣玩。

有在運作的 DB 動輒以 GB 計的資料,就算要以備份來 full copy 還原也要停止服務好幾十分鐘,難不成這幾十分鐘都不必使用 DB 了?
wiseguy iT邦超人 1 級 ‧ 2012-09-13 23:55:27 檢舉
說到公家單位造假我才想到,當初我們應付這些米蟲的方法,其實不是還原,而是把他們想要還原的那一天,之後的資料砍掉就好了。又快又安全。提供給樓主參考一下。
timtam iT邦新手 4 級 ‧ 2012-09-14 10:08:43 檢舉
是MS-SQL
timtam iT邦新手 4 級 ‧ 2012-09-14 11:51:16 檢舉
感謝您的指導,我有一個疑問是

如果資料在這時間已del了,也就select不到之前時間點的資料?

依您的經驗,不知是用什麼方式解決的。
wiseguy iT邦超人 1 級 ‧ 2012-09-14 12:03:48 檢舉
原來是想翻出刪掉的資料啊
以往因為客戶不想真的刪掉資料,所以都只是註記刪除而已,因此要翻舊資料還是可以翻得到。不過如果你的資料庫若是真的刪掉了,那真的是得還原才能找得到了沒錯。
ckp6250 iT邦好手 1 級 ‧ 2019-11-29 20:58:38 檢舉
ms-sql 我不知道,但 mriadb 10.3 版之後,有個【異動追蹤】功能,

一筆資料,不管刪幾次或改幾次,都查得到。

很實用的設計。


https://www.xuehua.us/2018/06/23/mariadb-10-3%E9%A6%96%E6%8E%A8%E7%B3%BB%E7%BB%9F%E7%89%88%E6%9C%AC%E8%A1%A8%EF%BC%8C%E8%AF%AF%E5%88%A0%E6%95%B0%E6%8D%AE%E4%B8%8D%E7%94%A8%E8%B7%91%E8%B7%AF%E4%BA%86%EF%BC%81/zh-tw/
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
雷夢卡爾
iT邦研究生 5 級 ‧ 2012-09-14 10:04:08
最佳解答

將資料表多個資料建立時間或是資料修改時間來註記時間,到時只要select到你想要的時間點之前的資料就可以了。

timtam iT邦新手 4 級 ‧ 2012-09-14 11:49:52 檢舉

感謝您的指導,我有一個疑問是

如果資料在這時間已del了,也就select不到之前時間點的資料?

依您的經驗,不知是用什麼方式解決的。

雷夢卡爾 iT邦研究生 5 級 ‧ 2012-09-17 11:09:20 檢舉

如果資料量不大或許可以改為資料編修歷程的方式。以上純屬個人胡言亂語^^

我要發表回答

立即登入回答