この章では、Oracle GoldenGateをサポートするシステムおよびデータベース・リソースの要件について説明します。内容は次のとおりです。
サポートされているハードウェアまたはソフトウェア構成で製品をインストールしていることを確認します。詳細は、「Oracle Fusion Middleware Supported System Configurations」ページのリリースの動作保証に関するドキュメントを参照してください。
Oracleでは、動作保証済のすべてのシステムおよび環境で製品のパフォーマンスをテストおよび検証しており、新しい動作保証情報が発表された場合は、適切な動作保証ドキュメントにすぐに追加されます。新しい動作保証情報は常に発生する可能性があるため、動作保証ドキュメントはドキュメント・ライブラリの外部に保持され、Oracle Technology Networkで利用できます。
この項では、MySQLのオペレーティング・システムの要件について説明します。これらの要件は、次のいずれかのカテゴリに分類されます。
Oracle GoldenGateに必要なメモリーの量は、処理されるデータの量、実行されるOracle GoldenGateプロセスの数、Oracle GoldenGateで使用可能なRAMの量、およびオペレーティング・システムでRAMを開放する必要がある場合(通常はロー・ウォーターマークに達した場合)にRAMのページを一時的に格納するためにOracle GoldenGateで使用可能なディスク領域の量に応じて異なります。このRAMからディスクへの一時的な格納は、一般にスワッピングまたはページングと呼ばれます(以後スワッピングと呼びます)。プラットフォームによっては、スワップ領域という用語は、スワップ・パーティション、スワップ・ファイル、ページ・ファイル(Windows)または共有メモリー・セグメント(IBM iプラットフォーム)と呼ばれます。
最近のサーバーには、Oracle GoldenGateを実行するのに十分なRAMとスワップ領域、メモリー管理システムが備わっています。ただし、Oracle GoldenGateで使用できるRAMの量を増やすと、Oracle GoldenGateのパフォーマンスおよびシステム全般のパフォーマンスが大幅に向上する場合があります。
通常のOracle GoldenGateインストールでは、RAMページからディスクへのスワッピングが過度に発生しないよう数GBのRAMが指定されます。RAMの競合が多いほど、多くのスワップ領域が使用されます。
ディスクへのスワッピングが過度に発生する場合、コミット・レコードを受信するまで各オープン・トランザクションのデータを格納する必要があるため、特にExtractプロセスにパフォーマンスの問題が生じます。Oracle GoldenGateがデータベースと同じシステムで稼働する場合、使用可能なRAMの量は、両方のパフォーマンスにとって非常に重要になります。
RAMとスワップの使用量は、Oracle GoldenGateプロセスではなく、オペレーティング・システムによって制御されます。Oracle GoldenGateキャッシュ・マネージャは、オペレーティング・システムのメモリー管理機能を利用して、Oracle GoldenGateプロセスを持続的かつ効率的に機能させます。ほとんどの場合、ユーザーは、デフォルトのOracle GoldenGateメモリー管理構成を変更する必要はありません。
Oracle GoldenGateのメモリー要件を求めるには、Oracle GoldenGate Windows and UNIXリファレンスのCACHEMGRパラメータの項を参照してください。
次の説明に従って、ディスク空き領域を割り当てます。
Oracle GoldenGateダウンロード・ファイルのサイズを確認するには、選択したビルドをOracle Software Delivery Cloudからダウンロードする前に「Size」列を確認します。表示される値は、圧縮形式のファイルのサイズです。ディスク上に展開したOracle GoldenGateインストール・ディレクトリのサイズは非常に大きくなります。詳細は、2.2項「Oracle GoldenGateディストリビューションの理解と入手」を参照してください。
Oracle GoldenGateをクラスタ環境にインストールするには、すべてのクラスタ・ノードで使用可能な共有ファイル・システムにOracle GoldenGateのバイナリとファイルをOracleユーザーとしてインストールします。詳細は、2.4項「クラスタ内にOracle GoldenGateをインストールする準備」を参照してください。
Oracle GoldenGate証跡(作業用データが含まれているファイル)をホストするシステムに追加で1GBのディスク領域を割り当てます。証跡によって消費される領域は処理されるデータ量に応じて異なるため、これとは多少異なる容量が必要となる場合があります。Oracle GoldenGate Windows and UNIXの管理で証跡のサイズ設定のガイドラインを参照してください。
デフォルトでは、Oracle GoldenGateによってOracle GoldenGateインストール・ディレクトリのdirtmp
サブディレクトリにディスクにスワップされるデータが保持されます。キャッシュ・マネージャは、ファイル・システムのすべての空き容量を使用可能とみなします。トランザクション・ボリュームとトランザクション・サイズが大きい場合、このディレクトリはすぐに一杯になります。I/Oの競合とディスクに関連するExtractの障害が起こらないようにするには、ディスクをこのディレクトリ専用にします。CACHEMGR
パラメータのCACHEDIRECTORY
オプションを使用して、このディレクトリに名前とサイズを割り当てることができます。CACHEMGR
のCACHESIZE
オプションにより、トランザクション・データのキャッシュに使用できる仮想メモリー量(キャッシュ・サイズ)の弱い制限が設定されます。これらのオプションのデフォルト値およびシステム調整が必要な場合の詳しい説明については、Oracle GoldenGate Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
次の説明に従って、ネットワークを構成します。
DNSを含むTCP/IPサービスを使用するようにシステムを構成します。Oracle GoldenGateはIPv4とIPv6をサポートし、これらのプロトコルのいずれか、または両方がサポートされるシステムで稼働します。
Oracle GoldenGateプロセスをホストし、Oracle GoldenGateが接続するすべてのシステムのホスト名またはIPアドレスでネットワークを構成します。ホスト名の方が容易に使用できます。
Oracle GoldenGateでは、予約されていない制限なしのTCP/IPポートが必要とされ、必要な数は、構成内のプロセスの数とタイプによって異なります。必要なポートに対応するようManagerプロセスを構成する方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。
Oracle GoldenGateに割り当てたポートを記録しておきます。Managerプロセスを構成する際にパラメータでそれらのポートを指定します。
Oracle GoldenGateのポートを介して接続を受け入れるようにファイアウォールを構成します。
次の説明に従って権限を割り当てます。
Windows上にインストールするには、Oracle GoldenGateをインストールするユーザーが管理者としてログインする必要があります。
UNIXにインストールする場合、Oracle GoldenGateをインストールするユーザーには、Oracle GoldenGateインストール・ディレクトリに対する読取り権限および書込み権限が必要です。
Oracle GoldenGate Extract、ReplicatおよびManagerプロセスは、Oracle GoldenGateディレクトリのファイルおよびサブディレクトリに対して、読取り権限、書込み権限および削除権限を持つオペレーティング・システム・ユーザーとして動作する必要があります。さらに、Managerプロセスには、他のOracle GoldenGateプロセスを制御する権限が必要です。
Extract、ReplicatおよびManagerの各オペレーティング・システム・ユーザーをOracle GoldenGate専用とします。Oracle GoldenGateプロセスを実行するユーザーは機密情報にアクセスできる可能性があります。
オペレーティング・システムとコマンド・コンソールのキャラクタ・セットが同じである必要があります。オペレーティング・システムではあるキャラクタ・セットが設定され、DOSコマンド・プロンプトでは別の古いDOSキャラクタ・セットを使用するMicrosoft Windowsシステムでは不一致が起こります。Oracle GoldenGateでは、オペレテーィング・システムのキャラクタ・セットを使用してGGSCIコマンド出力に情報を送信するため、コンソールのキャラクタ・セットの不一致が原因で文字が正しく表示されません。次のDOSコマンドを使用して、GGSCIセッションを開く前にコンソールのキャラクタ・セットを設定できます。
chcp OS_character_set
コード・ページの設定後、文字が正しく表示されない場合、拡張キャラクタ・セットを持つLucida Consoleにコンソール・フォントを変更してみます。
Oracle GoldenGateをWindowsシステムにインストールする前に、Microsoft Visual C ++ 2010 SP1再頒布可能パッケージをインストールおよび構成します。このパッケージのSP1バージョンであることを確認し、使用するサーバーに適合するビット・バージョンであることを確認してください。このパッケージでは、Visual C++ライブラリのランタイム・コンポーネントがインストールされます。このパッケージの詳細およびダウンロードは、http://www.microsoft.com">>http://www.microsoft.com
にアクセスしてください。
Oracle GoldenGateは、すべてのプラットフォームの仮想化ソフトウェアで作成された仮想マシン環境を完全サポートします。仮想マシン環境にOracle GoldenGateをインストールする場合、ホスト・システムではなく仮想マシンのデータベースおよびオペレーティング・システムに適合するビルドを選択します。
この項では、MySQLデータベースの要件について説明します。これらの要件は、次のいずれかのカテゴリに分類されます。
Oracle GoldenGate for MySQLのこのリリースでは、MySQL Enterprise EditionおよびCommunity Editionの両方をサポートします。
MySQLには、ユーザーが異なるレベルで異なるキャラクタ・セットを指定できる機能があります。
レベル | 例 |
---|---|
データベース |
create database test charset utf8; |
表 |
create table test( id int, name char(100)) charset utf8; |
列 |
create table test ( id int, name1 char(100) charset gbk, name2 char(100) charset utf8)); |
これらのすべての異なるレベルでまったく異なるキャラクタ・セットを指定することが可能ですが、ソース(あるキャラクタ・セット)からターゲット(別のキャラクタ・セット)へのデータ変換については、データベース・レベルのキャラクタ・セットのみがOracle GoldenGateで現在サポートされています。
サポートの制限
データベースのキャラクタ・セットをutf8mb4/utf8に指定すると、デフォルトの照合はutf8mb4_unicode_ci
/utf8_general_ci
になります。collation_server=utf8mb4_bin
を指定すると、データベースはデータをバイナリとして解釈します。たとえば、CHAR
列の長さを4に指定した場合、4バイトを超えるデータを挿入しようとすると、データが長すぎることがターゲット・データベースから警告されますが、返されるバイト長は16 (utf8mb4の場合)になります。これはデータベースの制限のため、Oracle GoldenGateではバイナリ照合をサポートしていません。この問題を解決するには、キャラクタ・セットがutf8mb4およびcollation_server=utf8_bin
(utf8)に設定されている場合に、collation_server=utf8mb4_bin
を指定します。
データベース・ストレージ・エンジンの要件は次のとおりです。
Oracle GoldenGateでは、ソースMySQLデータベース用にInnoDBストレージ・エンジンがサポートされます。
ターゲットMySQLデータベースでは、Oracle GoldenGate ReplicatプロセスはMySQLネイティブAPIを介してデータベースに接続します。
NDBクラスタ・エンジンはサポートされています。
Oracle GoldenGateプロセスのデータベース・ユーザーの要件は次のとおりです。
Oracle GoldenGate専用のデータベース・ユーザーを作成します。データベースに接続する必要のあるすべてのOracle GoldenGateプロセスに対して同じユーザーでもかまいません。
Extract(ソース・データベース)
Replicat(ターゲット・データベース)
DEFGEN
(ソースまたはターゲット・データベース)
データの安全性確保と、Oracle GoldenGateの処理の的確な監視のため、他のユーザー、アプリケーション、プロセスには、Oracle GoldenGateデータベース・ユーザーとしてのログオンまたは操作を許可しないでください。
データベース・ユーザーを記録します。それらをOracle GoldenGateパラメータ・ファイルのUSERID
パラメータを使用して指定する必要があります。
Oracle GoldenGateユーザーは、INFORMATION_SCHEMA
データベースに読取りアクセスできる必要があります。
Oracle GoldenGateユーザーには、次の権限が必要です。
表1-1 Oracle GoldenGateデータベース・ユーザーのMySQLに対する権限
権限 | Extract | Replicat |
---|---|---|
ターゲット表の |
X |
|
|
X脚注 1 |
|
|
X脚注 2 |
|
または
|
X |
X |
脚注 1 チェックポイント表機能を使用する場合(推奨)
脚注 2 ストアド・プロシージャを実行する場合
バイナリ・ログ・イベントをキャプチャするためには、管理者がExtractユーザーに次の権限を指定する必要があります。
MySQL構成ファイル(my.cnf
)があるディレクトリの読取り権限と実行権限
MySQL構成ファイル(my.cnf
)の読取り権限
バイナリ・ログがあるディレクトリの読取り権限と実行権限
tmp
ディレクトリの読取り権限と実行権限
MySQLでは次のデータ型がサポートされています。
CHAR
VARCHAR
INT
TINYINT
SMALL
INT
MEDIUM INT
BIG INT
DECIMAL
FLOAT
DOUBLE
DATE
TIME
YEAR
DATETIME
TIMESTAMP
BINARY
VARBINARY
TEXT
TINYTEXT
MEDIUMTEXT
LONGTEXT
BLOB
TINYBLOB
MEDIUMBLOB
LONGBLOB
ENUM
BIT(M)
Oracle GoldenGate for MySQLの実行時には、次の点に注意する必要があります。
Oracle GoldenGateでは、BLOB
型またはTEXT
型が主キーとして使用される場合はサポートされません。
Oracle GoldenGateでは、UTF8およびUCS2キャラクタ・セットがサポートされます。UTF8型は、証跡に書き込まれる前に、Oracle GoldenGateによってUTF16に変換されます。
UTF32はOracle GoldenGateではサポートされません。
Oracle GoldenGateでは、TIME
型の範囲が00:00:00から23:59:59までサポートされます。
Oracle GoldenGateでは、0001/01/03:00:00:00
から9999/12/31:23:59:59
のタイムスタンプ・データをサポートします。タイムスタンプがGMTからローカル時間に変換されると、これらの制限は変換後のタイムスタンプにも適用されます。タイムゾーンに応じて、変換により時間が追加または引かれる場合があり、これにより、タイムスタンプがサポートされている上限を超えたり、下回ったりすることがあります。
Oracle GoldenGateでは、負の日付はサポートされていません。
浮動小数点数の範囲および精度のサポートは、ホスト・マシンによって異なります。通常は有効桁数が16桁の精度ですが、データベースのドキュメントで想定されている近似について確認してください。Oracle GoldenGateでは、サポートされる精度を超える値は丸められるか切り捨てられます。
ENUM
型を非strictのsql_mode
で使用すると、非strictのsql_mode
では無効なENUM
値の入力が防止されず、エラーが返されます。この状況を回避するには、次のいずれかの操作を行います。
sql_mode
をSTRICT
として使用して、Extractを再起動します。これによってユーザーはどのデータ型の無効な値も入力できなくなります。IEユーザーはデータ型の有効な値のみを入力できます。
非strictのsql_mode
を引き続き使用しますが、ENUM
データ型は使用しません。
非strictのsql_mode
を引き続き使用し、データベースの有効な値でENUM
データ型を使用します。無効な値を指定した場合、データベースではそのまま受け入れられますがExtractは異常終了します。
MySQLターゲットのトランザクション境界を維持するには、MyISAMエンジンではなくInnoDBトランザクション・データベース・エンジンを指定して、ターゲット表を作成または変更します。MyISAMを使用すると、Replicatのレコードは受信時に適用されるため、自動コミットをオフにしていても、トランザクションの整合性が保証されません。MyISAMではトランザクションをロールバックできません。
ビューとの間の抽出およびレプリケーションはサポートされていません。
MySQLレプリケーション・ターゲットからのキャプチャはサポートされていないため、MySQLレプリケーション・スレーブからキャプチャできます。
MySQLでは次のデータ型はサポートされていません。
XML
、SET
およびジオメトリ・データ型などもサポートされていません。
Intervalデータ型のサポートも制限されています。
Oracle GoldenGate for MySQLでは次のオブジェクトおよび操作がサポートされています。
Oracle GoldenGateでは、トランザクション表の抽出およびレプリケーションがサポートされます。
Oracle GoldenGateでは、MySQLおよび使用されるデータベース・ストレージ・エンジンでサポートされる行の最大サイズおよび列の最大数を上限に、トランザクション表がサポートされます。InnoDBでは、最大1000列がサポートされます。
Oracle GoldenGateでは、AUTO_INCREMENT
列属性がサポートされます。Extractによって増分値がバイナリ・ログからキャプチャされ、Replicatの挿入操作でターゲット表に適用されます。
Oracle GoldenGateでは、ソースおよびターゲット・データベースのトランザクション表に対する次のDML操作がサポートされます。
挿入操作
更新操作(圧縮を含む)
削除操作(圧縮を含む)。カスケード削除問合せを実行すると、親操作の子が削除されます
切捨て操作
Oracle GoldenGateでは、ソースMySQLデータベースからMySQLやその他のターゲット・データベースへの次の初期ロード方式がサポートされます。
Replicatを使用したデータのロード
Oracle GoldenGateダイレクト・ロードを使用したデータのロード
Oracle GoldenGateでは、MySQLネイティブ・レプリケーションとの同時操作が可能です。
Oracle GoldenGateでは、MySQLのDYNSQL
機能がサポートされます。
自動ハートビート表のサポートの制限は次のとおりです。
ハートビート表の追加時のエラーを回避するため、ハートビート表の作成先のデータベースがすでに存在することを確認します。
ハートビート履歴遅延ビューで、heartbeat_received_ts
、incoming_heartbeat_age
、outgoing_heartbeat_age
などのフィールドの情報は、システム時間について示しています。オペレーティング・システム時間に現在の正確なタイムゾーン情報が設定されていることを確認する必要があります。
Oracle GoldenGate for MySQLでは次のオブジェクトおよび操作がサポートされていません。
DDL (データ定義言語)操作の抽出またはレプリケーション。
Oracle GoldenGateのBATCHSQL
機能
初期ロード中の配列フェッチ
次のキャラクタ・セットはサポートされていません。