Slide 38
Slide 38 text
オンライン移行のスイッチオーバ・フェーズのロジックが新しくなった
OCI Database Migration Service
-- Create EVENT_TABLE for GGADMIN user
-- Table EVENT_TABLE is required to handle the switchover during the online migration.
CREATE TABLE GGADMIN.EVENT_TABLE (
event_pk NUMBER,
event_desc VARCHAR2(200),
src_event_date DATE,
trg_received_date DATE,
src_commit_scn NUMBER,
src_commit_timestamp DATE,
session_name VARCHAR2(200),
session_serial# NUMBER,
session_process VARCHAR2(50),
session_program VARCHAR2(90),
current_scn NUMBER,
number_of_open_txn NUMBER,
oldest_open_txn_scn NUMBER
);
CREATE OR REPLACE TRIGGER GGADMIN.TRG_INSERT_EVENT_TABLE
BEFORE INSERT ON GGADMIN.EVENT_TABLE
FOR EACH ROW
DECLARE
v_code NUMBER;
v_errm VARCHAR2(64);
BEGIN
:NEW.src_event_date := SYSDATE;
:NEW.session_name := USER;
SELECT sys_context('USERENV','SID') INTO :NEW.session_serial# FROM dual;
SELECT min(start_scnb) INTO :NEW.oldest_open_txn_scn FROM v$transaction;
SELECT count(*) INTO :NEW.number_of_open_txn FROM v$transaction;
SELECT current_scn INTO :NEW.current_scn FROM v$database;
SELECT process INTO :NEW.session_process FROM v$session a
WHERE a.SID = sys_context('USERENV','SID');
SELECT program INTO :NEW.session_program FROM v$session a
WHERE a.SID = sys_context('USERENV','SID');
EXCEPTION
WHEN OTHERS THEN
v_code := SQLCODE;
v_errm := SUBSTR(SQLERRM, 1, 64);
DBMS_OUTPUT.PUT_LINE('Error on GGADMIN.TRG_INSERT_EVENT_TABLE');
DBMS_OUTPUT.PUT_LINE(v_code || ': ' || v_errm);
RAISE;
END;/
• バリア・トランザクションを実行するためには、
移行前の事前設定でデータベース上にオブジェクトを
作成する必要があります。
• 右記のスクリプトを実行して、整合性管理のために
必要な表(EVENT_TABLE)と
トリガ(TRG_INSERT_EVENT_TABLE)を作成します。
移行前の事前設定については以下をご参考ください:
https://docs.oracle.com/en/cloud/paas/database-migration/dmsus/prepare.html#GUID-
85F9D76F-77DC-4E5F-BFAC-69F858557623
Copyright © 2025, Oracle and/or its affiliates
38