利用不受支援的 MySQL 儲存引擎進行自動備份 - Amazon Relational Database Service

利用不受支援的 MySQL 儲存引擎進行自動備份

就 MySQL 資料庫引擎而言,自動備份僅支援 InnoDB 儲存引擎。使用這些功能搭配其他 MySQL 儲存引擎 (包括 MyISAM) 可能導致從備份中還原時發生不可靠的行為。尤其,因為 MyISAM 之類的儲存引擎不支援可靠的損毀復原,萬一毀損,您的資料表可能會損壞。基於這個原因,我們鼓勵您使用 InnoDB 儲存引擎。

  • 若要將現有的 MyISAM 資料表轉換為 InnoDB 資料表,您可以使用 ALTER TABLE 命令,例如:ALTER TABLE table_name ENGINE=innodb, ALGORITHM=COPY;

  • 如果選擇使用 MyISAM,則您可以使用 REPAIR 命令,嘗試手動修復在損毀之後損壞的資料表。如需詳細資訊,請參閱 MySQL 文件中的 REPAIR TABLE 陳述式。不過,如同 MySQL 文件所述,您很有可能無法復原所有資料。

  • 如果想要在還原之前建立 MyISAM 資料表的快照,請遵循下列步驟:

    1. 停止 MyISAM 資料表的所有活動 (亦即,關閉所有工作階段)。

      您可以關閉所有工作階段,方法為針對從 SHOW FULL PROCESSLIST 命令傳回的每一個程序呼叫 mysql.rds_kill 命令。

    2. 鎖定並清空您的每一個 MyISAM 資料表。例如,以下命令會鎖定並清空兩個名為 myisam_table1myisam_table2 的資料表:

      mysql> FLUSH TABLES myisam_table, myisam_table2 WITH READ LOCK;
    3. 建立資料庫執行個體或多可用區域資料庫叢集的快照。完成快照時,請釋放鎖定並恢復 MyISAM 資料表上的活動。您可以使用以下命令,釋放資料表上的鎖定:

      mysql> UNLOCK TABLES;

    這些步驟會強制 MyISAM 將記憶體中存放的資料清空到磁碟,以確保您從資料庫快照還原時全新開始。如需建立資料庫快照的詳細資訊,請參閱為 Amazon RDS 的單一可用區域資料庫執行個體建立資料庫快照