Oracleは、すぐに使用できるアンロードユーティリティを提供していません。
環境に関する包括的な情報(Oracleバージョン?サーバープラットフォーム?データ量?データ型?)がないことを覚えておいてください。ここにあるものはすべてYMMVであり、パフォーマンスとタイミングのためにシステムで試してみることをお勧めします。
私のポイント1〜3は、単なる一般的なデータ移動のアイデアです。ポイント4は、ダウンタイムまたは中断を数分または数秒に短縮する方法です。
1)利用可能なサードパーティのユーティリティがあります。私はこれらのいくつかを使用しましたが、あなたが意図した目的のためにそれらを自分でチェックするのに最適です。いくつかのサードパーティ製品がここにリストされています: OraFaq 。残念ながら、それらの多くはWindowsで実行されるため、DBサーバーがWindows上にあり、サーバー上で直接ロードユーティリティを実行できない限り、データのアンロードプロセスが遅くなります。
2)LOBのような複雑なデータ型がない場合は、SQLPLUSを使用して独自のデータ型を作成できます。一度にテーブルを作成した場合は、簡単に並列化できます。このサイトでトピックに何度もアクセスしたことがあります。例を次に示します。
3)10g以上の場合、外部テーブルがこのタスクを実行するためのパフォーマンスの高い方法である可能性があります。現在のテーブルと同じ構造の空白の外部テーブルをいくつか作成し、それらにデータをコピーすると、データは外部テーブル形式(テキストファイル)に変換されます。もう一度、OraFAQからレスキュー へ 。
4)システムを数日/数週間/数か月間並列に保つ必要がある場合は、変更データのキャプチャ/適用ツールを使用して、ダウンタイムをほぼゼロにします。 $$$を支払う準備をしてください。 OracleREDOログをマイニングしてMySQLデータベースに挿入/更新ステートメントを提供できるGoldenGateSoftwareのツールを使用しました。稼働開始の1週間前に、ダウンタイムなしでデータの大部分を移行できます。次に、稼働期間中にソースデータベースをシャットダウンし、Golden Gateに最後の残りのトランザクションをキャッチさせてから、新しいターゲットデータベースへのアクセスを開きます。私はこれをアップグレードに使用しましたが、キャッチアップ期間はほんの数分でした。私たちはすでにゴールデンゲートのサイトライセンスを持っていたので、それは私たちにとってポケットから何もありませんでした。
そして、ここでCranky DBAの役割を果たし、Oracleのパフォーマンスを向上させることができない場合は、MySQLが特定の問題をどのように修正したかについての記事を見てみたいと思います。 SQLに触れることができないアプリケーションがある場合でも、Oracleを調整する方法はたくさんあります。 / soapbox