FAQ: 32-bit/64-bit SQL Server 間でのユーザーデータベースの移動は可能?

 

神谷 雅紀
Escalation Engineer

以下は、データベースを別の SQL Server インスタンスへ移動する場合の基本的な考え方です。

※ アタッチによりデータベースを移動する場合は、移動元インスタンスでは、データベースは必ずデタッチして下さい。SQL Server インスタンス停止中にデータベースファイルをコピーして移動する方法では、追加の手順が必要であったり、予期しない結果を招く可能性があります。

 

異なるプラットフォーム間の移動

SQL Server のバージョンが同じであれば、x86, x64, IA64 版の違いがあっても、データベースのフォーマットやデータベースのバージョンは同一です。そのため、SQL Server バージョンが同一であれば、x86, x64, IA64 版 SQL Server 間でデータベースをデタッチ / アタッチによって移動したり、バックアップ / リストアによって移動することができます。

 

上位バージョンへの移動

下位バージョンから上位バージョンへのアップグレードが可能です。下位バージョンの SQL Server で取得したバックアップを上位バージョンの SQL Server でリストアしたり、下位バージョンの SQL Server のデータベースをデタッチして、上位バージョンの SQL Server へアタッチすることができます。例えば、SQL Server 2005 インスタンス (バージョン 9.00.xxxx.x) でバックアップしたデータベースを SQL Server 2008 インスタンス (10.00.xxxx.x) にリストアすることができます。

ただし、次々バージョンへの移動など、移動先バージョンと移動元バージョンに 2 バージョン以上の隔たりがある場合には、一旦途中のバージョンを経由しないと、アップグレードできない場合があります。このような制限は各バージョンのアップグレードに関する文書に記載されていますので、移動先のバージョンの Books Online を確認して下さい。

バックアップと復元によるデータベースのコピー

デタッチとアタッチを使用したデータベースのアップグレード (Transact-SQL)

 

下位バージョンへの移動

メジャーバージョン、マイナーバージョンが上位の SQL Server インスタンスから下位の SQL Server インスタンスへデータベースを移動することはできません。例えば、SQL Server 2008 インスタンス (バージョン 10.00.xxxx.x) のデータベースをデタッチして SQL Server 2005 インスタンス (9.00.xxxx.x) にアタッチすることはできません。

メジャーバージョン、マイナーバージョンが同じであれば、下位のビルドやリビジョンへの移動は可能です。例えば、SQL Server 2008 R2 サービスパック 1 インスタンス (バージョン 10.50.2500.0) のデータベースをデタッチして、別の SQL Server 2008 R2 RTM インスタンス (10.50.1600.1) にアタッチすることはできます。

※ SQL Server のバージョン番号についてはこちらを参照。