千家信息网

mysql数据库备份怎么实现

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍mysql数据库备份怎么实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!本文实例讲述了mysql 数据库备份的多种实现方式。分享给大家供大家参考,具体如下:一
千家信息网最后更新 2026年11月01日mysql数据库备份怎么实现

这篇文章主要介绍mysql数据库备份怎么实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

本文实例讲述了mysql 数据库备份的多种实现方式。分享给大家供大家参考,具体如下:

一、使用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.sqlmysqldump -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.lz4mysqlpump -u root -p --compress-output=zlib > E:/all.zlib

通过如下语句进行解压

lz4_decompress E:/all.lz4 all.sqlzlib_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数据库备份怎么实现"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

数据 备份 数据库 文件 密码 数据表 过程 目录 路径 语句 一行 注释 用户 线程 存储 主机 增量 服务器 服务 事件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳九邦互联网科技有限公司 金融科技创新监管互联网金融 奇酷互联网络科技 壹账通互联网科技 易通互联网络科技有限公司 互联网科技logo 佩信高科技互联网 科技赋能互联网健康 济南华为互联网科技产业总部基地 互联网科技博主是什么意思 宁波青枫互联网科技有限公司 以后互联网后是啥科技 中国航天科技大学国际工业互联网 中国互联网十大科技股排名 工业互联网展湾科技股份有限公司 小米互联网科技园入驻 卡尔迅互联网科技有限公司 互联网科技接地气 伍佰万互联网科技是干嘛的 互联网科技创业有什么好项目 互联网科技缩写 电子科技大学互联网 科技与互联网的利与弊 中国互联网有什么科技含量 互联网时代科技改变生活 速维有品互联网信息科技(苏州)有限公司 燊美集互联网科技有限公司 黑云互联网科技有限公司 恒生科技指数 中概互联网 优雇互联网科技有限公司
0