然而,在进行dump操作的时候,大家有一个很重要的参数需要注意:–flush-logs。这个参数告诉MySQL在dump的时候,将当前的二进制日志文件切换到另外一个文件,同时将当前的日志文件写入到磁盘中。这样做的目的是为了保证数据的完整性,在dump操作期间如果有新的写入,这些数据不会丢失。
$ mysqldump -u [username] -p [database name] >[dump file name].sql --flush-logs
另外有一个比较常用的参数是–single-transaction。这个参数告诉MySQL,在进行dump的时候,将当前的会话设置为一个事务,保证在dump的时候数据不会发生变化。这个参数只适用于InnoDB存储引擎,对于MyISAM等存储引擎来说是无效的。
$ mysqldump -u [username] -p [database name] >[dump file name].sql --single-transaction --flush-logs
最后需要注意的是,如果dump的数据量比较大,有可能会导致内存不足的情况。这个时候大家可以使用–quick参数,告诉MySQL将数据以文本方式导出,而不是一次性将所有数据取出再导出。这样可以减少内存占用。
$ mysqldump -u [username] -p [database name] >[dump file name].sql --quick --single-transaction --flush-logs