資料庫組態
瞭解支援的 MySQL 資料庫、必要設定值,以及如何在設定 Oracle GoldenGate 的 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。
支援以單一主要模式擷取及傳遞以「群組複製」設定的 MySQL。如需詳細資訊,請參閱搭配使用 Oracle GoldenGate 與 MySQL 群組複製。
如需所支援資料庫和版本的完整清單,請檢閱您 Oracle GoldenGate 版本的認證表。
支援限制
以下是 Oracle GoldenGate for MySQL 支援的限制:
-
Oracle GoldenGate Extract 不支援啟用二進位日誌交易壓縮的 MySQL 資料庫。
-
Oracle GoldenGate Extract 不支援啟用二進位日誌加密的 MySQL 資料庫。
資料庫儲存引擎
資料庫儲存引擎的需求如下:
-
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。 -
不支援下列字元集:
-
armscii8 -
geostd8 -
keybcs2 -
utf16le
-
設定階段作業字元集
從命令行介面 (Admin Client) 連線至資料庫時,Extract and Replicat 處理作業會使用階段作業字元集。對於 MySQL,階段作業字元集是取自 SOURCEDB 的 SESSIONCHARSET 選項和 TARGETDB 參數。
請確定您在設定 Oracle GoldenGate 時,以下列其中一種方式指定階段作業字元集。
設定遠端擷取的 MySQL
適用於 MySQL、Amazon RDS for MySQL、Amazon Aurora MySQL、Azure Database for MySQL 的 Oracle GoldenGate 遠端擷取,可用來從遠端擷取至 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
Oracle GoldenGate Remote Capture for MySQL 的限制
Oracle GoldenGate for MySQL 遠端擷取與 MySQL 原生複製從屬站共存,有下列條件與限制:
-
Oracle GoldenGate for MySQL 遠端擷取不支援導致影像大小超過 1 GB 之前和之後的更新作業。
在更新作業中,當之前和之後影像的合併大小超過 1 GB 時,遠端擷取 API 會從 MySQL 伺服器取得下列錯誤:
log event entry exceeded max_allowed_packet -
原生複製僕站應指派與目前執行之僕站不同的 server_id。您可以在主伺服器上使用下列 MySQL 指令來查看從屬 server_id 值。
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 上執行的資料庫。