本文做者是 NIVAS,原文地址是 mysqldump – 25 tips for DBAsmysql
mysqldump 是文本备份仍是二进制备份linux
它是文本备份,若是你打开备份文件你将看到全部的语句,能够用于从新建立表和对象。它也有 insert 语句来使用数据构成表。
mysqldump 的语法是什么?sql
mysqldump -u [uname] -p[pass] –databases [dbname][dbname2] > [backupfile.sql]
使用 mysqldump 怎样备份全部数据库?数据库
mysqldump -u root -p –all-databases > backupfile.sql
使用 mysqldump 怎样备份指定的数据库?windows
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?socket
mysqldump -u root -p –all-databases –no-data > backupfile.sql
一次 mysqldump 备份花费多长时间?大数据
这依赖于数据库大小,100 GB 大小的数据库可能花费两小时或更长时间
怎样备份位于其余服务器的远程数据库?ui
mysqldump -h 172.16.25.126 -u root -ppass dbname > dbname.sql
–routines 选项的含义是什么?.net
经过使用 -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 来恢复备份?
在恢复期间我想记录错误到日志中,我也想看看恢复的执行时间?
Time Mysql –u root –p < backup.sql > backup.out 2>&1
怎样知道恢复是否正在进行?
显示完整的进程列表
若是数据库是巨大的,你不得不作的事情是?
使用 nohup 在后台运行它
我是否能够在 windows 上使用 mysqldump 备份而后在 linux 服务器上恢复?
是的
我怎么传输文件到目标服务器上去?
若是我使用一个巨大的备份文件来源来恢复会发生什么?
若是你的一个数据库备份文件来源,它可能须要很长时间运行。处理这种状况更好的方式是使用 nohup 来在后台运行。也可以使用在 unix 中的 screen 代替
默认状况下,mysqldump 包含 drop 数据库吗?
你须要添加 –add-drop-database 选项
怎样从一个多数据库备份中提取一个数据库备份(假设数据库名字是 test)?
sed -n '/^-- Current Database: `test`/,/^-- Current Database: `/p' fulldump.sql > test.sql