データベース移行時のカットオーバーのシミュレーション

01

  1. 既存環境へのトランザクションを停止します。

  2. ここでは、ソース側に発生させている擬似トランザクションを停止(キャンセル)します。

  3. Oracle - handson source database の SQL Editor で実行中のプロシージャをキャンセルします。


02

  1. 最後の差分同期を実行します。

Oracle - handson target database の SQL Editor で以下の SQL を実行します。

call dbms_mview.refresh('ticket_purchase_hist', 'f');

03

  1. ソースとターゲットで ticket_purchase_hist テーブルのデータ件数を確認してみます。

Oracle - handson target database の SQL Editor に以下の SQL を入力して何度か実行してみます。

select
    'Source Database', count(*)
from
    ticket_purchase_hist@source
union all
select
    'Target Database', count(*)
from
    ticket_purchase_hist;

Source Database と Target Database で件数が同数になっていることが確認できます。


04

  1. データの移行はこれで完了していますが、現時点だとターゲットのオブジェクトは Materialized view となっていてテーブルではないため更新ができません。

Oracle - handson target database の SQL Editor に以下の SQL を入力して実行します。

drop materialized view ticket_purchase_hist preserve table;

最後に Materialized view がテーブルに変更されたか Oracle - handson target database の SQL Editor に以下の SQL を入力して実行します。

select table_name
from user_tables
where table_name = 'TICKET_PURCHASE_HIST';