关于使用 mysqldump 的简单问题

关于使用 mysqldump 的简单问题

我有一个 LAMP 网站,带有 mysql 后端和 InnoDb 引擎用于表

我希望能够使用 mysqldump 定期转储数据库 - 而不必在备份期间停止 mysql 服务器(即关闭网站)。

我很惊讶我找不到这些信息 - 甚至在 mySQL 文档中也没有。 很多文章都提到了 mysqlhotcopy,但它只适用于 IMSAM 表 - 因此对我来说没有兴趣/用处。

是否有人知道是否(如何?)可以使用 mysqldump 复制/转储仍在使用的数据库?

官方文档的链接非常有用,因为我想确保我完全正确地理解了这一点。

我在 Ubuntu 10.0.4 LTS 上运行

答案1

执行此操作的常用方法是设置 MySQL 的从属实例并从那里进行备份。您不一定需要为从属 MySQL 单独配备物理服务器,在同一台服务器上运行它完全没问题(如果您有足够的磁盘空间和一些内存;从 CPU 方面来看,一个大部分空闲的 MySQL 从属不会造成太大损害)。

编辑::添加了官方MySQL复制文档链接。

关于 MySQL 复制的详细解释:http://dev.mysql.com/doc/refman/5.1/en/replication.html

复制设置方法:http://dev.mysql.com/doc/refman/5.1/en/replication-howto.html

答案2

我同意 Janne 的观点,使用复制是常用的方法。但您也可以使用 MySqlDump。您不必为此关闭数据库。它只是会暂时有点不响应。这取决于您的应用类型和数据量。

http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html

答案3

我正在使用此处找到的脚本的修改版本:

http://bash.cyberciti.biz/backup/backup-mysql-database-server-2/

(我只是删除了一些创建和设置备份目录权限的行)

对我来说,它在实时 ubuntu 网络服务器上运行得很好

答案4

您不必关闭数据库即可使用 MySQL Dump 这是我在 Windows 中使用的脚本

@echo Dumping data...

"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqldump.exe" --add-drop-table=true -h localhost -u root -ppassword mydatabase table1 table2 table3 1> %1

如果你想直接运行它,只需使用

mysqldump.exe" --add-drop-table=true -h localhost -u root -p mydatabase table1 table2 table3 > datadump.sql

并要求输入密码。在此示例中,我只备份了一些表(1 到 3),但您可以备份所有内容。有很多不同的选项。对于恢复,批处理文件是:

@echo Loading Data...
@"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql.exe" -u root -ppasword  -h localhost mydatabase 0< %1

要不就

mysql.exe" -u root -p -h localhost mydatabase < datadump.sql

相关内容