PolarDBの「Prior Evaluation」機能を使ってみた

2024年10月9日

img-alibaba-cloud-linux-migration-blog-20230519-001

皆さんこんにちは。クラウドエンジニアのKangです。

この記事では、PolarDB PostgreSQL版(Oracle互換)(以下PolarDB-Oと呼びます。)の 1.0 からPolarDB-O 2.0 にデータをマイグレーションする方法を紹介します。

PolarDB-O 1.0からPolarDB-O 2.0移行する前に、スムーズに移行できるように、事前に移行元と移行先のデータベースの構造や整合性、互換性などを事前に検証、評価する必要があります。PolarDBには、検証・評価を簡単に実施することができる「Prior Evaluation」サービスがあります。

本記事は、「Prior Evaluation」サービスについて紹介します。

さらに、Alibaba Cloud のDTS移行ツールを利用して、PolarDB-O 1.0からPolarDB-O 2.0のデータマイグレーションを実現します。

目次

はじめに

PolarDB PostgreSQL版 (Oracle互換) 1.0はAlibaba Cloud 社が独自に開発したリレーショナルデータベースデータベースであり、ストレージとコンピューティングの分離アーキテクチャを採用しています。すべてのコンピューティングノードがデータのコピーを共有し、分単位の構成のアップグレード、ダウングレードをサポートします。また、グローバルなデータ一貫性、無料データ バックアップと災害復旧サービスなどを提供しています。

PolarDB PostgreSQL版(Oracle互換)の2.0バージョンでは、企業向けリレーショナルデータベース管理システムとして大幅な性能向上が実現されています。バージョン2.0は、クエリの速度と並行処理能力を高める新しいクエリ最適化アルゴリズムとストレージエンジンを導入し、大量のデータをより迅速に処理できるようになりました。また、JSONデータ型のサポートが改善され、JSONデータの処理とクエリが一層便利になっています。さらに、強化された監視および診断ツールにより、データベースのパフォーマンスをより深く理解し最適化することが可能です。

Alibaba CloudのADAM(Advanced Database & Application Migration)サービスは、データベース移行や運用管理を自動化・効率化するための高度なソリューションです。特に複雑なデータベース環境の移行を支援し、オンプレミスからクラウド環境への移行や、異なるデータベース間の移行を容易にします。本来、PolarDB-O 1.0からPolarDB-O 2.0移行する前に、ADAMツールを利用して、1.0と2.0のデータベースの構造、データ整合性などを事前に分析し、評価して、必要な修正アドバイスなどを提示してもらい、スムーズに移行できるように事前検証するのが一般的な手法です。しかし、残念ながら、ADAMの仕様上、PolarDB-O 間の移行評価には対応していないのが現状です。そこで、本記事はADAMを利用せず、その代わりにPolarDBの「Prior Evaluation」機能を利用して、PolarDB-O 1.0からPolarDB-O 2.0にスムーズなデータ移行を実現する方法を紹介したいと思います。

イメージ図:

pic-01

PolarDBの「Prior Evaluation」機能はデータベースを移行する前に、移行元のDBと移行先のDBの構造を分析し、互換性のないテーブル、ビュー、ファクションなどのオブジェクトを検知できます。さらに上記の互換性のないオブジェクトに対して、修正方法や修正アドバイスを提示し、手動で修正することで、スムーズなデータ移行を実現可能です。

2. 環境準備

2.1 PolarDB-O 1.0の環境について 

今回はすでに持っているPolarDB-O 1.0インスタンスのデータをそのままPolarDB-O 2.0インスタンスに移行したいと思います。

PolarDB-O 1.0インスタンスの構成情報は以下の通りです。

CPU4 core
メモリ16GB
インスタンスタイプCluster エディション
リージョン&ゾーン東京 Zone A

DTSやAlibabaCloudのサービスがPolarDB-O 1.0 インスタンスにアクセスできるようにホワイトリストを一時的に0.0.0.0/0に変更済みです。

PolarDB-O 1.0では、すでに[testdb]というデータベースと[admin_user] というアカウントが作成済みです。

また、以下のSQL文でempテーブルも作成済みです。

Create Table emp (emp_id number(3) primary key,
name varchar2(10 char) not null,
hire_date date not null,
salary number(10) not null,
dept_id number(2) );

empテーブルに以下のサンプルレコードが入っています。

pic-02

2.2 移行先であるPolarDB-O 2.0のインスタンスを作成します

PolarDB-O 2.0:

pic-03

2.3  ホワイトリスト設定を変更

PolarDB-O 1.0 と同様にDTSなどのサービスからアクセスできるように、PolarDB-O 2.0 のホワイトリストを修正します。

pic-04

2.4  ログインアカウントの作成

PolarDB-O 2.0のログインアカウントを作成します。

「admin_user」 というアカウントを作成します。

❊ PolarDB-O 1.0のアカウント名とパスワードとは異なるものを利用しても全然問題ないです。

今回は同じアカウント名とパスワードで作成しています。

pic-05

2.5  PolarDB-O 2.0のデータベースの作成

PolarDB-O 2.0のインスタンスに[test_db20] というデータベースを作成します。

pic-06

3.「Prior Evaluation」機能による移行前の評価

