mysql同步数据_MySQL 数据备份与同步

本文介绍了使用mysqldump进行MySQL数据备份的多种方法及其优缺点,详细讲解了如何结合mysqlbinlog进行增量备份以解决全量备份的资源消耗问题。此外,还探讨了MySQL主从同步的配置及解决配置过程中遇到的问题,以实现高效、自动化的数据备份策略。
摘要由CSDN通过智能技术生成

前段时间使用MySQL作为数据存储做了一个小项目。项目上线运行了几十天之后,数据已经越来越多,达到了100多M。用mysqldump每天备份全量数据然后传输到另外一台机器上这种方式进行数据备份,久而久之越来越慢。于是开始研究如何利用mysql的主从同步功能实现自动备份。如果实现自动备份,主从服务器之间只需要在有数据更新时同步一点增量数据,不会在备份时占用大量的CPU和内网的网络带宽资源了。介绍主从同步之前,还是先从基础的mysqldump备份开始讲起。

mysqldump

mysqldump是mysql数据库提供的一个数据备份工具。顾名思义,mysqldump可以把mysql数据库导出成sql语句文件,并保存到磁盘上。mysqldump命令产生的.sql文件包含一系列SQL INSERT语句,可以用来进行数据恢复。

假定我们在星期日下午1点进行了备份,此时负荷较低。下面的命令可以完全备份所有数据库中的所有表:

shell> mysqldump --single-transaction --all-databases > backup_sunday_1_PM.sql

各种用法说明

A. 最简单的用法:

mysqldump -uroot -pPassword [database name]> [dump file]

上述命令将指定数据库备份到某dump文件(转储文件)中,比如:

mysqldump -uroot -p123 test > test.dump

生成的test.dump文件中包含建表语句(生成数据库结构哦)和插入数据的insert语句。

B. --opt

如果加上--opt参数则生成的dump文件中稍有不同:

. 建表语句包含drop table if exists tableName

. insert之前包含一个锁表语句lock tables tableName write,insert之后包含unlock tables

C. 跨主机备份

使用下面的命令可以将host1上的sourceDb复制到host2的targetDb,前提是host2主机上已经创建targetDb数据库:

mysqldump --host=host1 --opt sourceDb| mysql --host=host2 -C targetDb

其中:-C指示主机间的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值