Oracle GoldenGate (OGG) を使用して、OracleデータをAnalyticDB for MySQLに同期できます。

OGGデータ型とAnalyticDB for MySQLの互換性

Source 目的地 同期操作
Oracle MySQL AnalyticDB for MySQL INSERT UPDATE DELETE
番号 (3) BOOLまたはTINYINT (1) BOOLEAN 対応 対応 対応
番号 (3) TINYINT TINYINT 対応 対応 対応
番号 (5) SMALLINT SMALLINT 対応 対応 対応
番号 (10) INT INTまたはINTEGER 対応 対応 対応
番号 (19) BIGINT BIGINT 対応 対応 対応
フロート (24) FLOAT FLOAT 対応 対応 対応
フロート (24) DOUBLE DOUBLE 対応 対応 対応
フロート (24) DECIAML DECIMAL 対応 対応 対応
VARCHAR2(128) CHAR VARCHAR(128) 対応 対応 対応
VARCHAR2(2000) VARCHAR(255) VARCHAR(255) 対応 対応 対応
VARCHAR2(4000) TEXT VARCHAR(65535) 対応 対応 対応
DATE DATE DATE 対応 対応 対応
DATE 時間 時間 N/A N/A N/A
DATE DATETIME DATETIME 対応 対応 対応
DATE TIMESTAMP TIMESTAMP 対応 対応 対応

OGGを使用してOracleデータをAnalyticDB for MySQLに同期する

  1. Oracleアカウントを使用してECSインスタンスにログインします。
    sqlplus ogg/ogg
  2. 次のSQL文を実行して、Oracleでソース・テーブルを作成します。
    ドロップテーブルusers.xqtest15;
    テーブルusersを作成します。xqtest15 (
      c1番号 (10) 、 
      c2番号 (1) 、 
      c3ナンバー (3) 、 
      c4番号 (5) 、 
      c5番号 (19) 、 
      c6フロート (24) 、 
      c7フロート (24) 、 
      c8フロート (24) 、 
      c9 char(1) 、
      c10 varchar2(2000),
      c11 varchar2(4000),
      c12日付、
      c13日付、
      c14日付、
      c15日付、
      主キー (c1)
    );
  3. ソースOracleテーブルが作成されたら、trandataをOGGに追加します。
    [Oracleアカウントを使用してECSインスタンスにログインする] cd /odata/ogg_o_12202
    [OGGを開始] 。/ggsci
    ggsci> dblogin userid goldengate、パスワードogg
    ggsci> trandata users.xqtest15を追加する
    前のコマンドの末尾にセミコロン (;) を追加しないでください。 それ以外の場合、実行可能なテーブルが一致しない仕様エラーが返されます。
  4. 次のSQL文を実行して、MySQLにテーブルを作成し、ソースOracleテーブルのメタデータを格納します。
    -- ckpt1220テーブル
    テーブル 'ckpt1220' の作成 (
      'group_name' varchar(8) NOT NULL,
      'group_key' 10進数 (19,0) NOT NULL、
      'seqno' decimal(10,0) DEFAULT NULL、
      'rba 'decimal(19,0) NOT NULL、
      'audit_s'varchar (29) DEFAULT NULL、
      'create_s'datetime NOT NULL,
      'last_update_ts 'datetime NOT NULL、
      'current_dir' varchar(255) NOT NULL、
      'log_bsn' varchar(128) DEFAULT NULL、
      'log_csn' varchar(128) DEFAULT NULL、
      'log_xid' varchar(128) DEFAULT NULL、
      'log_cmplt_csn 'varchar(128) DEFAULT NULL、
      'log_cmplt_xids 'varchar(2000) DEFAULT NULL、
      'version' decimal(3,0) DEFAULT NULL、
      PRIMARY KEY ('group_name','group_key')
    ) ハッシュによる分配 ('group_key') INDEX_ALL='Y';
    -- ckpt1220_loxテーブル
    作成テーブル 'ckpt1220_lox' (
      'group_name' varchar(8) NOT NULL,
      'group_key' 10進数 (19,0) NOT NULL、
      'log_cmplt_csn 'varchar(128) NOT NULL、
      'log_cmplt_xids_seq '小数 (5,0) NOT NULL、
      'log_cmplt_xids 'varchar(2000) NOT NULL、
      PRIMARYキー ('group_name','group_key','log_cmplt_csn ','log_cmplt_xids_seq')
    ) ハッシュによる分配 ('group_key') INDEX_ALL='Y';
  5. 次のSQL文を実行して、Oracleから同期されたデータを格納するためのターゲットテーブルをAnalyticDB for MySQLに作成します。
    テーブル 'xqtest15' を作成する ()
     'c1' int、
     'c2' ブール、
     'c3 'tinyint、
     'c4' smallint、
     'c5' ビギント、
     'c6' フロート、
     'c7' ダブル、
     'c8' 10進数 (24,0) 、
     'c9' varchar(128) 、
     'c10' varchar(255) 、
     'c11' varchar(65535) 、
     'c12' 日付、
     'c13' 時間、
     'c14' datetime,
     'c15' タイムスタンプ、
     主キー (c1)
    ) ハッシュによる分布 ('c1') INDEX_ALL='Y'

付録

  • INSERT操作の同期insert
  • UPDATE操作の同期update
  • DELETE操作の同期delete