3.1 移行の評価

PolarDBコンソールにログインし、クラスター一覧ページの「Migration/Upgrade Evaluation」ボタンをクリックします。

pic-07

❊「Prior Evaluation」機能はPolarDB-O 1.0の古いアーキテクチャのバージョンのみ利用可能です。

❊  古いアーキテクチャのバージョンを購入するには、Alibaba Cloudコンソールでチケットを起票し、申請する必要があります。

❊  現時点(2024/8/19) 古いアーキテクチャのPolarDB-O 1.0インスタンスは東京リージョンの場合、東京リージョンのZoneAのみ作成することが可能です。

3.2 移行元と移行先のDBを選択

移行元と移行先のデータベースを選択します。

移行元:PolarDB-O 1.0のインスタンスを選択します。

移行先:PolarDB-O 2.0のインスタンスを選択します。

pic-08

3.3  Migration,Evaluationの詳細を確認

Migration,Evaluationのoverviewで、移行元のDBと移行先のDBのテーブルの数、ビューの数、ファクションの数などの詳細情報が表示されます。

pic-09

3.4  必要に応じてオブジェクトを手動で修正

互換性のないオブジェクトが表示されるので、必要に応じて修正します。

pic-10
pic-11

❊上記のドキュメントの記載通り、オラクルのオリジナルオブジェクトであれば、無視可能で、修正不要です。

❊通常、dbms_とpolar_から始まるオブジェクトやownerが[polardb_admin]であるオブジェクトはオラクルのオリジナルオブジェクトとみなされ、修正する必要はありません。

今回の場合、リストの中の6個のオブジェクトはすべてオラクルのオリジナルオブジェクトのため、特に何も修正する必要がありません。

もし、実際の移行環境でオラクルのオリジナルオブジェクト以外に、互換性のないオブジェクトが検出された場合、修正アドバイスを参照した上で、必要に応じて手動で修正してください。

また、上記の記載通り、もしビジネスの構造上、修正できないオブジェクトがあれば、チケットを起票してAlibaba Cloud サポートに連絡すれば、開発チームが対応してくれるそうです。

4. DTSによりデータ移行

4.1 DTSサービスについて

Alibaba CloudのData Transmission Service(DTS)は、データの移行、複製、および同期を行うためのクラウドベースのサービスです。DTSは、異なるデータベース間や同一データベース内でのデータの移動を簡単かつ安全に行えるように設計されています。このサービスは、異種データベース間のリアルタイムなデータレプリケーションや、データのバックアップ、マイグレーションに最適です。さらに、ダウンタイムを最小限に抑え、シームレスなデータ転送を提供することで、業務に支障をきたすことなくシステムのアップグレードやクラウドへの移行が可能です。

4.2 PolarDB-O 2.0インスタンスのパラメータを変更

移行する前、移行先のPolarDB-O 2.0のパラメータを修正します。

ドキュメントの記載通り、移行元と移行先のデータベースのwal_levelパラメータの値を[logical]に変更する必要があります。

pic-12

❊PolarDB-O 1.0のwal_levelパラメータのデフォルトで[logical]になっています。

4.3 Data Synchronizationタスクを作成

DTSコンソールでData SynchronizationメニューからData Synchronization Taskを作成します。

pic-13

4.4 同期元DBと同期先DBの情報を入力

pic-14

4.5 移行対象のオブジェクトを選択

 [test]ボタンを押して、次の画面で、移行対象のオブジェクトを選択します。

pic-15

4.6 移行前のPrecheckを実施

 「次に」のボタンを押して、Precheckを完了させます。

pic-16

4.7 DTSインスタンを作成

同期タスクを実行できるようにDTSインスタンスを購入します。

pic-17

4.8 移行タスクを確認

DTSコンソールでタスクの進捗状況を確認できます。

pic-18

4.9 移行タスクが完了

Full Data Synchronization が同期完了していることを確認します。

pic-19

4.10 データが移行されたかをチェック

PolarDB-O 2.0 のインスタンスにアクセスし、実際にデータが移行されていることを確認します。

pic-20
pic-21

5. さいごに

既存のデータベースが処理能力の限界に達したり、最新技術への対応が難しくなることがあります。そこで、データベースバージョンアップのためのデータマイグレーションやクラウド環境への移行は、スケーラビリティや運用効率の向上を可能にし、コストの最適化にもつながります。

本稿では、PolarDBの「Prior Evaluation」機能を利用して、PolarDB PostgreSQL版(Oracle互換)の 1.0 から 2.0 にデータをマイグレーションする際に、事前に検証、評価した上で、DTSサービスによるデータの移行を行う方法を紹介しました。興味のある方はお試し頂ければ幸いです。

関連サービス

Alibaba Cloud

Alibaba Cloudは中国国内でのクラウド利用はもちろん、日本-中国間のネットワークの不安定さの解消、中国サイバーセキュリティ法への対策など、中国進出に際する課題を解消できるパブリッククラウドサービスです。

MSPサービス

MSP(Managed Service Provider)サービスは、お客さまのパブリッククラウドの導入から運用までをトータルでご提供するマネージドサービスです。

おすすめの記事

条件に該当するページがございません