mysqldump 是文本备份还是二进制备份它是文本备份,如果你打开备份文件你将看到所有的语句,
可以用于重新创建表和对象。它也有 insert 语句来使用数据构成表。

  1. mysqldump 的语法是什么?

    1
    mysqldump -u [uname] -p[pass] –databases [dbname][dbname2] > [backupfile.sql]
  2. 使用 mysqldump 怎样备份所有数据库?

    1
    mysqldump -u root -p –all-databases > backupfile.sql
  3. 使用 mysqldump 怎样备份指定的数据库?

    1
    mysqldump -u root -p –databases school hospital > backupfile.sql
  4. 使用 mysqldump 怎样备份指定的表?

    1
    2
    mysqldump –user=root –password=mypassword -h localhost databasename table_name_to_dump
    table_name_to_dump_2 > dump_only_two_tables_file.sql
  5. 我不想要数据,怎样仅获取 DDL?

    1
    mysqldump -u root -p –all-databases –no-data > backupfile.sql
  6. 一次 mysqldump 备份花费多长时间?

    1
    这依赖于数据库大小,100 GB 大小的数据库可能花费两小时或更长时间
  7. 怎样备份位于其他服务器的远程数据库?

    1
    mysqldump -h 172.16.25.126 -u root -ppass dbname > dbname.sql
  8. –routines 选项的含义是什么?

    1
    2
    通过使用 -routines 产生的输出包含 CREATE PROCEDURECREATE FUNCTION
    语句用于重新创建 routines。如果你有 proceduresfunctions 你需要使用这个选项

  9. 怎样列出 mysqldump 中的所有选项?

    1
    mysqldump –help
  10. mysqldump 中常用的选项是?

    1
    2
    3
    4
    5
    6
    All-databases
    Databases
    Routines
    Single-transaction (它不会锁住表) – 一直在 innodb databases 中使用
    Master-data – 复制 (现在忽略了)
    No-data – 它将 dump 一个没有数据的空白数据库
  11. 默认所有的 triggers 都会备份吗?

    1
    使得
  12. single transaction 选项的含义是什么?

    1
    –singletransaction 选项避免了 innodb databases 备份期间的任何锁,如果你使用这个选项,在备份期间,没有锁
  13. 使用 mysqldump 备份的常用命令是什么?

    1
    2
    nohup mysqldump –socket=mysql.sock –user=user1 –password=pass –single-transaction
    flush-logsmaster-data=2 –all-databasesextended-insertquick –routines > market_dump.sql 2> market_dump.err &
  14. 使用 mysqldump 怎样压缩一个备份?

    1
    2
    注意: 压缩会降低备份的速度
    Mysqldump [options] | gzip > backup.sql.gz
  15. mysqldump 备份大数据库是否是理想的?

    1
    2
    依赖于你的硬件,包括可用的内存和硬盘驱动器速度,一个在 5GB 和 20GB 之间适当的数据库大小。
    虽然有可能使用 mysqldump 备份 200GB 的数据库,这种单一线程的方法需要时间来执行。
  16. 怎样通过使用 mysqldump 来恢复备份?

    • 使用来源数据的方法
    • Mysql –u root –p < backup.sql
  17. 在恢复期间我想记录错误到日志中,我也想看看恢复的执行时间?

    1
    Time Mysql –u root –p < backup.sql > backup.out 2>&1
  18. 怎样知道恢复是否正在进行?

    1
    显示完整的进程列表
  19. 如果数据库是巨大的,你不得不做的事情是?

    1
    使用 nohup 在后台运行它
  20. 我是否可以在 windows 上使用 mysqldump 备份然后在 linux 服务器上恢复?

    1
    是的
  21. 我怎么传输文件到目标服务器上去?

    • 使用 scp
    • 使用 sftp
    • 使用 winscp
  22. 如果我使用一个巨大的备份文件来源来恢复会发生什么?

    1
    2
    如果你的一个数据库备份文件来源,它可能需要很长时间运行。处理这种情况更好的方式是使用
    nohup 来在后台运行。也可使用在 unix 中的 screen 代替
  23. 默认情况下,mysqldump 包含 drop 数据库吗?

    1
    你需要添加 –add-drop-database 选项
  24. 怎样从一个多数据库备份中提取一个数据库备份(假设数据库名字是 test)?

    1
    sed -n '/^-- Current Database: `test`/,/^-- Current Database: `/p' fulldump.sql > test.sql