みなさまこんにちは。クラウドアーキテクトの卵です。
就職のために上京して、10年以上経ちました。
新卒で入った会社では大阪を希望していましたが、何故か縁もゆかりもない東京に来てしまいました。人が多いところが苦手なので、地元にいたころは「絶対東京なんて慣れない!満員電車とか勘弁!」と思っていたのですが、今ではすっかり慣れてしまいました。
「住めば都」とは、よく言ったものです。
前回 に引き続き、データ移行ツールを紹介いたします。
第2回目は、SQL Server から IaaS の SQL Server、もしくは、SQL Database への移行を行う際のアセスメント・移行を実施できる Data Migration Assistant を紹介します。
今回は IaaS で立てた SQL Server 2008 R2 を SQL Database にマイグレーションを実施する前段階として、Data Migration Assistant を利用してアセスメントを行ってみました。
(本当はオンプレミス環境として SQL Server 2008 R2 を立てたかったのですが、手頃な環境がなかったので IaaS にしています)
<環境構成>
Data Migration Assistant は SQL Server 系データベースのアップグレード(マイグレーション)や、SQL Server 系データベース間の移行(移行元データベースから移行先データベースにデータを移動)に使用されるツールです。
SQL Server 2014 まで提供されていた「SQL Server アップグレードアドバイザー」というツールの最新バージョンとなります。Data Migration Assistant は大きく分けてアセスメント機能と移行機能を有しています。
アセスメント機能は、環境の分析を行い、移行に伴い変更がある機能や互換性レベル変更の影響の検出と推奨事項・代替方法のガイダンスを行います。また、新環境の推奨情報も確認することができます。(全て英語ですが…。)
現状、対象のデータベースは移行元・移行先ともに、以下のバージョンがサポートされています。
<アセスメント機能の対象バージョン>
移行機能は、アセスメント結果に問題がない場合に、移行元データベースから移行先データベースへの移行を行います。
対象のデータベースはアセスメント機能とほぼ同様ですが、アセスメント機能と異なり SQL Database Managed Instance のみ、移行機能では対応していないのでご注意ください。
<移行機能の対象バージョン>
Data Migration Assistant の移行機能についてもう1点注意事項があります。
移行先のデータベースが SQL Server か SQL Database かによって、Data Migration Assistant を利用した移行の挙動が変わります。
<移行に関する挙動の違い>
それでは、早速 Data Migration Assistant を使ってみましょう。
まずは Data Migration Assistant をダウンロードして、インストールを行います。
【参考:Microsoft ダウンロード センター(Data Migration Assistant)】
https://www.microsoft.com/en-us/download/details.aspx?id=53595
インストールは3ステップで完了します。分岐等もなく、ポチポチっとボタンをクリックすることでインストールができます。
今回の環境では、SQL Server 2008 R2 がインストールされている IaaS 環境にインストールしました。ベストプラクティスには、「SQL Server のホスト コンピューターで直接 Data Migration Assistant を実行しないでください。」とあったのですが、今回は検証用の環境ですので、移行元のデータベースと同じ環境に同居させてみました。
(おそらく、「SQL Server のホスト コンピューター = 本番環境」であることがほとんどであるため、パフォーマンスの問題を考慮してベストプラクティスのような注意事項となっているように思われます。)
【参考:Data Migration Assistant を実行するためのベスト プラクティス】
https://docs.microsoft.com/ja-jp/sql/dma/dma-bestpractices?view=sql-server-2017
インストールが完了したら、まずはアセスメントを実施します。
【参考:Data Migration Assistant で SQL Server の移行評価を実行します。】
https://docs.microsoft.com/ja-jp/sql/dma/dma-assesssqlonprem?view=sql-server-2017
<アセスメント操作の流れ>
Data Migration Assistant を起動し、左側にある「+」をクリックします。
アセスメントプロジェクトを作成します。
以下の内容を入力し、「Create」ボタンをクリックします。
<入力値>
左右にスクロールしてご覧ください。
Project type | 「 Assessment 」を選択。 |
---|---|
Project name | 任意の名前を入力。 |
Source server type | 移行元データベースの DBMS 製品を選択。 |
Target server type | 移行先データベースの DBMS 製品を選択。 |
移行元のデータベースをアセスメントする際、レポートを表示します。SQL Database へ移行する場合、以下のレポートを表示できます。
☑ Check database compatibility(データベースの互換性チェック)
→ 互換性の問題の検出
☑ Check feature parity(機能パリティのチェック)
→ サポートされない機能の検出
今回は両方ともにチェックを付け、「 Next 」ボタンをクリックします。
アセスメントを実施したいデータベースが存在するデータベースサーバー(= 移行元のデータベースサーバー)に接続します。以下の内容を入力し、「Connect」ボタンをクリックします。
※よく分からなくなった場合、SQL Server Management Studio の接続情報を確認して、同じものを入れたら OK です。
<入力値>
左右にスクロールしてご覧ください。
Server name | 移行元データベースのデータベースサーバーを入力。 |
---|---|
Authentication type | 以下のいずれかを選択。
|
Connection properties | <Encrypt connection> 接続情報を暗号化したい場合にチェックを入れる。 (本番環境の場合にはセキュリティの観点からチェックを入れておく方が無難だと思います。) |
<Trust server certificate> サーバー証明書を信頼する場合にチェックを入れる。 |
データベースサーバーに接続できた場合、下図のようにデータベースサーバーにひもづくデータベースが表示されます。そこでアセスメントを実施したいデータベースを選択して「Next」ボタンをクリックします。
これでアセスメントが実施されます。アセスメントに要する時間は、データベースのサイズ等によって異なります。
(今回はデータベース容量が 200MB 程度でしたので、5分程度で終わりました)
アセスメント結果として、「2. アセスメントのオプションを選択」で選択したレポートが表示されます。今回は以下2つとも選択したので、両方出力されています。画面左上のラジオボタンでレポートの切り替えが可能です。
☑ Check database compatibility(データベースの互換性チェック)
→ 互換性の問題の検出
☑ Check feature parity(機能パリティのチェック)
→ サポートされない機能の検出
<データベースの互換性チェック>
今回は、互換性チェックの NG 項目が3種類存在しました。
下図のように、NG 項目の詳細と推奨事項が記載されます。
<機能パリティのチェック>
機能パリティのチェックは互換性ごとに表示されます。
下図のように、バージョンが変わることによる影響の詳細と推奨事項が記載されます。
「Export report」ボタンをクリックすると、アセスメント結果を JSON 形式、または CSV 形式でエクスポートすることも可能です。
アセスメント結果は後で見返すことが可能です。左側にあるアイコン(下図参照)をクリックすると、アセスメントした結果を確認できます。
※ Data Migration Assistant を閉じてしまうと見れなくなります。。。
いかがでしたか?Data Migration Assistant を利用したアセスメントは思ったよりも簡単であったかと思います。
詳細については Microsoft のDocs に記載がありますが、他の Docs と違い機械翻訳となっていますので、少々読みにくい部分があるかもしれません。テキストの上でマウスポインターを動かすと、ポップアップウィンドウに英語のテキストが表示されるので、そちらも合わせて確認することで理解が深まると思います。
【参考:Data Migration Assistant の概要】
https://docs.microsoft.com/ja-jp/sql/dma/dma-overview?view=sql-server-2017
アセスメントだけの実施であれば、移行先のデータベース(本ブログの例としては SQL Database)は不要ですので、SQL Server 系のデータベース間でのデータ移行を行う際には、検討してみてはいかがでしょうか。
次回は Data Migration Assistant のもう一つの機能である、移行機能について紹介いたします。お楽しみに!