【SQLServer】SQLServer2008Expressから2019Expressへの移行作業

Windows

SQLServerのバージョンアップ作業依頼がきました。
OSやSQLServerの現状確認すると、WindowsXP上でSQLServer2008EXPRESSが動作しています。
インターネット接続もされておらず、社内LANでクライアントPCからのみ接続。
今となっては化石に近い環境ですが、今まで何の問題も無く動作している模様。
移行先は仮想サーバーに64bitOSを準備しSQLServer2019EXPRESSをインストール、その後多少チューニングを施せばより快適になるのかな・・・という感じで作業開始です。

SQLServer2019EXPRESSのインストール

作業としては、仮想化してOSをWindows10にバージョンアップ、その後SQLServer2019EXPRESSインストール後に既存DBをインポートします。

では、Windows10にSQLServer2019EXPRESSをインストールを行っていきます。
インストーラーを起動して、新規インストールを選択して開始します。

「次へ」を選択します。

Windowsファイアウォールで警告が表示されますが、そのまま「次へ」を選択します。

「同意します」にチェックを入れ、「次へ」を選択します。

機能はひとまず標準のままインストールするので、「次へ」を選択します。

そのまま「次へ」を選択します。

JREをインストールするので「次へ」を選択します。

今回はクライアントPCから接続待ちをするので、「SQL Server Browser」のサービスを自動起動します。
標準では無効になっているので自動へ変更し、「次へ」を選択します。

データベースの環境設定を行います。
構成は各タブで切替して設定するようになっています。
全ての設定が完了後、「次へ」を選択します。

R openのインストールの同意について「承諾」を選択します。

「次へ」を選択します。

Pythonのインストールの同意について「承諾」し、「次へ」を選択します。

インストールが開始されます。

正常にインストール終了時、完了メッセージが表示されます。
「閉じる」を選択します。

次に、SQLServer管理ツールのインストールを行います。

インストーラーのダウンロードを行います。
以下の無料ダウンロードのリンクを押すとダウンロードが開始されますが、こちらは英語バージョンになります。

日本語バージョンをダウンロードする場合は、「日本語」を選択してください。

ダウンロード完了後、インストーラーを起動します。
インストール先を選択し、「Install」をクリックします。

インストール完了後、「Restart」で再起動を行います。

標準ではTCP/IPの接続は無効になっているので、クライアントからの接続を受付する為に設定を行います。
SQLServer2019構成マネージャーを起動し、[SQLServerネットワークの構成]-[SQLEXPRESSのプロトコル]を選択し、右側のTCP/IPを右クリックでプロパティを選択します。

IPアドレスタブを選択し、TCPポートを確認または変更します。

ファイアウォールの設定を行います。
Windows管理ツールより「Windows Defender ファイアウォール」を起動し、先ほどのTCP/IP接続のTCP:1433及びSQLServerBrowserサービスのUDP:1434を解放を行います。

以上でクライアントPCからTCP/IP接続はできるはずなので、ODBC等で接続確認を行います。

データベースの移行については「SQLServerManagement」から旧データベースをバックアップし、移行先の「SQLServerManagement」を利用して復元処理を行います。
但しそのままでは、互換性レベルはSQLServer2008(100)のままで動作する事になります。

SQLServer2019(150)で動作させる場合は、オプションから互換性レベルを変更する事で可能です。
(2008から2019の移行についてマイグレーション機能も提供されておらず、非推奨なので注意してください)

まとめ

2008から2019へのデータベース移行はバックアップと復元で可能で、互換性レベルも現状維持であればほとんど問題無く動作すると思います。
でも2019の性能を出し切る事はできないので、互換性レベルをオプション設定で変更して十分な動作テスト後に完全移行する方法が望ましいと思います。

コメント