本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon Aurora 擴展您的我的SQL資料庫的讀取
您可以將 Amazon Aurora 與我的SQL資料庫執行個體搭配使用,以利用 Amazon Aurora 的讀取擴展功能,並擴展 My SQL 資料庫執行個體的讀取工作負載。若要使用 Aurora 擴展 My SQL 資料庫執行個體的讀取,請建立 Amazon Aurora My SQL 資料庫叢集,並將其設為 My 資SQL料庫執行個體的僅供讀取複本。這適用RDS於我的資料SQL庫執行個體,或在 Amazon 外部執行的 My SQL 資料庫RDS。
如需建立 Amazon Aurora 資料庫叢集的詳細資訊,請參閱建立 Amazon Aurora 資料庫叢集。
在 My SQL 資料庫執行個體和 Amazon Aurora 資料庫叢集之間設定複寫時,請務必遵循下列準則:
-
當您參考 Amazon Aurora 我的資料庫叢集時,請使用 Amazon Aurora SQL 資料庫叢集端點地址。如果發生容錯移轉,則提升至 Aurora My SQL DB 叢集主要執行個體的 Aurora 複本會繼續使用資料庫叢集端點位址。
-
直到您已驗證二進位日誌已套用至 Aurora 複本前,都要將二進位日誌保存在寫入器執行個體上。如此一來,發生故障時,您就可以還原寫入器執行個體。
重要
使用自我管理的複寫時,您需負責監控和解決可能發生的任何複寫問題。如需詳細資訊,請參閱診斷和解決僅供讀取複本之間的延遲。
注意
在 Aurora My SQL DB 叢集上開始複寫所需的權限受到限制,您的 Amazon RDS 主要使用者無法使用。因此,您必須使用mysql.rds_set_external_master (Aurora MySQL version 2)或mysql.rds_set_external_source (Aurora MySQL 版本 3)和mysql.rds_start_replication程序來設定 Aurora My SQL DB 叢集和 My SQL DB 執行個體之間的複寫。
在外部來源執行個體和 Aurora My SQL DB 叢集之間啟動複寫
-
將來源 My SQL 資料庫執行個體設為唯讀:
mysql>
FLUSH TABLES WITH READ LOCK;mysql>
SET GLOBAL read_only = ON; -
在來源 My SQL DB 執行個體上執行
SHOW MASTER STATUS
命令,以判斷 binlog 位置。您會獲得類似下列範例的輸出結果:File Position ------------------------------------ mysql-bin-changelog.000031 107 ------------------------------------
-
使用將資料庫從外部 My 資料SQL庫執行個體複製到 Amazon Aurora 我的資料SQL庫叢集
mysqldump
。對於非常大的資料庫,您可能想要使用 Amazon 關聯式資料庫服務使用者指南中的將資料匯入 My SQL 或 MariaDB 資料庫執行個體中的程序,並縮短停機時間。對於LinuxmacOS、或Unix:
mysqldump \ --databases <database_name> \ --single-transaction \ --compress \ --order-by-primary \ -u
local_user
\ -plocal_password
| mysql \ --host aurora_cluster_endpoint_address \ --port 3306 \ -uRDS_user_name
\ -pRDS_password
在 Windows 中:
mysqldump ^ --databases <database_name> ^ --single-transaction ^ --compress ^ --order-by-primary ^ -u
local_user
^ -plocal_password
| mysql ^ --host aurora_cluster_endpoint_address ^ --port 3306 ^ -uRDS_user_name
^ -pRDS_password
注意
請注意
-p
選項與輸入的密碼之間不能有空格。在
--host
命令中,使用--user (-u)
、--port
、-p
和mysql
選項來指定主機名稱、使用者名稱、連接埠和密碼,以連接至 Aurora 資料庫叢集。主機名稱是來自 Amazon Aurora 資料庫叢集端點的DNS名稱,例如mydbcluster.cluster-123456789012.us-east-1.rds.amazonaws.com
。您可以在 Amazon RDS 管理主控台的叢集詳細資料中找到端點值。 -
讓來源 My SQL DB 執行個體再次可寫入:
mysql>
SET GLOBAL read_only = OFF;mysql>
UNLOCK TABLES;如需建立備份以搭配複寫使用的詳細資訊,請參閱我的SQL文件Backing up a source or replica by making it read only
中的。 -
在 Amazon RDS 管理主控台中,將託管來源 My SQL 資料庫的伺服器 IP 位址新增至 Amazon Aurora 資料庫叢集的VPC安全群組。如需有關修改VPC安全群組的詳細資訊,請參閱 Amazon Virtual Private Cloud 使用者指南VPC中的適用於您的安全群組。
您可能還需要設定本機網路,以允許從 Amazon Aurora 資料庫叢集的 IP 地址進行連線,以便它可以與來源 My SQL 執行個體通訊。若要找出 Amazon Aurora 資料庫叢集的 IP 地址,請使用
host
命令。host
aurora_endpoint_address
主機名稱是來自 Amazon Aurora 資料庫叢集端點的DNS名稱。
-
使用您選擇的用戶端連線至外部 My SQL 執行個體,並建立用於複寫的 My 使用SQL者。此帳戶只供複寫作業使用,務必限制其存取您的網域,以提升安全性。以下是範例。
CREATE USER '
repl_user
'@'example.com
' IDENTIFIED BY 'password
'; -
對於外部 My SQL 執行個體,授
REPLICATION CLIENT
與和REPLICATION SLAVE
權限給您的複寫使用者。舉例來說,若要將所有資料庫的REPLICATION CLIENT
和REPLICATION SLAVE
權限授予您網域中的「repl_user
」使用者,請發出下列命令。GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '
repl_user
'@'example.com
' IDENTIFIED BY 'password
'; -
在設定複寫之前,請先將 Aurora My SQL DB 叢集的手動快照製作為僅供讀取複本。如果您需要將資料庫叢集重新建立複寫作為僅供讀取複本,您可以從此快照還原 Aurora My SQL DB 叢集,而不必將資料從 My SQL DB 執行個體匯入新的 Aurora My SQL DB 叢集。
-
將 Amazon Aurora 資料庫叢集變成複本。以主要使用者身分 Connect 到 Amazon Aurora SQL 資料庫叢集,並使用mysql.rds_set_external_master (Aurora MySQL version 2)或mysql.rds_set_external_source (Aurora MySQL 版本 3)和mysql.rds_start_replication程序將來源 My 資料庫識別為複寫來源。
使用您在步驟 2 中決定的 binlog 檔案名稱和位置。以下是範例。
For Aurora MySQL version 2: CALL mysql.rds_set_external_master ('mymasterserver.example.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 0); For Aurora MySQL version 3: CALL mysql.rds_set_external_source ('mymasterserver.example.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 0);
-
在 Amazon Aurora 資料庫叢集上,呼叫 mysql.rds_start_replication 程序以開始複寫。
CALL mysql.rds_start_replication;
在來源 My SQL 資料庫執行個體和 Amazon Aurora 資料庫叢集之間建立複寫之後,您可以將 Aurora 複本新增到 Amazon Aurora 資料庫叢集。您接著可以連接至 Aurora 複本來讀取擴展您的資料。如需建立 Aurora 複本的詳細資訊,請參閱將 Aurora 複本新增至資料庫叢集。