使用mysqldump选项 - 单个交易



InnoDBMyISAM等发动机等表中。当我们将MySqlDump与选项--single-transaction等使用时。该选项的用途是什么?即,请参阅此处的代码。

/usr/bin/mysqldump -h ${HOST} -u${SOURCEUSER}  -p${SOURCEPASS} 
    --skip-add-drop-table -t --skip-lock-tables --single-transaction --skip-add-locks --complete-insert -q -e --skip-disable-keys 
    --where="ID=${ID}" 
    ${SOURCEDB} ${SOURCETABLE} | sed -e "s/INSERT INTO/REPLACE INTO/" | sed -e "s/${SOURCETABLE}/${TARGETTABLE}/g" |  /usr/bin/mysql -u${TARGETUSER} -p${TARGETPASS} ${TARGETDB} ;

请解释!thanx!

直接从dev.mysql.com引用

此选项将事务隔离模式设置为可重复的读取,并在转储数据之前将启动事务SQL语句发送给服务器。它仅适用于诸如InnoDB之类的交易表,因为它在发行启动交易时在不阻止任何应用程序的情况下丢弃数据库的一致状态。

如果您需要阅读更多:

使用此选项时,您应该记住,只有InnoDB表以一致的状态倾倒。例如,使用此选项时倾倒的任何Myisam或内存表仍可能会更改状态。

虽然一个 - 单个 - 交易转储在进程中,以确保有效的转储文件(正确的表内容和二进制日志坐标),没有其他连接不应使用以下语句表,截短表。一致的读取不是与这些语句隔离的,因此在表倾倒表上使用它们可能会导致MySqlDump执行的选择以检索表内容以获得不正确的内容或失败。

- 单个交易选项和 - 锁定桌选项是相互排斥的,因为锁定表会导致任何未决的交易被隐式地进行。

要倾倒大桌子,将 - 单个交易选项与 - Quick选项相结合。

这是url:link

最新更新