ALTER INSTANCE instance_action
instance_action: {
| {ENABLE|DISABLE} INNODB REDO_LOG
| ROTATE INNODB MASTER KEY
| ROTATE BINLOG MASTER KEY
| RELOAD TLS
[FOR CHANNEL {mysql_main | mysql_admin}]
[NO ROLLBACK ON ERROR]
| RELOAD KEYRING
}
ALTER INSTANCE
定義適用於 MySQL 伺服器實例的操作。此陳述式支援下列操作:
ALTER INSTANCE {ENABLE | DISABLE} INNODB REDO_LOG
此操作啟用或停用
InnoDB
重做日誌記錄。預設情況下會啟用重做日誌記錄。此功能僅適用於將資料載入新的 MySQL 實例。此語句不會寫入二進制日誌。警告請勿在生產系統上停用重做日誌記錄。 雖然允許在停用重做日誌記錄時關閉並重新啟動伺服器,但在停用重做日誌記錄時發生意外的伺服器停止可能會導致資料遺失和實例損毀。
ALTER INSTANCE [ENABLE|DISABLE] INNODB REDO_LOG
操作需要獨佔備份鎖定,這會阻止其他ALTER INSTANCE
操作同時執行。其他ALTER INSTANCE
操作必須等待鎖定釋放後才能執行。如需更多資訊,請參閱停用重做日誌記錄。
ALTER INSTANCE ROTATE INNODB MASTER KEY
此操作會輪換用於
InnoDB
表空間加密的主加密金鑰。金鑰輪換需要ENCRYPTION_KEY_ADMIN
或SUPER
權限。若要執行此操作,必須安裝並設定金鑰環外掛程式。如需指示,請參閱第 8.4.4 節「MySQL 金鑰環」。ALTER INSTANCE ROTATE INNODB MASTER KEY
支援並行 DML。但是,它無法與CREATE TABLE ... ENCRYPTION
或ALTER TABLE ... ENCRYPTION
操作同時執行,並且會取得鎖定以防止這些語句同時執行可能引起的衝突。如果正在執行其中一個衝突語句,則必須先完成,另一個才能繼續。ALTER INSTANCE ROTATE INNODB MASTER KEY
語句會寫入二進制日誌,以便可以在複寫伺服器上執行。如需其他
ALTER INSTANCE ROTATE INNODB MASTER KEY
使用資訊,請參閱第 17.13 節「InnoDB 靜態資料加密」。ALTER INSTANCE ROTATE BINLOG MASTER KEY
此操作會輪換用於二進制日誌加密的二進制日誌主金鑰。二進制日誌主金鑰的金鑰輪換需要
BINLOG_ENCRYPTION_ADMIN
或SUPER
權限。如果binlog_encryption
系統變數設定為OFF
,則無法使用此語句。若要執行此操作,必須安裝並設定金鑰環外掛程式。如需指示,請參閱第 8.4.4 節「MySQL 金鑰環」。ALTER INSTANCE ROTATE BINLOG MASTER KEY
操作不會寫入二進制日誌,也不會在複本上執行。因此,可以在包含混合 MySQL 版本的複寫環境中執行二進制日誌主金鑰輪換。若要排程在所有適用的來源和複本伺服器上定期輪換二進制日誌主金鑰,您可以在每個伺服器上啟用 MySQL 事件排程器,並使用CREATE EVENT
語句發出ALTER INSTANCE ROTATE BINLOG MASTER KEY
語句。如果您因為懷疑目前或任何先前二進制日誌主金鑰可能遭到洩漏而輪換二進制日誌主金鑰,請在每個適用的來源和複本伺服器上發出此語句,這可讓您驗證立即合規性。如需其他
ALTER INSTANCE ROTATE BINLOG MASTER KEY
使用資訊,包括在程序未正確完成或因意外伺服器停止而中斷時該怎麼做,請參閱第 19.3.2 節「加密二進制日誌檔案和中繼日誌檔案」。此操作會從定義內容的系統變數目前值重新設定 TLS 內容。它也會更新反映作用中內容值的狀態變數。此操作需要
CONNECTION_ADMIN
權限。如需關於重新設定 TLS 內容的詳細資訊,包括哪些系統和狀態變數與內容相關,請參閱用於加密連線的伺服器端執行階段設定和監控。預設情況下,此語句會重新載入主要連線介面的 TLS 內容。如果指定
FOR CHANNEL
子句,則此語句會重新載入指定通道的 TLS 內容:主要連線介面的mysql_main
,管理連線介面的mysql_admin
。如需關於不同介面的資訊,請參閱第 7.1.12.1 節「連線介面」。更新的 TLS 內容屬性會顯示在效能結構描述tls_channel_status
表格中。請參閱第 29.12.22.9 節「tls_channel_status 表格」。更新主要介面的 TLS 內容也可能會影響管理介面,因為除非為該介面設定某些非預設 TLS 值,否則它會使用與主要介面相同的 TLS 內容。
注意當您重新載入 TLS 內容時,OpenSSL 會重新載入包含 CRL (憑證撤銷清單) 的檔案作為流程的一部分。如果 CRL 檔案很大,伺服器會配置大量的記憶體區塊 (檔案大小的十倍),這會在載入新實例且尚未釋放舊實例時加倍。在釋放大量的配置後,程序駐留記憶體不會立即減少,因此,如果您使用大型 CRL 檔案重複發出
ALTER INSTANCE RELOAD TLS
語句,程序駐留記憶體使用量可能會因此而增加。預設情況下,如果設定值不允許建立新的 TLS 內容,則
RELOAD TLS
操作會回復錯誤,且沒有任何作用。先前內容值會繼續用於新的連線。如果指定選用的NO ROLLBACK ON ERROR
子句,且無法建立新的內容,則不會發生回復。而是會產生警告,並且會針對語句套用的介面上新的連線停用加密。ALTER INSTANCE RELOAD TLS
語句不會寫入二進制日誌 (因此不會複寫)。TLS 設定是本機的,並且取決於並非一定存在於所有相關伺服器上的本機檔案。如果安裝了金鑰環元件,此操作會告知該元件重新讀取其組態檔,並重新初始化任何金鑰環記憶體內資料。如果您在執行階段修改元件設定,則在您執行此操作之前,新的設定不會生效。金鑰環重新載入需要
ENCRYPTION_KEY_ADMIN
權限。此操作僅可重新設定目前安裝的金鑰環元件。它無法變更安裝的元件。例如,如果您變更已安裝的金鑰環元件的設定,
ALTER INSTANCE RELOAD KEYRING
會使新的設定生效。另一方面,如果您變更伺服器資訊清單檔案中命名的金鑰環元件,ALTER INSTANCE RELOAD KEYRING
則沒有任何作用,且會保留目前的元件。ALTER INSTANCE RELOAD KEYRING
語句不會寫入二進制日誌 (因此不會複寫)。