-2

我们正在使用 PHP 和 Mysql 开发一个基于 Web 的应用程序。如您所知,使用 Web 界面备份大型数据库存在限制,因此我需要一个解决方案来通过以下条件备份我们的大型数据库:

  1. 该过程可以在没有 Web 界面的情况下完成,并且必须在命令行中运行(例如作为 Linux 服务)

  2. 该进程应该使用最少的服务器资源(换句话说,当备份进程正在运行时,客户端可以使用服务器上的服务)

  3. 某些功能至关重要(例如备份、恢复、压缩和拆分备份文件),而某些功能是可选的(例如邮件和 FTP ......)

  4. 脚本必须用 PHP 或 Perl 编写。

有什么想法吗?

4

4 回答 4

2

查看mysqldump进行命令行备份

对于完整的数据库备份:

mysqldump -u USER_NAME -p DB_NAME > DB_NAME.sql

如果您的数据库很大并且您不想备份完整的数据库。您只能备份单个/多个表

mysqldump -u USER_NAME -p DB_NAME TABLE_NAME > TABLE_NAME.sql

于 2012-07-16T12:22:48.967 回答
1

您可能想考虑设置到第二台服务器的复制,并且您有一个实时备份,如果您想存储旧备份,您可以使用第二台服务器的资源来制作 thou

于 2012-07-16T12:31:26.973 回答
1

我完全避免编写脚本,只使用 MySQL 内置的工具。这是一个很好的关于 mysqldump 的教程:

http://www.thegeekstuff.com/2008/09/backup-and-restore-mysql-database-using-mysqldump/

于 2012-07-16T12:21:07.360 回答
0

使用 nice 运行 php 脚本,值为 19 会使进程的优先级很低

nice -n 19 php /path/to/backupscript.php
于 2012-07-16T12:20:59.947 回答