一、使用mysqldump进行备份

1、完整备份所有数据库

mysqldump -u root -p --all-databases > E:/all.sql

在mysql8之前,存储过程和事件存储在mysql.proc和mysql.event表中。

从mysql8开始,相应对象的定义存储在数据字典中,这些表不会被备份。

要将存储过程和事件也包含,请使用如下语句:

mysqldump -u root -p --all-databases --routines --events > E:/all.sql

2、时间点恢复

要获得时间点恢复,应该指定--single-transaction 和 --master-data

--single-transaction 在备份之前,会将事务隔离级别设为REPEATABLE READ模式,并执行 START TRANSACTION 来提供一致的备份。

--master-data 将服务器的二进制日志的位置输出到 sql 文件。

mysqldump -u root -p --all-databases --routines --events --single-transaction --master-data > E:/all.sql

--master-data = 2表示在导出过程中,记录当前库的binlog和pos点,并在导出文件中注释这一行。

--master-data = 1表示在导出过程中,记录当前库的binlog和pos点,并在导出文件中不注释这一行。

3、在从库导出时,记录主库的二进制日志位置

mysqldump -u root -p --all-databases --routines --events --single-transaction --dump-slave > E:/all.sql

--dump-slave = 2表示在导出过程中,记录主库的binlog和pos点,并在导出文件中注释这一行。

--dump-slave = 1表示在导出过程中,记录主库的binlog和pos点,并在导出文件中不注释这一行。

4、指定数据库和表导出

mysqldump -u root -p --databases 数据库 > E:/bak.sql
mysqldump -u root -p --databases 数据库 --tables 数据表 > E:/bak.sql

5、忽略表

mysqldump -u root -p --databases 数据库 --ignore-table=数据库.数据表 > E:/bak.sql

6、指定行

mysqldump -u root -p --databases 数据库 --tables 数据表 --where="条件" > E:/bak.sql

或者用limit限制结果集

mysqldump -u root -p --databases 数据库 --tables 数据表 --where="条件 LIMIT 条数" > E:/bak.sql

7、导出远程服务器

mysqldump -u root -p -h 主机IP --all-databases --routines --events --triggers > E:/all.sql

8、用于与其他服务器合并数据的备份

mysqldump -u root -p --databases 数据库 --skip-add-drop-table --replace > E:/bak.sql

--skip-add-drop-table: 不会将drop table语句写入导出文件中。

--replace:将使用replace into语句而不是insert语句导出。

二、使用mysqlpump进行备份

1、并行处理,通过指定线程数量加速备份过程

mysqlpump --default-parallelism=8 > E:/all.sql

2、也可以指定每个数据库的线程数

mysqlpump -u root -p --parallel-schemas=4:数据库 --default-parallelism=2 > E:/all.sql

3、排除或包含数据库

mysqlpump -u root -p --include-databases=%t > E:/bak.sql

对以 t 结尾的所有数据库进行备份,多个数据库用逗号分隔,数据库名可以使用%或_通配符。

除此之外,还有类似--include-events,--include-routines,--include-tables,--include-triggers,--include-users等

mysqlpump -u root -p --exclude-databases=a% > E:/bak.sql

排除以 a 开头的数据库进行备份,多个数据库用逗号分隔,数据库名可以使用%或_通配符。

除此之外,还有类似--exclude-events,--exclude-routines,--exclude-tables,--exclude-triggers,--exclude-users等

4、备份用户

mysqlpump -u root -p --exclude-databases=% --users > E:/user.sql

可以通过--exclude-users来排除某些用户

mysqlpump --exclude-databases=% --exclude-users=root --users > E:/user.sql

5、压缩备份

通过使用--compress-output = lz4 或 --compress-output = zlib

mysqlpump -u root -p --compress-output=lz4 > E:/all.lz4
mysqlpump -u root -p --compress-output=zlib > E:/all.zlib

通过如下语句进行解压

lz4_decompress E:/all.lz4 all.sql
zlib_decompress E:/all.zlib all.sql

  

三、使用mydumper进行备份

mydumper需要单独安装,官网:https://github.com/maxbube/mydumper/releases

1、完全备份

mydumper -u root --password=密码 --outputdir 导出路径

2、备份单独的表

mydumper -u root --password=密码 -B 数据库 -T 数据表 --triggers --events --routines --outputdir 导出路径

3、使用正则表达式来备份特定数据库

mydumper -u root --passoword=密码 --regex '^(?!(mysql|test))' --outputdir 导出路径

从备份中排除mysql和test数据库。

4、备份大表

mydumper -u root --password=密码 -B 数据库 -T 数据表 --triggers --events --routines --rows=100000 -t 8 --trx-consistency-only --outputdir 导出路径

--rows 表示将表分成多少行的块

--trx-consistency-only 如果是innodb,将使锁定最小化。

-t 指定线程数量

5、压缩备份

mydumper -u root --password=密码 -B 数据库 -T 数据表 -t 8 --trx-consistency-only --compress --outputdir 导出路径

6、仅备份数据

通过--no-schemas选项来跳过 schema 并且仅备份数据

mydumper -u root --password=密码 -B 数据库 -T 数据表 -t 8 --no-schemas --compress --trx-consistency-only --outputdir 导出路径

  

四、使用普通文件进行备份

可以通过直接复制数据目录中的文件来进行备份,需先关闭mysql,复制文件,然后启动mysql。

