2009-07-22 82 views
0

我將數據庫(Sql 2005 Express)的mdf和ldf複製到我的機器上,並在我的Sql 2005(Developer Edition)中附加了它們。由於我需要研究一個問題,因此我已經將源機器中的日誌記錄設置爲完整。恢復到某個時間點

現在,在我的SQL Server中,我有2個數據庫,我剛剛附加的DAProd和我剛剛創建的DARestore。我想用DAProd的時間點版本恢復DARestore。當我彈出恢復對話框時,它不會在來源下拉菜單中顯示DAProd。任何指針將不勝感激。

謝謝。

+0

你的問題沒有多大意義。您需要DAProd的各種時間點備份,而不是當前的數據庫副本重新連接。 – 2009-07-22 03:05:41

+0

我是這個新手。所以在運行DA Prod的機器上,當我設置完成後,我將恢復設置爲完全。一個月後,我創建了一個完整備份並將其移至我的開發機器。我假設這將有必要的數據庫和日誌備份恢復到某個時間點? 在SQL Server管理控制檯中,當我打開一個新的查詢時,哪個db讓我選擇運行你的語句? – Maky29 2009-07-22 19:16:15

回答

4

我假設你有DAProd的備份(完全和日誌)。您不需要附加DAProd副本,備份過程就可以爲您創建「複製」數據庫。但是,如果你確實附加了它,沒關係。

首先你運行你最近DAProd的完全備份比當下年長及時的恢復要停止恢復:

RESTORE DATABASE [DAProd] FROM DISK = '<yourfullbackup>' WITH NORECOVERY; 

下次啓動恢復的日誌備份後發生完全備份,但仍先於時間的那一刻,一個接一個:

RESTORE LOG [DAprod] FROM DISK = 'yournextlog' WITH NORECOVERY; 

現在您還原包含時間中的時刻日誌要停止:

RESTORE LOG [DAProd] FROM DISK = 'yournextlog' WITH STOPAT = '<timetostop'; 

最後一步是將DAProd數據庫聯機。順便說一句,這將回滾任何在您的時間在飛行中的未提交的交易:

ALTER DATABASE [DAProd] SET ONLINE;

現在,您可以查看數據庫,因爲它是在那一刻在你希望的時間,因爲是否會在那一刻回滾任何未決的事務。