![关于使用 mysqldump 的简单问题](https://linux22.com/image/1246133/%E5%85%B3%E4%BA%8E%E4%BD%BF%E7%94%A8%20mysqldump%20%E7%9A%84%E7%AE%80%E5%8D%95%E9%97%AE%E9%A2%98.png)
我有一个 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。您不必为此关闭数据库。它只是会暂时有点不响应。这取决于您的应用类型和数据量。
答案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