2011-05-16 56 views
2

如果我在數據庫上啓動mysqldump,然後用新數據創建一個新表,這個表是否會被轉儲?這裏的併發行爲是什麼?mysqldump併發性

回答

1

嘛,就是不知道,從Mysql Manual

--single事務

此選項之前 傾銷數據發送一個START TRANSACTION SQL語句到服務器。只有與 事務表例如InnoDB 和BDB有用的,因爲那在 時開始上課 阻止任何應用程序發出的時間轉儲數據庫的 一致的狀態。

使用此選項時,應該記住只有InnoDB表 以一致的狀態轉儲。例如,對於使用此選項的任何MyISAM或MEMORY表 轉儲,可能 仍然改變狀態。

雖然--single事務轉儲 過程,以確保有效的轉儲文件 (正確的表的內容和 二進制日誌座標),沒有其他 連接應使用以下 語句:ALTER TABLE,CREATE TABLE, DROP TABLE,RENAME TABLE,TRUNCATE TABLE。持續讀不 從這些語句隔離的,因此使用它們的 上傾倒一個表可以 導致由 的mysqldump進行檢索表 內容以獲得不正確的內容 或失敗的選擇。

的--single-transaction選項和 的--lock-tables選項是相互排斥 因爲LOCK TABLES導致 任何掛起的交易是 隱含提交。

該選項不支持MySQL 集羣表;結果不能是 保證是一致的,因爲事實上NDBCLUSTER存儲 引擎只支持 READ_COMMITTED事務隔離級別 級別。您應該始終使用NDB 備份和恢復。

要轉儲大型表格,您應該使用 將--single-transaction 選項與--quick結合使用。

如果你想備份/移動你的生活DB,你應該考慮MySQL replication