明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

還原數(shù)據(jù)庫的經(jīng)典做法

[摘要]還原數(shù)據(jù)庫的經(jīng)典做法說明 所有的示例均假定已執(zhí)行了完整數(shù)據(jù)庫備份。 A. 還原完整數(shù)據(jù)庫 說明 MyNwind 數(shù)據(jù)庫僅供舉例說明。 下例顯示還原完整數(shù)據(jù)庫備份。 RESTORE DATABASE MyNwind FROM MyNwind_1 B. 還原完整數(shù)據(jù)庫備份和差異備份 下例還原完整數(shù)...

還原數(shù)據(jù)庫的經(jīng)典做法說明 所有的示例均假定已執(zhí)行了完整數(shù)據(jù)庫備份。


A. 還原完整數(shù)據(jù)庫


說明 MyNwind 數(shù)據(jù)庫僅供舉例說明。


下例顯示還原完整數(shù)據(jù)庫備份。

RESTORE DATABASE MyNwind
  FROM MyNwind_1

B. 還原完整數(shù)據(jù)庫備份和差異備份
下例還原完整數(shù)據(jù)庫備份后還原差異備份。另外,下例還說明如何還原媒體上的另一個備份集。差異備份追加到包含完整數(shù)據(jù)庫備份的備份設(shè)備上。

RESTORE DATABASE MyNwind
  FROM MyNwind_1
  WITH NORECOVERY
RESTORE DATABASE MyNwind
  FROM MyNwind_1
  WITH FILE = 2

C. 使用 RESTART 語法還原數(shù)據(jù)庫
下例使用 RESTART 選項重新啟動因服務(wù)器電源故障而中斷的 RESTORE 操作。

-- This database RESTORE halted prematurely due to power failure.
RESTORE DATABASE MyNwind
  FROM MyNwind_1
-- Here is the RESTORE RESTART operation.
RESTORE DATABASE MyNwind
  FROM MyNwind_1 WITH RESTART

D. 還原數(shù)據(jù)庫并移動文件
下例還原完整數(shù)據(jù)庫和事務(wù)日志,并將已還原的數(shù)據(jù)庫移動到 C:\Program Files\Microsoft SQL Server\MSSQL\Data 目錄下。

RESTORE DATABASE MyNwind
  FROM MyNwind_1
  WITH NORECOVERY,
   MOVE 'MyNwind' TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwind.mdf',
   MOVE 'MyNwindLog1' TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwind.ldf'
RESTORE LOG MyNwind
  FROM MyNwindLog1
  WITH RECOVERY

E. 使用 BACKUP 和 RESTORE 創(chuàng)建數(shù)據(jù)庫的復(fù)本
下例顯示使用 BACKUP 和 RESTORE 語句創(chuàng)建 Northwind 數(shù)據(jù)庫的復(fù)本。MOVE 語句使數(shù)據(jù)和日志文件還原到指定的位置。RESTORE FILELISTONLY 語句用于確定待還原數(shù)據(jù)庫內(nèi)的文件數(shù)及名稱。該數(shù)據(jù)庫的新復(fù)本稱為 TestDB。有關(guān)更多信息,請參見 RESTORE FILELISTONLY。

BACKUP DATABASE Northwind
  TO DISK = 'c:\Northwind.bak'
RESTORE FILELISTONLY
  FROM DISK = 'c:\Northwind.bak'
RESTORE DATABASE TestDB
  FROM DISK = 'c:\Northwind.bak'
  WITH MOVE 'Northwind' TO 'c:\test\testdb.mdf',
  MOVE 'Northwind_log' TO 'c:\test\testdb.ldf'
GO

F. 使用 STOPAT 語法還原到即時點和使用多個設(shè)備進行還原
下例將數(shù)據(jù)庫還原到其在 1998 年 4 月 15 日中午 12 點時的狀態(tài),并顯示涉及多個日志和多個備份設(shè)備的還原操作。

RESTORE DATABASE MyNwind
  FROM MyNwind_1, MyNwind_2
  WITH NORECOVERY
RESTORE LOG MyNwind
  FROM MyNwindLog1
  WITH NORECOVERY
RESTORE LOG MyNwind
  FROM MyNwindLog2
  WITH RECOVERY, STOPAT = 'Apr 15, 1998 12:00 AM'

G. 使用 TAPE 語法還原
下例顯示從 TAPE 備份設(shè)備還原完整數(shù)據(jù)庫備份。

RESTORE DATABASE MyNwind
  FROM TAPE = '\\.\tape0'

H. 使用 FILE 和 FILEGROUP 語法還原
下例還原一個包含兩個文件、一個文件組和一個事務(wù)日志的數(shù)據(jù)庫。

RESTORE DATABASE MyNwind
  FILE = 'MyNwind_data_1',
  FILE = 'MyNwind_data_2',
  FILEGROUP = 'new_customers'
  FROM MyNwind_1
  WITH NORECOVERY
-- Restore the log backup.
RESTORE LOG MyNwind
  FROM MyNwindLog1

I. 將事務(wù)日志還原到標(biāo)記處
下例顯示將事務(wù)日志還原到名為"RoyaltyUpdate"的標(biāo)記處。

BEGIN TRANSACTION RoyaltyUpdate
  WITH MARK 'Update royalty values'
GO
USE pubs
GO
UPDATE roysched
  SET royalty = royalty * 1.10
  WHERE title_id LIKE 'PC%'
GO
COMMIT TRANSACTION RoyaltyUpdate
GO
--Time passes. Regular database
--and log backups are taken.
--An error occurs.
USE master
GO

RESTORE DATABASE pubs
FROM Pubs1
WITH FILE = 3, NORECOVERY
GO
RESTORE LOG pubs
  FROM Pubs1
  WITH FILE = 4,
  STOPATMARK = 'RoyaltyUpdate'


呵呵,俺先在這兒拋幾塊磚頭,有玉的盡管拿來:)