[INF] BACKUP および RESTORE を使用して SQL Server 7.0 データベースを新しいサーバーに移動する

文書翻訳 文書翻訳
文書番号: 304692 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

この資料では、ユーザーとシステムのデータベース バックアップを、最初にデータベースをバックアップしたサーバーとは異なるドライブ文字構成を持つ別の SQL Server 7.0 のインストールに復元する方法について説明します。この手法は、データベースのバックアップとデータベースの復元を使用してデータベースを移動する場合に使用できます。 代用可能な方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
224071 SQL Server データベースをデタッチとアタッチにより新しい場所に移動する
: この資料に記載されている説明は、SQL Server 2000 には適用されません。

SQL Server 7.0 の master データベース、model データベース、msdb データベース、またはディストリビューション システム データベースを 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 データベースの現在のバックアップを、それらのデータベースの現在の場所から作成します。
  • システム管理者権限が必要です。
  • 復元するデータベースのすべてのデータ ファイルとログ ファイルの論理名と物理名を、両方とも知っている必要があります。

    : バックアップ セットから復元するすべてのファイルの論理名と物理名を特定するには、クエリ アナライザの接続で以下のコマンドを実行します。コマンドの 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 Books Online を確認してください。

データベースを復元する

  1. master データベースを復元します。

    以下の例では、master データベースには、データベース全体のバックアップ ファイル Master_db.bak からの 1 つのデータ ファイル Master.mdf および 1 つのログ ファイル Mastlog.ldf が含まれています。
    1. コマンド プロンプトから以下のコマンドを実行して、SQL Server を起動します。
      d:\mssql7\binn\sqlservr -c -m

      : -m スイッチは、シングル ユーザー モードで SQL Server を起動します。シングル ユーザー モードでは、複数の接続を正常に確立できません。SQL Server クエリ アナライザで接続する前に、単一の接続を確立する可能性のある他のクライアントやサービスに注意してください。
    2. SQL Server クエリ アナライザで、以下の構文を使用して 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 クエリ アナライザで、以下のステートメント セットを実行します。

      警告 : システム テーブルの更新方法を誤ると、深刻な問題が発生する場合があります。最悪の場合、SQL Server の再インストールが必要です。マイクロソフトは、システム テーブルの誤った更新により発生した問題に関しては、一切責任を負わないものとします。システム テーブルの更新は、自己の責任において行ってください。
      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
      以下のメッセージが表示され、変更が確認されます。
      ファイル 'tempdev' が sysaltfiles で変更されました。SQL Server 再起動後に古いファイルを削除してください。

      ファイル 'templog' が sysaltfiles で変更されました。SQL Server 再起動後に古いファイルを削除してください。
  2. model データベースを復元します。

    以下の例では、model データベースには、データベース全体のバックアップ ファイル Model_db.bak からの 1 つのデータ ファイル Model.mdf および 1 つのログ ファイル Modellog.ldf が含まれています。model データベースのバックアップがない場合、または SQL Server のインストール中にデフォルトでインストールされる model データベースを使用する場合は、model データベースを再度マッピングできます。この手順は、手順 4. の northwind データベースと pubs データベースに対する説明と同様の手順です。
    1. SQL Server クエリ アナライザで、以下のストアド プロシージャを実行して、SQL Server から現在の model データベースをデタッチします。
      exec sp_detach_db N'model'
      go
      上記のストアド プロシージャを実行した後、以下のメッセージが表示されます。
      データベース 'model' を正常に detached しました。
      DBCC の実行が完了しました。DBCC がエラー メッセージを出力した場合は、システム管理者に相談してください。
      : RESTORE ステートメントを使用して model データベースを直接上書きすることはできないので、model データベースをデタッチする必要があります。データベースを復元する前に、このシステム データベースのシステム テーブル参照を削除する必要があります。また、システム エントリを削除する目的で、データベースを削除することはできません。
    2. SQL Server クエリ アナライザで、以下の構文を使用して 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 からの 1 つのデータ ファイル Msdbdata.mdf および 1 つのログ ファイル Msdblog.ldf が含まれています。
    1. コマンド プロンプトから以下のコマンドを実行して、SQL Server を起動します。
      d:\mssql7\binn\sqlservr -c -f -T3608 -T4022
    2. SQL Server クエリ アナライザで、以下のストアド プロシージャを実行して、msdb データベースをデタッチします。
      exec sp_detach_db N'msdb'
      go
    3. SQL Server クエリ アナライザで、以下の構文を使用して 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. northwind データベースおよび pubs データベースに対して、以下の操作を実行します。

    master データベースの復元後、northwind データベースと pubs データベースのシステム テーブル エントリが変更され、他のすべてのユーザー データベースと同様、この 2 つのデータベースは未確認モードになります。元のデータベース ファイルを再利用して、それらのファイルをサーバーに再アタッチする場合、以下の例を使用できます。別の方法として、バックアップからのコピーを復元する場合は、手順 6. で説明する mydb データベースの例を使用します。以下の例を使用して、northwind データベースのシステム テーブル参照を更新します。northwind データベースには、1 つのデータ ファイル Northwind.mdf および 1 つのログ ファイル Northwind.ldf が含まれています。
    1. コマンド プロンプトから以下のコマンドを実行して、SQL Server を起動します。
      d:\mssql7\binn\sqlservr -c -f -T3608 -T4022
    2. SQL Server クエリ アナライザで、以下のストアド プロシージャを実行して、northwind データベースをデタッチします。
      exec sp_detach_db N'northwind'
      go

      : 以下のメッセージが表示され、物理ファイルにアクセスできないことが通知されます。
      サーバー : メッセージ 947、レベル 16、状態 1、行 1 データベース 'Northwind' を閉じているときにエラーが発生しました。
      データベース 'northwind' を正常に detached しました。
      DBCC の実行が完了しました。DBCC がエラー メッセージを出力した場合は、システム管理者に相談してください。
    3. SQL Server クエリ アナライザで、以下の構文を使用して、northwind データベースをアタッチします。
      exec sp_attach_db N'northwind', N'd:\mssql7\data\northwnd.mdf', N'd:\mssql7\data\northwnd.ldf'
      go
  5. pubs データベースを再マッピングします。

    pubs データベースには、1 つのデータ ファイル Pubs.mdf および 1 つのログ ファイル Pubs_log.ldf が含まれています。northwind データベースを再マッピングしたのと同じ方法で、pubs データベースを再マッピングできます。
  6. mydb データベースを復元します。

    mydb データベースには、データベース全体のバックアップ ファイル Mydb_db.bak からの 1 つのデータ ファイル Mydbdata.mdf および 1 つのログ ファイル Mydblog.ldf が含まれています。
    1. SQL Server クエリ アナライザで、以下のストアド プロシージャを実行して、mydb データベースをデタッチします。
      exec sp_detach_db N'mydb'
      go
    2. SQL Server クエリ アナライザで、以下の構文を使用して 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 の名前を変更します。

    重要 : この手順が必要になるのは、master データベースを復元した SQL Server のインストールの名前を変更する必要がある場合のみです。

    たとえば、以下の場合に 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 Knowledge Base) をクリックしてください。
224071 SQL Server データベースをデタッチとアタッチにより新しい場所に移動する
314546 [HOWTO] SQL Server を実行しているコンピュータ間でデータベースを移動する方法
: -c、-m、および -f などの、他の起動オプションの関連情報については、SQL Server Books Online を参照してください。

プロパティ

文書番号: 304692 - 最終更新日: 2011年5月16日 - リビジョン: 4.0
この資料は以下の製品について記述したものです。
  • Microsoft SQL Server 7.0 Standard Edition
キーワード:?
kbsqlmanagementtools kbinfo KB304692
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

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