みなさまこんにちは。クラウドアーキテクトの卵です。
(前回から、ちょっと期間が開いてしまいました。。。)
みなさまは「子供の頃の夢」を覚えていますか?
私の子供の頃の夢は、弁護士になることでした。きっかけは全然何てことないことで、学校の先生に「お前は口が立つから、弁護士になったらどうだ?給料も高いぞ!」と言われたから、というものでした。
いろいろあって、現在ではクラウドアーキテクトという全然違う職に就いていますが、それなりに楽しくやっています。
部屋の片づけをしていた際にひょっこり出てきた卒業アルバムを見て、ぼんやりそんなことを思った休日の午後の 1 コマでした。
第 4 回目は、SQL Server 系以外のデータベース(Oracle、MySQL、PostgreSQL、等)から IaaS の SQL Server、もしくは、SQL Database への移行を行う際のアセスメント・移行を実施できる SQL Server Migration Assistant を紹介します。
今回は IaaS で立てた Oracle 11g を SQL Database にマイグレーションを実施する前段階として、SQL Server Migration Assistant を利用してアセスメントを行ってみました。
(本当はオンプレミス環境として Oracle 11g を立てたかったのですが、手頃な環境がなかったので IaaS にしています。)
<環境構成>
SQL Server Migration Assistant は SQL Server 系以外のデータベースと SQL Server 系データベース間のマイグレーションや移行に使用されるツールです。第 2 回、第 3 回で紹介した Data Migration Assistant が SQL Server 系データベース間を対象としたツールなので、SQL Server Migration Assistant はその兄弟版だと思っていただけたら分かりやすいかと思います。
SQL Server Migration Assistant も Data Migration Assistant と同様、大きく分けてアセスメント機能と移行機能を有しています。
アセスメント機能は、環境の分析を行い、移行に伴い変更がある機能や互換性レベル変更の影響の検出と推奨事項・代替方法のガイダンスを行います。また、新環境の推奨情報も確認することができます。(全て英語ですが…。)
移行機能は、アセスメント結果に問題がない場合に、移行元データベースから移行先データベースへの移行を行います。
現状、対象のデータベースは移行元・移行先ともに、以下のバージョンがサポートされています。
<対象バージョン>
それでは、早速 SQL Server Migration Assistant を使ってみましょう。
まずは SQL Server Migration Assistant をダウンロードして、インストールを行います。移行元のデータベースごとにインストーラーが分かれているので注意してください。
今回は Oracle 版をインストールします。
【参考:Microsoft ダウンロード センター(Microsoft SQL Server Migration Assistant 8.1 for Oracle)】
https://www.microsoft.com/en-us/download/details.aspx?id=54258
インストールは 4 ステップほどで完了します。セットアップのタイプを選ぶ部分があるのですが、今回は Docs に従って「Typical」(標準)を選択してインストールしました。
【参考:SSMA for Oracle クライアントのインストール (OracleToSQL)】
https://docs.microsoft.com/ja-jp/sql/ssma/oracle/installing-ssma-for-oracle-client-oracletosql?view=sql-server-2017
インストールが完了したら、まずはアセスメントを実施します。
【参考:SQL Server Migration Assistant を使った Linux 上の SQL Server 2017 への Oracle スキーマを移行します。】
https://docs.microsoft.com/ja-jp/sql/ssma/oracle/sql-server-linux-convert-from-oracle?view=sql-server-2017
<アセスメント操作の流れ>
SQL Server Migration Assistant を起動し、「New Project」をクリックします。
プロジェクトを作成します。
以下の内容を入力し、「OK」ボタンをクリックします。
<入力値>
左右にスクロールしてご覧ください。
Name | 任意のプロジェクト名を入力。 |
---|---|
Location | プロジェクトファイルの保存場所を入力。 ※SSMA プロジェクト(.o2ssproj)形式で保存されます。 |
Migrat To | 移行先データベースの DBMS 製品を選択。 |
アセスメントを実施したいデータベースが存在するデータベースサーバー(= 移行元のデータベースサーバー)に接続します。画面上部の「Connect to Oracle」をクリックし、以下の内容を入力後、「Connect」ボタンをクリックします。
※よく分からなくなった場合、Oracle SQL Developer 等の接続情報を確認して、同じものを入れたら OK です。
<入力値>
左右にスクロールしてご覧ください。
Provider | 以下のいずれかを選択。
|
---|---|
Mode | 以下のいずれかを選択。
|
以下、Mode を Standard mode にした場合の入力値 |
---|
Server name | Oracle がインストールされているサーバー名を記載。 |
---|---|
Server port | Oracle のポートを記載。 |
Oracle SID | Oracle の SID を記載。 |
User name | Oracle に接続するユーザー名を記載。 |
Password | ユーザー名にひもづくパスワードを記載。 |
接続が成功した場合、指定したデータベースのスキーマ一覧が表示されます。アセスメントを行いたいスキーマにチェックをつけて「OK」ボタンをクリックします。
※スキーマ内のデータ量によって、表示に時間がかかります。
「②アセスメントを実施したいデータベースの指定」で読み込んだスキーマを選択し、「Create Report」をクリックします。
※スキーマを選択して、右クリック → 「Create Report」でも OK です。
※SYS、SYSTEM スキーマを選択しても、レポートを生成することはできません。
選択したスキーマのレポートが表示されます。移行可能であるかどうかは、オブジェクトごとにパーセンテージで表示しています。
画面下部にエラー数、警告数が表示され、詳細を確認できます。
いかがでしたか? Data Migration Assistant と同様、SQL Server Migration Assistant を利用したアセスメントも簡単であったかと思います。
詳細については Microsoft の Docs に記載がありますが、他の Docs と違い機械翻訳となっていますので、少々読みにくい部分があるかもしれません。テキストの上でマウス ポインターを動かすと、ポップアップ ウィンドウに英語のテキストが表示されるので、そちらも合わせて確認することで理解が深まると思います。
【参考:SQL Server Migration Assistant 】
https://docs.microsoft.com/ja-jp/sql/ssma/sql-server-migration-assistant?view=sql-server-2017
アセスメントだけの実施であれば、Data Migration Assistant と同様、移行先のデータベース(本ブログの例としては SQL Database)は不要です。移行前のリスクを洗い出すのに最適ではないでしょうか。
次回は SQL Server Migration Assistant のもう一つの機能である、移行機能について紹介いたします。お楽しみに!