MySQL 5.7に120 GBのテーブルがあり、Oracle 12cに移行する必要があります。テーブルの初期ロードに Oracle GoldenGate を使用しています。
全テーブルの初期ロードで試してみましたが、完全に消費されましたRAM=で、キャンセルする必要がありました。
1/20の主キー範囲の初期ロードで実行しようとしても番目 一度にテーブルの、しかしそれは abends 特定の時間の後:
エラーOGG-01233送信TCP paramsエラー:TCP/IPエラー110(接続がタイムアウトしました)
これを完了するためのより良いアプローチはありますか?
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の質問に対応しました。