Web应用程序出现故障,我开始进行MYSQL转储后

时间:2018-06-26 07:16:35

标签: mysql jive

试图将进程推到Linux的后台,并尝试使用 -q 命令: mysqldump -q -u root -p root database_name> dumpName.sql似乎没有用。

1 个答案:

答案 0 :(得分:1)

这很可能是事实,mysqldump在备份期间锁定了表。

使用InnoDB表时,可以使用--single-transaction参数。确保阅读manual

  
      
  • -单次交易
  •   
     

此选项将事务隔离模式设置为REPEATABLE READ和   在转储之前将START TRANSACTION SQL语句发送到服务器   数据。仅对事务表(例如InnoDB,   因为这会转储当时数据库的一致状态   在发布START TRANSACTION时没有阻止任何应用程序。

     

使用此选项时,请记住只有InnoDB   表以一致状态转储。例如,任何MyISAM或   使用此选项转储的MEMORY表可能仍会更改状态。

     

正在执行-单个事务转储时,以确保有效   转储文件(正确的表内容和二进制日志坐标),否   其他连接应使用以下语句:ALTER TABLE,   创建表,删除表,重命名表,截断表。一致的   read不是与这些语句隔离的,因此在表上使用它们   被转储可能导致mysqldump执行的SELECT变为   检索表内容以获得错误的内容或失败。

     

--single-transaction选项和--lock-tables选项是   互斥,因为LOCK TABLES导致任何挂起的事务   隐式提交。

使用MyISAM表(不建议使用)时,您几乎注定要失败。最好的选择是设置复制到另一个主机。要进行备份,请在从属服务器上停止复制,并在mysqldump完成后再次启动从属服务器。 (谷歌浏览器,我在这里不再详细解释)。

另一种可能的解决方案是使用Percona的xtrabackup。再次,谷歌阅读整个手册!我不能太强调这一点。