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