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 のバージョン番号についてはこちらを参照。