みなさまこんにちは。クラウドアーキテクトの卵です。
前回と同様、上京ネタを。。。
東京に来て驚いたことの1つが、「公園に人がいる」ことでした。
地域の公園に子供が遊んでいる率が高いように思われました。特に土日は家族で公園に来ているのも、よく見受けられます。
私の地元では広めの公園があるものの、ほとんど人がいない場合が多かったので、今でもとても新鮮に映ります。
第3回目は、前回 に引き続き Data Migration Assistant を紹介します。
今回は Data Migration Assistant を利用して IaaS で立てた SQL Server 2008 R2 を SQL Database に移行してみました。
(環境準備の都合で IaaS としていますが、オンプレミス環境の移行元 DB の想定です。)
<環境構成(おさらい)>
Data Migration Assistant を使って、実際に移行を実施してみましょう!
Data Migration Assistant のダウンロード、インストールについては前回のブログをご覧ください。
【参考:Data Migration Assistant を使用して Azure SQL Database へのオンプレミスの SQL Server または Azure Vm 上の SQL Server を移行します。】
https://docs.microsoft.com/ja-jp/sql/dma/dma-migrateonpremsqltosqldb?view=sql-server-2017
<移行操作の流れ>
Data Migration Assistant を起動し、左側にある「+」をクリックします。
移行プロジェクトを作成します。
以下の内容を入力し、「 Create 」ボタンをクリックします。
今回はスキーマ移行とデータ移行の両方を実施します。
<入力値>
左右にスクロールしてご覧ください。
Project type | 「 Migration 」を選択。 |
---|---|
Project name | 任意の名前を入力。 |
Source server type | 移行元データベースの DBMS 製品を選択。 |
Target server type | 移行先データベースの DBMS 製品を選択。 |
Migration scope | 以下から1つ選択。
|
移行元のデータベースサーバーに接続します。以下の内容を入力し、「 Connect 」ボタンをクリックします。
※よく分からなくなった場合、SQL Server Management Studio の接続情報を確認して、同じものを入れたら OK です。
<入力値>
左右にスクロールしてご覧ください。
Server name | 移行元データベースのデータベースサーバーを入力。 |
---|---|
Authentication type | 以下のいずれかを選択。
|
Connection properties | <Encrypt connection> 接続情報を暗号化したい場合にチェックを入れる。 (本番環境の場合にはセキュリティの観点からチェックを入れておく方が無難だと思います。) |
<Trust server certificate> サーバー証明書を信頼する場合にチェックを入れる。 |
データベースサーバーに接続できた場合、下図のようにデータベースサーバーにひもづくデータベースが表示されます。そこで移行を実施したいデータベースを選択して「 Next 」ボタンをクリックします。
移行先のデータベースサーバーに接続します。以下の内容を入力し、「 Connect 」ボタンをクリックします。
※移行元データベースと同様、よく分からなくなった場合、SQL Server Management Studio の接続情報を確認して、同じものを入れたら OK です。
<入力値>
左右にスクロールしてご覧ください。
Server name | 移行先データベースのデータベースサーバーを入力。 |
---|---|
Authentication type | 以下のいずれかを選択。
|
Connection properties | <Encrypt connection> 接続情報を暗号化したい場合にチェックを入れる。 (本番環境の場合にはセキュリティの観点からチェックを入れておく方が無難だと思います。) |
<Trust server certificate> サーバー証明書を信頼する場合にチェックを入れる。 |
データベースサーバーに接続できた場合、下図のようにデータベースサーバーにひもづくデータベースが表示されます。そこで移行先のデータベースを選択して「 Next 」ボタンをクリックします。
移行元データベースのスキーマ情報を確認し、スキーマ移行スクリプトを作成後、移行先データベースに対しスクリプト実行します。
移行元データベースから移行したいデータベース オブジェクトを選択して「 Generate SQL script 」ボタンをクリックします。
<選択可能なデータベース オブジェクト>
「 Generate SQL script 」ボタンをクリックした後、移行元データベースに対し、選択したオブジェクトが移行先データベースに適用可能であるかどうかのアセスメントを行います。
そのままでは移行できない場合、下図のように警告等が表示されます。警告が出ているオブジェクトを選択すると、右側に詳細事項が表示されます。適宜修正し、問題がなければ再度「 Generate SQL script 」ボタンをクリックします。
「 Generate SQL script 」ボタンをクリックすると、選択したオブジェクト移行用のスクリプトが自動生成されます。オブジェクト移行用の「 Deploy schema 」ボタンをクリックすると、移行先データベースに対しスクリプトが実行されます。
スクリプトの実行結果は右側に表示されます。
「4. スキーマ移行」の実行結果に問題がない場合、右下にある「 Generate SQL script 」ボタンをクリックすると、データ移行を実施することができます。
データ移行を行いたいテーブルにチェックを入れ、右下にある「 Start data migration 」ボタンをクリックすると、データ移行が実施されます。
テーブルごとに移行状況が表示されます。データ移行にかかったトータルの時間は右下に表示されます。
SQL Server Management Studio で移行先データベースにつないでみると、無事移行されていることが分かります。
いかがでしたか?アセスメントに続き、Data Migration Assistant を利用した移行についても簡単に実施できることがお分かりいただけたかと思います。
詳細については Microsoft の Docs に記載がありますが、他の Docs と違い機械翻訳となっていますので、少々読みにくい部分があるかもしれません。テキストの上でマウス ポインターを動かすと、ポップアップ ウィンドウに英語のテキストが表示されるので、そちらも合わせて確認することで理解が深まると思います。
【参考:Data Migration Assistant の概要】
https://docs.microsoft.com/ja-jp/sql/dma/dma-overview?view=sql-server-2017
SQL Server 系のデータベース間でのデータ移行を行う際には、検討してみてはいかがでしょうか。工数の削減にもつながると思います。