mysqldump 是文本备份还是二进制备份 它是文本备份,如果你打开备份文件你将看到所有的语句,可以用于重新创建表和对象。它也有 insert 语句来使用数据构成表。 mysqldump 的语法是什么? mysqldump -u [uname] -p[pass] –databases [dbname][dbname2] > [backupfile.sql] 使用 mysqldump 怎样备份所有数据库? mysqldump -u root -p –all-databases > backupfile.sql 使用 mysqldump 怎样备份指定的数据库? mysqldump -u root -p –databases school hospital > backupfile.sql 使用 mysqldump 怎样备份指定的表? mysqldump –user=root –password=mypassword -h localhost databasename table_name_to_dump table_name_to_dump_2 > dump_only_two_tables_file.sql 我不想要数据,怎样仅获取 DDL? mysqldump -u root -p –all-databases –no-data > backupfile.sql 一次 mysqldump 备份花费多长时间? 这依赖于数据库大小,100 GB 大小的数据库可能花费两小时或更长时间 怎样备份位于其他服务器的远程数据库? mysqldump -h 172.16.25.126 -u root -ppass dbname > dbname.sql –routines 选项的含义是什么? 通过使用 -routines 产生的输出包含 CREATE PROCEDURE 和 CREATE FUNCTION 语句用于重新创建 routines。如果你有 procedures 或 functions 你需要使用这个选项 怎样列出 mysqldump 中的所有选项? mysqldump –help mysqldump 中常用的选项是? All-databases Databases Routines Single-transaction (它不会锁住表) – 一直在 innodb databases 中使用 Master-data – 复制 (现在忽略了) No-data – 它将 dump 一个没有数据的空白数据库 默认所有的 triggers 都会备份吗? 是的 single transaction 选项的含义是什么? –singletransaction 选项避免了 innodb databases 备份期间的任何锁,如果你使用这个选项,在备份期间,没有锁 使用 mysqldump 备份的常用命令是什么? nohup mysqldump –socket=mysql.sock –user=user1 –password=pass –single-transaction –flush-logs –master-data=2 –all-databases –extended-insert –quick –routines > market_dump.sql 2> market_dump.err & 使用 mysqldump 怎样压缩一个备份? 注意: 压缩会降低备份的速度 Mysqldump [options] | gzip > backup.sql.gz mysqldump 备份大数据库是否是理想的? 依赖于你的硬件,包括可用的内存和硬盘驱动器速度,一个在 5GB 和 20GB 之间适当的数据库大小。 虽然有可能使用 mysqldump 备份 200GB 的数据库,这种单一线程的方法需要时间来执行。 怎样通过使用 mysqldump 来恢复备份? 使用来源数据的方法 Mysql –u root –p < backup.sql 在恢复期间我想记录错误到日志中,我也想看看恢复的执行时间? Time Mysql –u root –p < backup.sql > backup.out 2>&1 怎样知道恢复是否正在进行? 显示完整的进程列表 如果数据库是巨大的,你不得不做的事情是? 使用 nohup 在后台运行它 我是否可以在 windows 上使用 mysqldump 备份然后在 linux 服务器上恢复? 是的 我怎么传输文件到目标服务器上去? 使用 scp 使用 sftp 使用 winscp 如果我使用一个巨大的备份文件来源来恢复会发生什么? 如果你的一个数据库备份文件来源,它可能需要很长时间运行。处理这种情况更好的方式是使用 nohup 来在后台运行。也可使用在 unix 中的 screen 代替 默认情况下,mysqldump 包含 drop 数据库吗? 你需要添加 –add-drop-database 选项 怎样从一个多数据库备份中提取一个数据库备份(假设数据库名字是 test)? sed -n '/^-- Current Database: `test`/,/^-- Current Database: `/p' fulldump.sql > test.sql