web-dev-qa-db-ja.com

GoldenGateを使用したMySQLからOracleへのテーブルの移行

MySQL 5.7に120 GBのテーブルがあり、Oracle 12cに移行する必要があります。テーブルの初期ロードに Oracle GoldenGate を使用しています。

全テーブルの初期ロードで試してみましたが、完全に消費されましたRAM=で、キャンセルする必要がありました。

1/20の主キー範囲の初期ロードで実行しようとしても番目 一度にテーブルの、しかしそれは abends 特定の時間の後:

エラーOGG-01233送信TCP paramsエラー:TCP/IPエラー110(接続がタイムアウトしました)

これを完了するためのより良いアプローチはありますか?

2
samir sahu

GoldenGateでの私の経験から、データベースのネイティブツールを使用して初期ロードを実行することをお勧めします。この場合、以下を使用します。

SELECT * FROM TABLENAME INTO OUTFILE 'filename';

https://dev.mysql.com/doc/refman/5.7/en/select-into.html

次に、SQL*Loaderを使用してOracleにロードします。

SQLローダーの制御ファイルの例:

$ cat example1.ctl
load data
 infile '/home/ramesh/employee.txt'
 into table employee
 fields terminated by ","
 ( id, name, dept, salary )

例: https://www.thegeekstuff.com/2012/06/Oracle-sqlldr/

ロードを実行するためにデータ変更を停止できない場合は、以下を行う必要があります。

  • 抽出を開始
  • データをエクスポートする
  • データを読み込む
  • HANDLECOLLISIONSを有効にしてレプリカを開始します

レプリケートが追いついたら、HANDLECOLLISIONSを削除します。

いくつかの優れたチュートリアルでは、 https://gavinsoorma.com/category/goldengate/ を使用しました

また、Oracle TechNetフォーラムは、GoldenGateの質問に対応しました。

1
Kevin Bott