INF:以 BACKUP 和 RESTORE 將 SQL Server 7.0 資料庫移到新的伺服器

文章翻譯 文章翻譯
文章編號: 304692 - 檢視此文章適用的產品。
本文曾發行於 CHT304692
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您,如何把使用者和系統的資料庫備份,還原到另一個磁碟機代號設定與原先備份資料庫的伺服器不同的 SQL Server 7.0。當您想要使用資料庫備份或資料庫還原來移動資料庫時,可以使用這個方法。 如需有關使用其他方法的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
224071資訊:將 SQL Server 7.0 資料庫移到新位置
注意:本文中的這些指示不適用於 SQL Server 2000。

您無法將 SQL Server 7.0 mastermodelmsdb 或散發系統資料庫還原到 SQL Server 2000。SQL Server 7.0 系統資料庫與 SQL Server 2000 不相容。

其他相關資訊

本文中的範例是根據下列假設而定:
  • SQL Server 7.0 的目的安裝位於 D:\Mssql7 目錄中,而資料庫檔案和記錄檔則位於預設的 D:\Mssql7\data 目錄中。
  • SQL Server 7.0 的來源安裝位於 C:\Mssql7 目錄中,而資料庫檔案和記錄檔則位於預設的 C:\Mssql7\data 目錄中。

先決條件

  • 將所有的資料庫自目前位置進行最新備份,尤其是 master 資料庫、model 資料庫以及 msdb 資料庫。
  • 您必須具備系統管理員權限。
  • 您必須知道要還原之資料庫的所有資料和記錄檔的邏輯名稱和實體名稱。

    注意:如果要判斷您想要從備份組還原的所有檔案的邏輯名稱和實體名稱,請在 Query Analyzer 連線中執行下列命令,其中 mydbdata.bak 是含有資料庫備份的檔案名稱:
    RESTORE FILELISTONLY FROM DISK='d:\mssql7\backup\mydbdata.bak'
    go
    					
  • 來源和目的 SQL Server 7.0 安裝應該均已套用相同的 Service Pack 和修補程式。
如果您在處理過程當中發生問題,而無法存取您所移動的資料庫,或者如果您無法啟動 SQL Server,請查閱 SQL Server 錯誤記錄和《SQL Server 7.0 線上叢書》,以取得這些錯誤的詳細資訊。

