mysqlpump 数据库备份程序

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 

发表评论

电子邮件地址不会被公开。