作为一名DBA,保障数据的安全是最基本的,也是最重要的职责。一旦灾难发生,不管是人为灾难或是自然灾难,备份恢复往往是最后的救命稻草。
通常数据库的备份类型可分为冷备份和热备份。
冷备份主要使用系统命令完成,是基于物理文件的复制,比如命令cp,特点是快速、事务一致,但是前提是需要停服务,适用的场景相对较少。
热备份可以理解为是在线备份,不会中断业务,数据库依然能对外提供服务。我们绝大多数的场景涉及的都是热备份,接下来要细说的备份工具也都是基于热备份的前提。
目前市面上主流的备份工具有:mysqldump,mydumper,mysqlpump和xtrabackup。下图中我们能看到,从各个层面来看,没有一个工具是最优的,选择备份工具时一定要结合自身的场景来选择,绝对不要盲目跟风。
下面将详细介绍以上4种备份工具。
一、mysqldump
mysqldump 是MySQL的一个命令行工具,用于逻辑备份。可以将数据库和表的结构,以及表中的数据分别导出成:create database, create table, insert into的sql语句。当然也可以导出 存储过程,触发器,函数,调度事件。
mysqldump —help
mysqldump的选项很多,可以给用户提供很多定制化的功能,使用起来十分的灵活,我们可以通过帮助文档来更好的了解这些参数。
mysqldump --help
mysqldump的帮助文档分为两个部分。前一部分是对各种选项的说明,后一部分是mysqldump的各种选项的默认值。
mysqldump默认选项
mysqldump选项的默认值部分是TRUE,部分是FALSE,部分没有默认值。我们主要关心的是默认值为TRUE的选项,看看mysqldump默认给我们打开了哪些选项以及它们的具体含义。
mysqldump登录服务器的相关选项
/* Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf The following groups are read: mysqldump client The following options may be given as the first argument: --no-defaults Don't read default options from any option file, except for login file. --defaults-file=# Only read default options from the given file #. --defaults-extra-file=# Read this file after the global files are read. --defaults-group-suffix=# Also read groups with concat(group, suffix) --login-path=# Read this path from the login file. */ |
mysqldump 作为一个客户端工具,它会去上诉目录中寻找 my.cnf 文件,然后读取该文件中 [mysqldump] 和 [client] 下面的选项;
那些 defaults 相关的选项都是为了另外指定配置文件和登录文件,极少使用;
-u, --user=name User for login if not current user.
-p, --password[=