還原資料庫

  1. 還原 master 資料庫。

    在下列範例中,master 資料庫含有一個來自完整資料庫備份檔 Master_db.bak 的資料檔 Master.mdf 和記錄檔 Mastlog.ldf。
    1. 從命令提示執行下列命令,以啟動 SQL Server:
      d:\mssql7\binn\sqlservr -c -m

      注意-m 參數可在單一使用者模式中啟動 SQL Server。在單一使用者模式中,您無法建立一個以上的連線。在與 SQL Server Query Analyzer 連線之前,請先留意其他可能建立該單一連線的用戶端或服務。
    2. 在 SQL Server Query Analyzer 中,請使用下列語法來還原 master 資料庫的備份:
      RESTORE DATABASE master FROM disk='d:\mssql7\backup\master_db.bak'
      WITH MOVE 'master' to 'd:\mssql7\data\master.mdf',
      MOVE 'mastlog' to 'd:\mssql7\data\mastlog.ldf',
      REPLACE
      go
      注意:還原 master 資料庫之後,SQL Server 會自動關閉。
    3. 從命令提示執行下列命令,以啟動 SQL Server:
      d:\mssql7\binn\sqlservr -c -f -T3608 -T4022
      注意:您可以利用這個語法,來執行系統資料表更新。
    4. 在 SQL Server Query Analyzer 中,執行下面這一組陳述式:

      警告:系統資料表如果更新不當,可能會導致嚴重的問題,而必須重新安裝 SQL Server。Microsoft 不保證可以解決因不當更新系統資料表所導致的問題。您必須自行承擔更新系統資料表的風險。
      USE master
      go
      UPDATE sysdatabases SET filename='d:\mssql7\data\tempdb.mdf' WHERE name='tempdb'
      go
      ALTER DATABASE tempdb MODIFY FILE (name = tempdev, filename = 'd:\mssql7\data\tempdb.mdf')
      ALTER DATABASE tempdb MODIFY FILE (name = templog, filename = 'd:\mssql7\data\templog.ldf')
      go
      您應該會收到下面這些確認變更的訊息:
      File 'tempdev' modified in sysaltfiles. (已修改 sysaltfiles 中的「tempdev」檔)Delete old file after restarting SQL Server. (請在重新啟動 SQL Server 之後刪除舊檔)

      File 'templog' modified in sysaltfiles. (已修改 sysaltfiles 中的「templog」檔)Delete old file after restarting SQL Server. (請在重新啟動 SQL Server 之後刪除舊檔)
  2. 還原 model 資料庫。

    在下列範例中,model 資料庫含有一個來自完整資料庫備份檔 Model_db.bak 的資料檔 Model.mdf 以及記錄檔 Modellog.ldf。如果您沒有 model 資料庫的備份,或者如果您想要使用在安裝 SQL Server 時預設安裝的資料庫,可以重新對應 model 資料庫。這個程序類似步驟 4 中所述的 northwind 資料庫以及 pubs 資料庫的程序。
    1. 在 SQL Server Query Analyzer 中,執行下面的預存程序,以便從 SQL Server 卸離目前的 model 資料庫:
      exec sp_detach_db N'model'
      go
      執行預存程序之後,您會收到下面的訊息:
      Successfully detached database 'model'(成功卸離資料庫 'model')
      已完成 DBCC 執行作業。如果 DBCC 列印錯誤訊息,請連絡您的系統管理員
      注意:您必須卸離 model 資料庫,因為您無法使用 RESTORE 陳述式直接覆寫它。您必須先移除這個系統資料庫的系統資料表參照,才能還原資料庫。此外,您也不能為了移除那些系統項目而刪除資料庫。
    2. 在 SQL Server Query Analyzer 中,請使用下列語法來還原 model 資料庫的備份:
      RESTORE DATABASE model FROM disk='d:\mssql7\backup\model_db.bak'
      WITH MOVE 'modeldev' TO 'd:\mssql7\data\model.mdf',
      MOVE 'modellog' TO 'd:\mssql7\data\modellog.ldf',
      REPLACE
      go
      注意:還原 model 資料庫之後,SQL Server 便會自動關閉。
  3. 還原 msdb 資料庫。

    在下列範例中,msdb 資料庫含有來自完整資料庫備份檔 Msdb_db.bak 的資料檔 Msdbdata.mdf 和記錄檔 Msdblog.ldf。
    1. 從命令提示執行下列命令,以啟動 SQL Server:
      d:\mssql7\binn\sqlservr -c -f -T3608 -T4022
    2. 在 SQL Server Query Analyzer 中,執行下面的預存程序,以卸離 msdb 資料庫:
      exec sp_detach_db N'msdb'
      go
    3. 在 SQL Server Query Analyzer 中,請使用下列語法來還原 msdb 資料庫的備份:
      RESTORE DATABASE msdb FROM disk='d:\mssql7\backup\msdb_db.bak'
      WITH MOVE 'msdbdata' TO 'd:\mssql7\data\msdbdata.mdf',
      MOVE 'msdblog' TO 'd:\mssql7\data\msdblog.ldf',
      REPLACE
      go
      注意:還原 msdb 資料庫之後,SQL Server 便會自動關閉。
  4. northwindpubs 資料庫:

    還原 master 資料庫之後,會改變 northwind 資料庫和 pubs 資料庫的系統資料表項目,而且這兩個資料庫也和所有其他的使用者資料庫一樣,都處於「疑問」(Suspect) 模式。如果您要重複使用原始的資料庫檔案,並且將它們重新附加到伺服器,請使用下列範例。否則,如果要從備份還原副本,請使用步驟 6 中所述的 mydb 資料庫範例。請使用下列範例來更新 northwind 資料庫的系統資料表參照。northwind 資料庫含有一個資料檔 Northwind.mdf 和一個記錄檔 Northwind.ldf。
    1. 從命令提示執行下列命令,以啟動 SQL Server:
      d:\mssql7\binn\sqlservr -c -f -T3608 -T4022
    2. 在 SQL Server Query Analyzer 中,執行下面的預存程序,以卸離 northwind 資料庫:
      exec sp_detach_db N'northwind'
      go

      注意:您可能會收到下列訊息,指出無法存取實體檔案:
      Server:Msg 947, Level 16, State 1, Line 1 Error while closing database 'Northwind' cleanly.(伺服器:關閉資料庫 Northwind 時發生訊息 947、層級 16、狀態 1、行 1 錯誤)
      Successfully detached database 'northwind'.
      DBCC execution completed.If DBCC printed error messages, contact your system administrator. (已卸離資料庫 northwind。已完成 DBCC 執行作業。如果 DBCC 列印錯誤訊息,請連絡您的系統管理員)
    3. 在 SQL Server Query Analyzer 中,請使用下列語法來附加 northwind 資料庫:
      exec sp_attach_db N'northwind', N'd:\mssql7\data\northwnd.mdf', N'd:\mssql7\data\northwnd.ldf'
      go
  5. 重新對應 pubs 資料庫。

    pubs 資料庫含有一個資料檔 Pubs.mdf 和一個記錄檔 Pubs_log.ldf。您可以比照重新對應 northwind 資料庫的方法,重新對應 pubs 資料庫。
  6. 還原 mydb 資料庫。

    mydb 資料庫含有來自完整資料庫備份檔 Mydb_db.bak 的資料檔 Mydbdata.mdf 和記錄檔 Mydblog.ldf。
    1. 在 SQL Server Query Analyzer 中,執行下面的預存程序,以卸離 mydb 資料庫:
      exec sp_detach_db N'mydb'
      go
    2. 在 SQL Server Query Analyzer 中,請使用下列語法來還原 mydb 資料庫的備份:
      RESTORE DATABASE mydb FROM disk='d:\mssql7\backup\mydb_db.bak'
      WITH MOVE 'mydbdata' TO 'd:\mssql7\data\mydbdata.mdf',
      MOVE 'mydblog' TO 'd:\mssql7\data\mydblog.ldf',
      REPLACE
      go
  7. 重新命名 SQL Server。

    重要:只有在您必須將 SQL Server 安裝的名稱改成剛剛還原的 master 資料庫名稱時,才需要進行此程序。

    例如,如果遇到下列情況,就要重新命名 SQL Server:

    • 您已將資料庫備份從名為 SOURCESVR 的電腦,還原到名為 TARGETSVR 的電腦。
    • 名為 TARGETSVR 的電腦具有名為 SOURCESVR 的 SQL 伺服器。
    如果您需要重新命名 SQL Server,請使用下列語法來同步處理電腦名稱和 SQL Server 名稱:
    exec sp_dropserver 'SOURCESVR'
    go
    exec sp_addserver 'TARGETSVR', 'LOCAL'
    go
  8. 重新啟動 SQL Server 服務。

參考

如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
224071資訊:將 SQL Server 7.0 資料庫移到新位置
314546HOW TO:在執行 SQL Server 的電腦間移動資料庫
注意:如需有關其他啟動選項 (如 -c-m-f) 的詳細資訊,請參閱《SQL Server 線上叢書》。

屬性

文章編號: 304692 - 上次校閱: 2011年5月12日 - 版次: 4.0
這篇文章中的資訊適用於:
  • Microsoft SQL Server 7.0 Standard Edition
關鍵字:?
kbsqldeveloper kbinfo KB304692
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com