Php CodeIgniter中的数据库备份

Php CodeIgniter中的数据库备份,php,mysql,codeigniter,Php,Mysql,Codeigniter,由于PHP可用的执行时间和内存有限,可能无法备份非常大的数据库——这一行来自CI的dbutil类文档。其中我理解为: //php has a timeout of execution which is short also when it attempts to // execute a time consuming action like db-backup might time out before // completion..(Please mark If I were wrong)

由于PHP可用的执行时间和内存有限,可能无法备份非常大的数据库——这一行来自CI的dbutil类文档。其中我理解为:

//php has a timeout of execution which is short also when it attempts to
// execute a time consuming action like db-backup might time out before
// completion..(Please mark If I were wrong)
Limited Memory是在php.ini文件中找到的php运行时内存,默认为2048

有了这些话,我很确定当我要备份一个大型数据库时,它会带来一个问题。我能做些什么呢

 //1. Stored proceedure with event?
 // Well I want it to be executed once a day(so the event thing came up) or
 //2. Increase memory in php.ini?

我应该在这些和其他之间走哪条路?

我建议您使用备份实用程序,例如它使用另一种技术来避免PHP的最大执行时间。以下是官方网站的一段话:

MySQLDumper

PHP脚本的最大执行时间通常设置为30 在大多数服务器安装上的秒数。运行时间超过 这个限制将完全停止工作。此行为会导致备份 大型数据库是不可能的。也许你已经有了这个明确的目标 使用其他工具时出现问题

MySQLDumper使用专有技术来避免这个问题。信息技术 只读取并保存一定数量的数据,然后调用自身 通过JavaScript进行递归,并记住备份过程中有多远 是的。然后,脚本将从该点恢复备份


为什么要从PHP中备份db?这就是为什么会有mysqldump,它与php毫无关系。这需要更多的上下文。您使用的是哪种服务器?你自己的,还是共享主机?你有命令行访问权限吗?你可以使用
mysqldump
然后完全绕过PHP。我在CI安装之外的PHP文件上运行cron作业,它运行命令行mysqldump(它还做其他事情为什么它是PHP文件)$command=“mysqldump-u$dbuser--password=$dbpwd$dbname | gzip>$filename”$结果=通过($command);显然,你必须填写变量。我认为你已经找到了主要问题。。但这是第三方公用事业公司吗?你用过吗?是的,这是一个第三方工具(而且是免费的)。自2010年以来,我一直在使用它备份大于2GB的数据库,而没有任何性能问题。我真正喜欢这个脚本的是,您可以看到数据库备份的进度,甚至可以控制备份数据库的速度!