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に同期する
- Oracleアカウントを使用してECSインスタンスにログインします。
sqlplus ogg/ogg
- 次の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) );
- ソースOracleテーブルが作成されたら、trandataをOGGに追加します。
[Oracleアカウントを使用してECSインスタンスにログインする] cd /odata/ogg_o_12202 [OGGを開始] 。/ggsci ggsci> dblogin userid goldengate、パスワードogg ggsci> trandata users.xqtest15を追加する
注 前のコマンドの末尾にセミコロン (;) を追加しないでください。 それ以外の場合、実行可能なテーブルが一致しない仕様エラーが返されます。 - 次の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';
- 次の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操作の同期
- UPDATE操作の同期
- DELETE操作の同期