【PolarDBマイグレーションシリーズ】Oracle DatabaseからPolarDB-Oマイグレーション-Part4 データベースマイグレーション実行
【PolarDBマイグレーションシリーズ】Oracle DatabaseからPolarDB-Oマイグレーション-Part4 データベースマイグレーション実行
はじめに
本記事では、Oracle DatabaseからPolarDB-Oマイグレーション-Part4 データベースマイグレーション実行 についてを紹介します。
こちら長文になるので、全部でPart5に分けて紹介します。
Part1 OracleDatabaseセットアップ、事前準備
Part2 Oracle Database評価
Part3 データベースマイグレーション準備
Part4 データベースマイグレーション実行←本記事です
Part5 アプリケーションマイグレーションと改修
PolarDBとは
PolarDBはAlibaba Cloudが開発したCloud Native Databaseサービスです。MySQL・PostgreSQLは100%、Oracleは高い互換性を持ちながら、ユーザーのワークロードに応じて垂直・水平スケーリングすることが出来るため、コストを大幅に削減できることが特徴です。
最初に
この記事 Part4では、ターゲットとなるOracle Database(以降ターゲットDBと省略します)から PolarDB-O へデータベースマイグレーションを行うフェーズとなります。
5-8.データベースマイグレーションを実行
5-8-1.スキーマを一時的に除外します
1)データマイグレーション画面で開始ボタンをクリックし、スキーマを一時的に除外します
①データマイグレーション画面でスキーマを一時的に除外します
マイグレーション前にて、Excluded Schemas(スキーマ除外一覧)にオブジェクトがある場合、スキーマを一時的に除外する必要があります。マイグレーション後、再度スキーマを追加(インクルード)することができます。
スキーマを外す理由は、テーブルにスキーマ(TRIGGER and FOREIGN KEY) がある場合、スキーマを除外しないと、データマイグレーションの処理スピードに影響する可能性があります。それだけでなく、マイグレーションタスクにスキーマロジックを理由にエラーが発生するリスクがあるためです。
②スキーマを一時的に除外します
5-8-2.マイグレーションプロジェクトを作成します
1)ソースデータベースとターゲットデータベースでホワイトリストを追加します
①ソースデータベースOracleのECSセキュリティグループにてDTSホワイトリストを追加します
47.91.9.0/24,47.91.13.0/24,47.91.27.0/24,47.245.18.0/24,47.245.51.0/24,47.91.0.192/26,47.91.0.128/26,47.245.51.128/26,47.245.51.192/26,47.91.0.128/26,47.91.0.192/26,147.139.23.0/26,147.139.23.128/26,147.139.23.64/26,149.129.165.192/26
2)Oracleのsqlnet.oraファイルを編集します
下記の設定を追加し、設定後、Oracleを再起動します
# cd /data/oracle/11gr2/network/admin/samples# ls# vim sqlnet.oraTCP.VALIDNODE_CHECKING=no
3)ターゲットデータベースにDTSホワイトリストを追加します
47.91.9.0/24,47.91.13.0/24,47.91.27.0/24,47.245.18.0/24,47.245.51.0/24,47.91.0.192/26,47.91.0.128/26,47.245.51.128/26,47.245.51.192/26,47.91.0.128/26,47.91.0.192/26,147.139.23.0/26,147.139.23.128/26,147.139.23.64/26,149.129.165.192/26
4)マイグレーションプロジェクトを作成します
①マイグレーションプロジェクトを作成します
②DTSインスタンスを作成します
③マイグレーションタスクを設定します
④データ収集アカウントとSIDを設定します
⑤フルマイグレーションを選択し、マイグレーションテーブルを設定します
ここでもしマイグレーションタスクが失敗したら、エラー詳細を確認し、必要に応じて修正対応しつつ再度マイグレーションを実行することができます
⑥今回のプロジェクトはDemoなので、TAB_ANYDATAはサポートしていないため、今回は除外します
⑦作成ボタンをクリックし、マイグレーションタスクを作成します
5-8-3.データマイグレーションを実行します
①DTSコンソール画面でマイグレーションタスクを確認します
②タスクを開始します
③次へをクリックすると、マイグレーションタスクを実行開始します
④マイグレーションが無事成功したので確認します
⑤マイグレーション詳細を確認します
5-8-4.スキーマを追加(インクルード)します
①データマイグレーション実行完成したら、ADAMコンソール画面でスキーマを追加(インクルード)します
5-8-5.マイグレーション後テーブルを検証します
1)マイグレーションデータ一致するかをチェックします
①ターゲットデータベースでデータを確認します
ソースデータベーステーブル:
ターゲットデータベーステーブル:
②マイグレーションしたデータが一致するかをチェックします
ソースデータテーブル、ターゲットデータテーブルとの比較方法は色々ありますが、そこはアプリケーションシナリオや普段のSQLクエリなどを使って確認します。
或いは、Alibaba Cloud Ticket Center へチケットをあげて、サポートチームにデータが一致するかの確認を依頼することもできます。
注意として、サポートチームでのチェックはIndexが張ってないテーブルだと最大で1000行までのチェックとなります。もし10000行を超えるとサポートチームのチェックシステム側によるチェックができなくなります。
5-8-6.マイグレーション後ビューを検証します
1)改修後のビューをチェックします
①KANA_HIRAGANA_VIEWを確認します
CREATE OR REPLACE VIEW NANCYTEST.KANA_HIRAGANA_VIEW(KANA_HIRAGANA_NAME) ASSELECTnancytest.h2z_hana(name) AS kana_HIRAGANA_nameFROMignore_case_productswhere not regexp_like(name, '^[a-zA-Z0-9]');
②Oracle Databaseにはあったregexp_likeがPolarDBには対応されていなかったので、合わせて改修します
CREATE OR REPLACE VIEW NANCYTEST.KANA_HIRAGANA_VIEW(KANA_HIRAGANA_NAME) ASSELECTnancytest.h2z_hana(name) AS kana_HIRAGANA_nameFROMignore_case_productswhere name not SIMILAR to '^[a-zA-Z0-9]';
SELECT * FROM NANCYTEST.KANA_HIRAGANA_VIEW;
②KANA_FWKATAKANA_VIEWを確認します
CREATE OR REPLACE VIEW NANCYTEST.KANA_FWKATAKANA_VIEW(KANA_FWKATAKANA_NAME) ASSELECTnancytest.h2z_kana(name) AS kana_fwkatakana_nameFROMignore_case_productswhere name not SIMILAR to '^[a-zA-Z0-9]';
SELECT * FROM NANCYTEST.KANA_FWKATAKANA_VIEW;
③num_en_name_viewを確認します
SELECT * FROM num_en_name_view;
最後に
ここまでDTSによるOracle DatabaseからPolarDBへのデータマイグレーションが完了しました。Oracle Databaseにはあって、PolarDBにはない関数とかの改修対応もスムーズに対応できました。
次はPart5 アプリケーションマイグレーションと改修に移りたいと思います。
http://sbopsv.github.io/cloud-tech/usecase-PolarDB/PolarDB_005_oracle-migration-part5