日期:2014-05-16  浏览次数:20554 次

关于数据库备份问题

以前,我以为数据库备份,无非是把数据库里面的所有数据全部读出来,然后写入文件中!但实际上,经过一次惨痛的教训后,我发现,我错了。

假设你现在的数据量过大,,如果一次性全部读出来,那么它就要在内存中占的大小,这样的话,肯定会引发速度变慢。如果内存不够的话,,,可能还会引发其他的问题。

?

一次,无意间,看到了 http://baike.baidu.com/view/3669591.htm这篇文章的解释。我惊了。。

?

?

max-allowed-packet

  max_allowed_packet   Mysql 5.1 遇到的信息包过大问题 用客户端导入数据的时候,遇到 错误代码: 1153 - Got a packet bigger than 'max_allowed_packet' bytes 终止了数据导入。   当MySQL客户端或mysqld服务器收到大于max_allowed_packet字节的信息包时,将发出“信息包过大”错误,并关闭连接。对于某些客户端,如果通信信息包过大,在执行查询期间,可能会遇到“丢失与MySQL服务器的连接”错误。   客户端和服务器均有自己的max_allowed_packet变量,因此,如你打算处理大的信息包,必须增加客户端和服务器上的该变量。一般情况下,服务器默认max-allowed-packet为1MB   如果你正在使用mysql客户端程序,其max_allowed_packet变量的默认值为16MB。要想设置较大的值,可用下述方式启动mysql   mysql>mysql --max-allowed-packet=32M   在my.ini也可以更改,需要重新启动mysql   在my.ini加入[mysql]max_allowed_packet=16M