PolarDB-OマイグレーションPart4

作成日:2021-09-23

【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は高い互換性を持ちながら、ユーザーのワークロードに応じて垂直・水平スケーリングすることが出来るため、コストを大幅に削減できることが特徴です。

img

img

img

最初に

この記事 Part4では、ターゲットとなるOracle Database(以降ターゲットDBと省略します)から PolarDB-O へデータベースマイグレーションを行うフェーズとなります。

img

5-8.データベースマイグレーションを実行

5-8-1.スキーマを一時的に除外します

1)データマイグレーション画面で開始ボタンをクリックし、スキーマを一時的に除外します
①データマイグレーション画面でスキーマを一時的に除外します
マイグレーション前にて、Excluded Schemas(スキーマ除外一覧)にオブジェクトがある場合、スキーマを一時的に除外する必要があります。マイグレーション後、再度スキーマを追加(インクルード)することができます。
スキーマを外す理由は、テーブルにスキーマ(TRIGGER and FOREIGN KEY) がある場合、スキーマを除外しないと、データマイグレーションの処理スピードに影響する可能性があります。それだけでなく、マイグレーションタスクにスキーマロジックを理由にエラーが発生するリスクがあるためです。

img

img

img

②スキーマを一時的に除外します

img

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

img

img

img

img

img

2)Oracleのsqlnet.oraファイルを編集します
下記の設定を追加し、設定後、Oracleを再起動します

# cd /data/oracle/11gr2/network/admin/samples
# ls
# vim sqlnet.ora
TCP.VALIDNODE_CHECKING=no

reference link

img

img

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

img

img

4)マイグレーションプロジェクトを作成します
①マイグレーションプロジェクトを作成します

img

②DTSインスタンスを作成します

img

③マイグレーションタスクを設定します

img

④データ収集アカウントとSIDを設定します

img

img

⑤フルマイグレーションを選択し、マイグレーションテーブルを設定します
ここでもしマイグレーションタスクが失敗したら、エラー詳細を確認し、必要に応じて修正対応しつつ再度マイグレーションを実行することができます

img

⑥今回のプロジェクトはDemoなので、TAB_ANYDATAはサポートしていないため、今回は除外します

img

⑦作成ボタンをクリックし、マイグレーションタスクを作成します

img

5-8-3.データマイグレーションを実行します

①DTSコンソール画面でマイグレーションタスクを確認します

img

②タスクを開始します

img

img

img

img

③次へをクリックすると、マイグレーションタスクを実行開始します

img

④マイグレーションが無事成功したので確認します

img

⑤マイグレーション詳細を確認します

img

img

img

5-8-4.スキーマを追加(インクルード)します

①データマイグレーション実行完成したら、ADAMコンソール画面でスキーマを追加(インクルード)します

img

img

img

5-8-5.マイグレーション後テーブルを検証します

1)マイグレーションデータ一致するかをチェックします
①ターゲットデータベースでデータを確認します
ソースデータベーステーブル:

img

ターゲットデータベーステーブル:

img

②マイグレーションしたデータが一致するかをチェックします
ソースデータテーブル、ターゲットデータテーブルとの比較方法は色々ありますが、そこはアプリケーションシナリオや普段の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) AS
SELECT
nancytest.h2z_hana(name) AS kana_HIRAGANA_name
FROM
ignore_case_products
where not regexp_like(name, '^[a-zA-Z0-9]');

img

②Oracle Databaseにはあったregexp_likeがPolarDBには対応されていなかったので、合わせて改修します

CREATE OR REPLACE VIEW NANCYTEST.KANA_HIRAGANA_VIEW(KANA_HIRAGANA_NAME) AS
SELECT
nancytest.h2z_hana(name) AS kana_HIRAGANA_name
FROM
ignore_case_products
where name not SIMILAR to '^[a-zA-Z0-9]';

img

SELECT * FROM NANCYTEST.KANA_HIRAGANA_VIEW;

img

②KANA_FWKATAKANA_VIEWを確認します

CREATE OR REPLACE VIEW NANCYTEST.KANA_FWKATAKANA_VIEW(KANA_FWKATAKANA_NAME) AS
SELECT
nancytest.h2z_kana(name) AS kana_fwkatakana_name
FROM
ignore_case_products
where name not SIMILAR to '^[a-zA-Z0-9]';

img

SELECT * FROM NANCYTEST.KANA_FWKATAKANA_VIEW;

img

③num_en_name_viewを確認します

SELECT * FROM num_en_name_view;

img

最後に

ここまでDTSによるOracle DatabaseからPolarDBへのデータマイグレーションが完了しました。Oracle Databaseにはあって、PolarDBにはない関数とかの改修対応もスムーズに対応できました。
次はPart5 アプリケーションマイグレーションと改修に移りたいと思います。

http://sbcloud.github.io/help/usecase-PolarDB/PolarDB_005_oracle-migration-part5

Hironobu Ohara
この記事を書いた人
Hironobu Ohara
Github Icon
2019年にAlibaba Cloudを担当。Databaseや収集、分散処理、ETL、検索、分析、機械学習基盤の構築、運用等を経て、現在分散系をメインとしたビッグデータとデータベースを得意・専門とするデータエンジニア。 AlibabaCloud MVP。
Close

Alibaba Cloudを始めてみましょう

ソフトバンクは、Alibaba Cloudのアカウント開設から、サービス展開までをお手伝いします。
Hatena