只是想知道在实时数据库上运行mysqldump有什么风险?是否存在数据库损坏的可能性? mysqldump似乎锁定了整个数据库。
答案 0 :(得分:2)
您的数据库表使用什么引擎?如果使用事务表,则可以使用“单事务”选项进行转储,该选项将以一致的状态转储表。如果您使用的是非事务性的MyISAM等表,则不应存在任何数据库损坏问题。但是,如果您遇到竞争情况,则可能会出现不一致的数据问题。在任何一种情况下,在转储发生时,您将大大减慢数据库响应时间。最好的办法是在运行转储之前对从服务器运行转储或等待站点静止。
答案 1 :(得分:0)
根据我的经验,转储时是表锁定。如果您的数据库位于大端,并且您的流量很大,那么您将获得必要的回流量。我不认为数据损坏会成为一个问题,因为它在转储该表的数据之前锁定了一个表。但是,如果我对表锁定错误并且它是数据库锁定,那么在转储过程期间你基本上关闭了数据库,但这就是队列的用途,当转储完成时,它将按顺序开始执行队列他们收到了。