备份MySQL数据库

TMM*_*TMM 6 mysql backup mysqldump blocking

我有一个大约1.7GB的MySQL数据库.我通常使用mysqldump备份它,大约需要2分钟.但是,我想知道以下问题的答案:

  1. mysqldump是否阻止对数据库的读取和/或写入操作?因为在实时场景中,我不想阻止用户在备份时使用数据库.

  2. 对我来说,理想的做法是只在一周内备份一次WHOLE数据库,但在中间时间,只需要备份一个表,因为其他表不会更改.有没有办法实现这个目标?

  3. mysqlhotcopy是否是更好的替代方案?

RRU*_*RUZ 5

mysqlhotcopy在readlock丢失的某些情况下不起作用,并且不适用于INNODB表.

mysqldump更常用,因为它可以备份各种表.

来自MySQL文档

mysqlhotcopy是一个Perl脚本,最初由Tim Bunce编写和贡献.它使用LOCK TABLES,FLUSH TABLES和cp或scp来快速进行数据库备份.这是备份数据库或单个表的最快方法,但它只能在数据库目录所在的同一台机器上运行.mysqlhotcopy仅用于备份MyISAM和ARCHIVE表.它运行在Unix和NetWare上

mysqldump的客户端最初是由伊戈尔·罗曼写入的备份程序.它可用于转储数据库或数据库集合以备份或传输到另一个SQL服务器(不一定是MySQL服务器).转储通常包含用于创建表,填充表或两者的SQL语句.但是,mysqldump也可用于生成CSV,其他分隔文本或XML格式的文件.

再见.


Mac*_*ros 2

  1. 不,您可以使用 --lock-tables 指定要锁定的表,但默认情况下它们不是
  2. 如果您不指定任何表,则备份整个数据库,或者您可以指定表列表:

    mysqldump [选项] db_name [表]

  3. 抱歉,没有使用它,但是我运行了许多 MySQL 数据库,有些较大,有些小于 1.7GB,并且我使用 mysqldump 进行所有备份。