次の方法で共有


データベース転送タスク

更新 : 2006 年 4 月 14 日

データベース転送タスクは、SQL Server の 2 つのインスタンスの間で SQL Server データベースを転送します。SQL Server オブジェクトをコピーして転送するだけの他のタスクに対し、データベース転送タスクでは、データベースをコピーまたは移動できます。このタスクでは、SQL Server 2000 のインスタンスの間、SQL Server 2005 のインスタンスの間、またはこの両者の間でデータベースをコピーできます。このタスクを使用して、同じサーバー内でデータベースをコピーすることもできます。

データベースは、オンライン モードまたはオフライン モードで転送できます。オンライン モードでは、データベースがアタッチされたまま、SQL 管理オブジェクト (SMO) を使用して転送され、データベース オブジェクトがコピーされます。オフライン モードでは、データベースがデタッチされた後、データベース ファイルがコピーまたは移動されます。転送が正常に完了した後、データベースが転送先にアタッチされます。データベースのコピーの場合、コピーが正常に完了するとデータベースは転送元に再びアタッチされます。オフライン モードでは、データベースは短時間にコピーされますが、転送が行われている間はデータベースを利用できなくなります。

オフライン モードを使用する場合は、転送元サーバーと転送先サーバー上でデータベース ファイルを格納するネットワーク ファイル共有を指定する必要があります。このフォルダが共有されていてユーザーがフォルダにアクセスできる場合、\\computername\Program Files\myfolder\ という構文を使用してネットワーク共有を参照できます。それ以外の場合は、\\computername\c$\Program Files\myfolder\ という構文を使用する必要があります。後者の構文を使用するには、転送元と転送先のネットワーク共有に対する書き込みアクセスがユーザーに許可されている必要があります。

データベースの転送が失敗した場合に転送元データベースへの再アタッチを試行するかどうかを指定できます。

さらに、データベース転送タスクでは、転送先に同じ名前のデータベースが存在する場合にそのデータベースを上書きするように構成できます。

転送プロセスの一部として、転送元データベースの名前を変更することもできます。転送先の SQL Server のインスタンスに同じ名前のデータベースが存在する場合にデータベースを転送するには、転送元データベースの名前を変更することでデータベースを転送できます。ただし、データベース ファイルの名前も異なっている必要があります。同じ名前のデータベース ファイルが転送先に既に存在すると、タスクは失敗します。

データベースをコピーする場合、データベースのサイズは、コピー先サーバーの model データベースのサイズより小さくすることはできません。コピーするデータベースのサイズを大きくするか、model データベースのサイズを小さくできます。

実行時、データベース転送タスクは、1 つまたは 2 つの SMO 接続マネージャを使用して、転送元サーバーと転送先サーバーに接続します。同じサーバー上にデータベースのコピーを作成する場合は、SMO 接続マネージャが 1 つだけ必要です。これらの SMO 接続マネージャはデータベース転送タスクとは別に構成され、データベース転送タスクで参照されます。SMO 接続マネージャは、サーバーと、タスクがこのサーバーにアクセスするときに使用する認証モードを指定します。詳細については、「SMO 接続マネージャ」を参照してください。

SQL Server のバージョン間でのデータベースの転送

データベース転送タスクは、SQL Server 2000 および SQL Server 2005 をサポートしています。データベース転送タスクでは、SQL Server 2000 のインスタンスの間、SQL Server 2005 のインスタンスの間だけでなく、SQL Server 2000 のインスタンスから SQL Server 2005 のインスタンスにデータベースを転送できます。

イベント

データベース転送タスクでは、エラー メッセージ転送の進捗状況は報告されません。0% または 100% 完了した場合のみ報告されます。

実行値

タスクの ExecutionValue プロパティで定義される実行値は、値 1 を返します。これは、他の転送タスクとは異なり、データベース転送タスクでは 1 つのデータベースしか転送できないためです。

データベース転送タスクの ExecValueVariable プロパティにユーザー定義変数を割り当てると、エラー メッセージ転送に関する情報をパッケージ内の他のオブジェクトで利用できるようになります。詳細については、「Integration Services の変数」および「パッケージでの変数の使用」を参照してください。

ログ エントリ

データベース転送タスクには、次のカスタム ログ エントリが含まれています。

  • SourceSQLServer    このログ エントリは、転送元サーバーの名前を一覧表示します。
  • DestSQLServer   このログ エントリは、転送先サーバーの名前を一覧表示します。
  • SourceDB    このログ エントリは、転送されたデータベースの名前を一覧表示します。

さらに、転送先データベースが上書きされたときに、OnInformation イベントのログ エントリが書き込まれます。

セキュリティおよび権限

オフライン モードを使用してデータベースを転送するには、パッケージを実行するユーザーが sysadmin サーバー ロールのメンバである必要があります。

オンライン モードを使用してデータベースを転送するには、パッケージを実行するユーザーが sysadmin サーバー ロールのメンバであるか、または選択されたデータベースのデータベース所有者 (dbo) である必要があります。

データベース転送タスクの構成

プロパティを設定するには、SSIS デザイナから行うか、またはプログラムによって設定します。

SSIS デザイナを使用して設定できるプロパティの詳細については、次のトピックのいずれかを参照してください。

SSIS デザイナでこれらのプロパティを設定する方法については、次のトピックを参照してください。

プログラムによるデータベース転送タスクの構成

プログラムによるプロパティの設定の詳細については、次のトピックを参照してください。

参照

概念

Integration Services タスク
パッケージの制御フローの作成

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 4 月 14 日

新しい内容 :
  • コピーするデータベースの最小サイズについての情報を追加しました。