データベース構成
Oracle GoldenGateのMySQLの構成の一環として、サポートされているMySQLデータベース、必要な設定、および処理する表の準備方法について学習します。
サポートされているデータベース
Oracle GoldenGate for MySQLは、MySQL、Oracle MySQL Heatwave、Amazon Aurora MySQL、Amazon RDS for MariaDB、Amazon RDS for MySQL、Azure Database for MySQL、Google Cloud SQL for MySQLおよびMariaDBに対する取得と配信をサポートしています。
Oracle GoldenGateでは、Oracle GoldenGate for MySQLのReplicatを使用したSingleStoreDBおよびSingleStoreDB Cloudへの配信がサポートされています。
シングルプライマリ・モードでGroup Replicationが構成されたMySQLの取得と配信がサポートされています。詳細は、「MySQL Group ReplicationでのOracle GoldenGateの使用」を参照してください。
サポートされているデータベースおよびバージョンの完全なリストについては、使用しているバージョンのOracle GoldenGateの認定マトリックスを参照してください。
データベース・ストレージ・エンジン
データベース・ストレージ・エンジンの要件は次のとおりです。
-
Oracle GoldenGateでは、ソースMySQLデータベース用にInnoDBストレージ・エンジンがサポートされます。
-
Oracle GoldenGateは、InnoDBエンジンからの取得および適用をサポートします。MyISAMエンジンへの適用は機能しますが、MyISAMエンジンが非トランザクションであるため、データ整合性の問題が発生する可能性があります。
データベース文字セット
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)); |
サポートの制限事項
-
バイナリ照合は、マルチバイト文字セットではサポートされていません。たとえば、文字セットが
utf8mb4の場合、collation_server変数をutf8mb4_binに設定しないでください。 -
次の文字セットはサポートされていません。
armscii8geostd8keybcs2utf16le
セッション文字セットの設定
ExtractおよびReplicatプロセスは、コマンドライン・インタフェース(管理クライアント)からデータベースに接続するときにセッション文字セットを使用します。MySQLの場合、セッション文字セットはSOURCEDBおよびTARGETDBパラメータのSESSIONCHARSETオプションから取得されます。
Oracle GoldenGateを構成する際、これらのいずれかでセッション文字セットを必ず指定してください。
リモート・キャプチャのためのMySQLの構成
MySQLのためのOracle GoldenGateリモート・キャプチャ、Amazon RDS for MySQL、Amazon Aurora MySQL、Azure Database for MySQLを使用して、Oracle GoldenGateインストールにリモートに配置されているデータベースからトランザクション・ログ・データを取得します。
データベース・サーバー構成
リモート取得が機能するには、MySQLサーバーを次のように構成します。
-
Oracle GoldenGateリモート取得ユーザーにアクセス権を付与します。
リモート・データベースに対して次の文を実行し、ユーザーを作成してリモート・キャプチャに必要な権限を付与します。
CREATE USER 'username'@'host' IDENTIFIED BY 'Password'; GRANT ALL PRIVILEGES ON *.* TO 'username'@'host’ WITH GRANT OPTION; FLUSH PRIVILEGES; -
リモートのMySQLサーバーの
server_id値は0より大きくする必要があります。この値は、MySQLリモート・サーバーで次の文を発行して検証できます。SHOW VARIABLES LIKE ‘server_id’;server_idの値が0の場合は、my.cnf構成ファイルを変更して0より大きい値を設定します。
Oracle GoldenGateの構成
Oracle GoldenGate構成には、次のステップがあります。
-
Extractのパラメータ・ファイルにリモート・データベースの接続情報を指定します。
SOURCEDB remotedb@mysqlserver.company.com:port, USERID username, PASSWORD password -
Extractのパラメータ・ファイルの接続情報の後に、次のパラメータを追加します。
TRANLOGOPTIONS ALTLOGDEST REMOTE
MySQL用Oracle GoldenGateリモート取得の制限
Oracle GoldenGate for MySQLとMySQLのネイティブ・レプリケーション・スレーブの共存は、次の条件と制限でサポートされています。
-
Oracle GoldenGate for MySQLのリモート・キャプチャでは、更新前後のイメージのサイズが1 GBを超える更新操作はサポートされません。
更新操作では、更新前イメージと更新後イメージの結合サイズが1 GBを超えると、リモート取得APIがMySQLサーバーから次のエラーを取得します:log event entry exceeded max_allowed_packet -
ネイティブ・レプリケーション・スレーブには、現在実行中のスレーブとは異なるserver_idを割り当てる必要があります。スレーブserver_idの値は、マスター・サーバーで次のMySQLコマンドを使用して表示できます。
SHOW SLAVE HOSTS;-
Oracle GoldenGate取得が、
A slave with the same server_uuid or server_id as this slave has connected to the masterで異常終了した場合は、取得の名前を変更して取得を再開します。 -
ネイティブ・レプリケーション・スレーブが、
A slave with the same server_uuid or server_id as this slave has connected to the masterで異常終了した場合は、ネイティブ・レプリケーション・スレーブのserver_idを変更して再起動します。
-
-
リモート取得は、Linuxで実行中のOracle GoldenGateでサポートされており、LinuxまたはWindowsで実行されているデータベースをサポートできます。