SQL Server 2019 から SQL Server 2017 へのDB移行

週末に SQL Server 2019(MSSQL2019) から SQL Server 2017(MSSQL2017) へDBを移行する作業をしました。

SQL Server 2017 のインスタンスSQL Server 2019 の mdf ファイルをアッタッチすることができないため、
データの移行は「SQL Server インポートおよびエクスポート ウィザード」を使って行いました。

<背景>
MSSQL2019の試用版を使っていたが、以前購入したMSSQL2017のランセンスがあったため
MSSQL2019の試用期間180日を前にMSSQL2017へ移行することにしました。

<メモ>
新しいバージョンのMSSQLのmdfファイルをより下のバージョンのインスタンスにアタッチしようとするとエラーとなり、アタッチできません。

f:id:togashimanabu:20220228184248p:plain
エラーメッセージ
SQL Serverログを見るとこんなメッセージが表示されています。
ダウングレードのインスタンスにはアタッチできないようです。

メッセージ
The database 'testdb' cannot be opened because it is version 904. This server supports version 869 and earlier. A downgrade path is not supported.

<作業の流れ>

  1. MSSQL2019のスクリプトの生成ツールでMSSQL2017で流すスクリプトを生成します。(DBを右クリックー>タスクー>スクリプトの生成)

f:id:togashimanabu:20220228184703p:plain

  1. MSSQL2017をインストールします。
  2. このとき同一OS上にMSSQL2019の既定のインスタンスがあったためMSSQL2017は名前付きインスタンスで作成しました。
  3. MSSQL2017でスクリプトを実行します。
  4. このときMSSQL2019のみでしか使えないオプションのところではエラーとなります。その場合は必要に応じてスクリプトを修正します。
  5. SQL Server インポートおよびエクスポート ウィザード」でデータをMSSQL2019からMSSQL2017へ移行します。

f:id:togashimanabu:20220228184831p:plain

(おわり)