使用不支援的我的SQL儲存引擎進行自動備份 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用不支援的我的SQL儲存引擎進行自動備份

對於 MySQL 資料庫引擎,僅 InnoDB 儲存引擎支援自動備份。當您從備份還原時,將這些功能與其他 MySQL 儲存引擎搭配使用,包括 My ISAM,可能會導致不可靠的行為。具體而言,由於像 MyISAM 這樣的儲存引擎不支援可靠的當機復原,因此您的資料表可能會在當機時損毀。基於這個原因,我們鼓勵您使用 InnoDB 儲存引擎。

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

  • 如果您選擇使用我的 ISAM,則可以嘗試使用 REPAIR命令手動修復當機後受損的資料表。如需詳細資訊,請參閱我的SQL文件中的REPAIRTABLE陳述式。不過,如我的SQL文件中所述,您很有可能無法復原所有資料。

  • 如果您想要在還原前擷取我的ISAM資料表快照,請依照下列步驟執行:

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

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

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

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

      mysql> UNLOCK TABLES;

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