Mysql

將 innodb_flush_log_at_trx_commit = 2 與 RDS MultiAZ 一起使用 - 安全嗎?

  • March 17, 2022

我了解使用參數設置的缺點

innodb_flush_log_at_trx_commit = 2

如果您想了解更多,請查看另一個答案,例如Is it safe to use innodb_flush_log_at_trx_commit = 2

我想了解的是 - 如果我使用 MultiAZ RDS 伺服器,這是否意味著寫入也會發生在另一台伺服器上,因此在失敗時我會保留數據?

還是在寫入發生後發生複製?

多可用區 RDS 使用塊級複製來複製 I/O,因此它將等待本地實例上的塊 I/O 請求,然後將該寫入複製到另一個 AZ 上的實例。

使用innodb_flush_log_at_trx_commit = 2,日誌寫入使用緩衝 I/O,因此它們可能會將塊 I/O 請求延遲最多 1 秒。

換句話說,刷新 innodb 日誌是觸發同步到另一個多可用區實例的原因。在首先在本地刷新 innodb 日誌之前,不會發生多可用區同步。

因此,如果您對innodb_flush_log_at_trx_commit.

如果您試圖通過使用該寬鬆設置來獲得更好的性能,但又要保證 HA,您就不能這樣做。RDS 性能通常很差。如果您需要高寫入吞吐量,則需要不同的平台。

引用自:https://dba.stackexchange.com/questions/308870