mysqlpump工具执行逻辑备份,生成一组SQL语句集可以被用来执行重建源数据库对象定义和表数据。它将dump一个或多个MySQL数据库备份或者传输到另一个MySQL服务器。
mysqlpump有以下功能:
.并行处理数据库和数据库对象,提高dump速度。
.更好地控制那个数据库和数据库对象(表,存储过程,用户账号)将被dump。
.创建压缩输出
.进程指示器
.对于dump文件重新加载,通过在行数据插入后通过添加索引可以为InnoDB表快速的创建第二索引
缺省情况下,mysqlpump会dump所有数据库。为了显性指定其行为,使用–all-databases选项
shell>mysqlpump --all-databases
为了dump单个数据库,或数据库中特定的表,在命令行中指定数据库名,紧接着指定表名:
shell>mysqlpump db_name shell>mysqlpump db_name tab_name1 tab_name2 ...
为了将所有的命名参数作为数据库名,使用–databases选项
shell>mysqlpump --databases db_name1 db_name2 ...
缺省情况下,mysqlpump不会dump用户账号定义,即使你dump了mysql系统数据库包含了授权表。为了dump授权表内容以逻辑格式的形式create user和grant语句输出,使用–users选项并压制所有数据库的dump:
shell>mysqlpump --exclude-databases=% --users
上面命令中的%是一个通配符对于–exclude-databases选项来匹配所有数据库的名字.
为了重加一个dump文件,执行它所包含的语句。例如,使用mysql工具
[mysql@localhost ~]$ mysqlpump --host=192.168.1.250 --port=33306 -uroot -p123456 mysql imptest >imptest_dump.sql mysqlpump: [Warning] Using a password on the command line interface can be insecure. Dump progress: 1/1 tables, 0/2 rows Dump completed in 1259 milliseconds [mysql@localhost ~]$ ls -lrt 总用量 3532 drwxrwxr-x. 2 mysql mysql 6 9月 6 13:03 perl5 -rw-r--r--. 1 mysql mysql 3605196 10月 21 17:27 backup.sql -rw-r--r--. 1 mysql mysql 32 10月 28 11:46 imptest.txt -rw-r--r--. 1 mysql mysql 1253 10月 29 14:49 imptest_dump.sql [mysql@localhost ~]$ cat imptest_dump.sql -- Dump created by MySQL pump utility, version: 5.7.26, Linux (x86_64) -- Dump start time: Tue Oct 29 14:49:10 2019 -- Server version: 5.7.26 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE; SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; SET @@SESSION.SQL_LOG_BIN= 0; SET @OLD_TIME_ZONE=@@TIME_ZONE; SET TIME_ZONE='+00:00'; SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT; SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS; SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION; SET NAMES utf8mb4; CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysql` /*!40100 DEFAULT CHARACTER SET latin1 */; CREATE TABLE `mysql`.`imptest` ( `id` int(11) DEFAULT NULL, `n` varchar(30) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ; INSERT INTO `mysql`.`imptest` VALUES (100,"Max Sydow"),(101,"Count Dracula"); SET TIME_ZONE=@OLD_TIME_ZONE; SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT; SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS; SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; SET SQL_MODE=@OLD_SQL_MODE; -- Dump end time: Tue Oct 29 14:49:11 2019 [mysql@localhost ~]$ mysql --host=192.168.1.250 --port=33306 -uroot -p123456 mysql