SCTのインストール
準備
SCTインストールイメージのダウンロード
AWSのサイトから最新のSchema Conversion Toolをダウンロードしますhttps://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html
JDBCドライバーの準備
ソースDB, ターゲットDB用のJDBCドライバーを準備しておきます
SCTのインストール
JDBCドライバーの配置
ソース, ターゲットの接続に使うJDBCドライバーを配置する
SCTのJDBCドライバーの設定
Settings → Global settingsで指定する
SCTの設定
プロジェクトを作成して設定する。
プロジェクトをオープンした画面
ソースDBの接続
「Add source」を押して設定する
DBを選択
接続情報を入力
接続テスト
設定反映
「connect」を押して保管する。(もう一度確認が発生)
メイン画面で、Sourceのアイコンが接続状態(緑)に変わった。
ターゲットDBの接続
「Add target」を押して設定する
DBを選択
接続情報を入力
接続テスト
設定反映
「connect」を押して保管する。
メイン画面で、Sourceのアイコンが接続状態(緑)に変わった。
移行プロジェクトの設定
スキーマの変換
移行対象のスキーマ上のコンテキストメニュー(右クリック)から、「Convert schema」を選択して、スキーマ変換を開始する
変換が開始される
(2回目以降の実行の場合は、ここで確認が出力されます)
変換終了後、ターゲットDBの対象スキーマを展開して、最新状況「Refresh from database」で変換されたスキーマの存在を確認する
1.amazonaws.com/0/3802444/2167dc53-460a-ba4b-ce33-adfd579e1921.png)
ターゲットDBへの反映
「Apply to database」でターゲットDBに反映する
移行後の確認
SCTのTarget上で反映されたテーブルの存在を実際に確認する。
PSQLやA5SQL等のツールで確認する。
接続ユーザに対する権限付与
変換を行ったユーザ(今回はadminpg)と異なるユーザで利用する場合、利用ユーザに対して、権限の付与が必要。以下はPSQLを使った例。publicと対象スキーマの利用権限を付与する。
psql -h ターゲットDBのアドレス -p 5432 -U adminpg -d pgdb01
GRANT usage ON schema apl,public TO apl
GRANT SELECT,insert,delete,update ON ALL TABLES IN SCHEMA apl TO apl;
GRANT SELECT,insert,delete,update ON ALL TABLES IN SCHEMA public TO apl;
利用ユーザによる確認
psql -h ターゲットDBのアドレス -p 5432 -U apl -d pgdb01
SET search_path TO apl;
\dt
\dtの表示例
リレーション一覧
スキーマ | 名前 | タイプ | 所有者
----------+----------+----------+--------
apl | table080 | テーブル | apl
apl | table101 | テーブル | apl
apl | table102 | テーブル | apl
...
その他
データの移行はAWSのサービスDatabase Migration Serviceを使います。
DMSにもスキーマ変換の機能があり、利用できるが、できることに若干の制限があります。この検証を行った時点(2024/10月)では、テーブルのコメントが反映されないことは確認されてます。