本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用不支援的我的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資料表快照,請依照下列步驟執行:
-
停止我的ISAM資料表的所有活動 (即關閉所有工作階段)。
您可以關閉所有工作階段,方法為針對從
SHOW FULL PROCESSLIST
命令傳回的每一個程序呼叫 mysql.rds_kill 命令。 -
鎖定和排清您的每個 MyISAM 資料表。例如,以下命令會鎖定並清空兩個名為
myisam_table1
和myisam_table2
的資料表:mysql> FLUSH TABLES myisam_table, myisam_table2 WITH READ LOCK;
-
建立資料庫執行個體或多可用區域資料庫叢集的快照。快照完成時,請釋放鎖定並繼續我的ISAM資料表上的活動。您可以使用以下命令,釋放資料表上的鎖定:
mysql> UNLOCK TABLES;
這些步驟會強制 MyISAM 將儲存在記憶體中的資料排清到磁碟,這可確保從資料庫快照還原時有一個乾淨的開始。如需建立資料庫快照的詳細資訊,請參閱為 Amazon 的單一可用區域資料庫執行個體建立資料庫快照 RDS。
-