あるジオデータベースのコンテンツを 同じ Microsoft SQL Server インスタンス上の別のデータベースに移行する場合、2 つ目のジオデータベースを作成し、データを移行できます。ジオデータベースを新しい SQL Server インスタンスに移行する場合、SQL Server で提供されている複数のオプションのいずれかを使用して、データベース全体を移行できます。
同じ SQL Server インスタンス上の別のジオデータベースへのデータの移行
同じ SQL Server インスタンス内のデータベースとジオデータベースの名前は、一意である必要があります。そのため、同じインスタンス上の別のジオデータベースにデータを移行する場合、インスタンスに 2 つ目のジオデータベースを作成し、既存のデータを新しいジオデータベースに移行します。ArcGIS でデータを移行するには、コピーと貼り付け、エクスポート ツール、データの抽出ウィザード、または XML ワークスペース ドキュメントを使用します。
新しいジオデータベースにデータをロードしているときにログインしているユーザーが、そのデータを所有することになることに注意してください。新しいジオデータベースでもデータの所有者を同じにする場合は、各ユーザーが自分の所有しているデータを移行します。
新しい SQL Server インスタンスへのデータベースの移行
ジオデータベースを新しい SQL Server インスタンスに移行する場合、SQL Server ツールを使用してデータベース全体を移行できます。SQL Server データベースを移行する方法には、データベース ファイルを SQL Server インスタンスからデタッチして新しいインスタンスにアタッチする方法、データベースのバックアップを作成して新しい SQL Server インスタンスに復元する方法、データベース コピー ウィザードを使用する方法などがあります。
SQL Server データベースの移行にどの方法を使用するとしても、データベースの名前を変更することはできません。たとえば、データベースを復元する際には、必要に応じて、データベースを別の名前で復元することができます。その際、ジオデータベースの名前を変更すると、そのジオデータベースへの接続は不可能になります。
ジオデータベースのシステム テーブル内のすべてのオブジェクト名はデータベース名で完全修飾されます。さらに、多くのストアド プロシージャは、<データベース>.<所有者>.<オブジェクト>という形式の 3 つの部分からなる命名規則を使用します。データベースの名前が変更された場合、これらのストアド プロシージャは実行できなくなります。
デタッチとアタッチの使用
運用している SQL Server データベースに格納されたジオデータベースを移行する最も簡単な方法は、移行元サーバーからデータベースをデタッチし、移行先サーバーにアタッチすることです。次の点に注意してください。
- デタッチしたデータベースへの接続は完全に不可能になります。
- デタッチにより、データベースは正常終了されます。
- デタッチ/アタッチは、データベースのバックアップ/リストアよりも高速に実行される可能性があります。
- デタッチ/アタッチを使用すると、移行元サーバーと移行先サーバーにまったく同じデータベースが作成されます。
- この方法は大量のデータを移行する場合に適しています。
- SQL Server インスタンスからデータベースをデタッチするには、最低でも db_owner 権限が必要になります。
- データベースを SQL Server インスタンスにアタッチするには、CREATE DATABASE 権限が必要になります。
- SQL Server のエンタープライズ ジオデータベースの場合、CREATE DATABASE FOR ATTACH SQL コマンドで、すべてのデータとログ ファイルを指定できます。
別のデータベースのバックアップの復元
運用している SQL Server データベースを移行するためのもう 1 つの方法は、データベースの完全バックアップを実行し、移行先サーバーでバックアップ ファイルをリストアすることです。次の点に注意してください。
- リストア操作中、論理ファイル名を変更することはできません。
- バックアップ処理でのアタッチは可能ですが、リストア処理では不可能です。
SQL Server データベースのバックアップの復元の詳細については、SQL Server のドキュメントをご参照ください。
データベース コピー ウィザード
SQL Server Management Studio が提供するデータベース コピー ウィザードを使用して、データベースを移行することができます。データベース コピー ウィザードを使用する際には、注意しなければならない点がいくつかあります。
- 複数のデータベースをコピーすることができます。
- 同じインスタンス上でデータベースのコピーを作成する場合、データベース コピー ウィザードは使用できません。
- データベース コピー ウィザードからユーザー アカウントを除外することはできないので、それらはコピー先のデータベースに新しいサーバー ユーザー ID (SID) で移行されます。
- このウィザードを使用するには、移行元サーバーと移行先サーバーが接続している必要があります。