五、使用xtrabackup进行备份

https://www.percona.com/downloads/XtraBackup/LATEST/

1、全量备份

xtrabackup --defaults-file=/etc/my.cnf --host=主机IP --user=用户名 --password=密码 --port=端口 --backup --parallel=3 --target-dir=备份目录

--defaults-file 数据库配置文件

--backup 执行备份操作

--parallel 备份时并发的线程数

--target-dir 备份文件的目录

2、增量备份

xtrabackup --defaults-file=/etc/my.cnf \
--host=主机IP \
--user=用户名 \
--password=密码 \
--port=3306 \
--backup \
--parallel=3 \
--target-dir=增量备份目录 \
--incremental-basedir=全量备份目录 \

增量备份是基于全量备份的,--incremental-basedir 指向全量备份目录

mysql 数据库备份的多种方式的更多相关文章

  1. MySQL数据库备份的4种方式

    MySQL备份的4种方式 总结: 备份方法 备份速度 恢复速度 便捷性 功能 一般用于 cp 快 快 一般.灵活性低 很弱 少量数据备份 mysqldump 慢 慢 一般.可无视存储引擎的差异 一般 ...

  2. MySQL数据库备份详解

    原文:MySQL数据库备份详解 对于任何数据库来说,备份都是非常重要的 数据库复制不能取代备份的作用 比如我们由于误操作,在主数据库上删除了一些数据,由于主从复制的时间很短,在发现时,从数据库上的数据 ...

  3. Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复

    Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工 ...

  4. Java实现MySQL数据库备份(二)

    权声明:本文为博主原创文章,未经博主允许不得转载. 博客<Java实现MySQL数据库备份(一)>使用I/O流的方式实现了MySQL数据库的备份,这种方法比较繁杂,下面介绍另一种备份MyS ...

  5. MySQL数据库备份还原(基于binlog的增量备份)

    MySQL数据库备份还原(基于binlog的增量备份) 一.简介 1.增量备份      增量备份 是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件.这就意味 ...

  6. PHP - Mysql数据库备份类

    使用方法: require_once("backdata.class.php"); $link =@mysql_connect("localhost",&quo ...

  7. Java达到MySQL数据库备份(两)

    博客<Java实现MySQL数据库备份(一)>使用I/O流的方式实现了MySQL数据库的备份,这样的方法比較繁杂.以下介绍还有一种备份MySQL数据库的方法: import java.io ...

  8. MySQL用户管理、常用sql语句、MySQL数据库备份恢复

    1.MySQL用户管理 给远程登陆用户授权:grant all on *.* to 'user1'@'127.0.0.1' identified by '123456' (这里的127.0.0.1是指 ...

  9. ref:详解MYSQL数据库密码的加密方式及破解方法

    ref:https://blog.csdn.net/paul123456789io/article/details/53081921 MySQL数据库用户密码跟其它数据库用户密码一样,在应用系统代码中 ...

随机推荐

  1. CSS中clear属性的both、left和right浅析

    前端开发中,我们知道clear属性有none.both.left和right四个值. 它们的具体含义如下: none:允许两边都可以有浮动对象: both:不允许有浮动对象; left:不允许左边有浮 ...

  2. userdel删除用户失败提示:userdel: user * is currently logged in 解决方法

    操作环境 SuSE10/SuSE11 问题现象   执行userdel -rf oracle删除用户失败,提示userdel: user 'oracle' is currently logged in ...

  3. Android中查看SQLite中字段数据的两种方式

    方式一:ADB Pull 通过adb pull导出*.db文件到PC的文件夹中,通过可视化工具 SQLiteExpertPers 进行查看.编辑: adb pull /data/data/com.jo ...

  4. angularjs 做不到实时脏值查询

    angularjs 做不到脏值查询 ,数据请求过来,不操作其他按钮,请求的值就是展示不出来:(相当于,只有手动触发,angularjs内部才会把脏值查询出来): 解决办法:在请求过来的值旁边加上$sc ...

  5. Nginx搭建hls流媒体服务器

    第一种方案:ffmpeg+nginx   新的ffmpeg已经支持HLS.(本人也参与了代码供献,给自己做个广告:))   点播:   生成hls分片:   ffmpeg -i <媒体文件> ...

  6. 使用firefox插件httperrequest,模拟发送及接收Json请求 【转】

    转自[http://blog.csdn.net/feixue1232/article/details/8535212] 目标:使用httpreques\Json-Handle\tcpdump\wire ...

  7. Spring-Cloud的版本是如何定义的

    https://blog.csdn.net/peterwanghao/article/details/79633275 Finchley 与 Spring Boot 2.0.x, 兼容,不支持 Spr ...

  8. 2018面向对象程序设计(Java)第14周学习指导及要求

    2018面向对象程序设计(Java)第14周学习指导及要求(2018.11.29-2018.12.2)   学习目标 (1) 掌握GUI布局管理器用法: (2) 掌握各类Java Swing组件用途及 ...

  9. django创建一个简单的web站点

    一.新建project 使用Pycharm,File->New Project…,选择Django,给project命名 (project不能用test命名)   新建的project目录如下: ...

  10. as3.0两点之间简单的运动,斜着运动,任意两点

    import flash.utils.Timer;import flash.events.TimerEvent;//fixed结束点//sprite初始点var fixedX:Number = fix ...