Mysql备份和AB复制的过程和步骤

Mysql 的完全备份有2种方式

1 使用系统命令直接将Mysql数据拷贝进行备份

例如

/etc/init.d/mysqld stop

tar cvfz /var/lib/mysql/mydb_backup.tar.gz /tmp

/etc/init.d/mysqld start

此种方法必须要先关闭Mysql服务,这也是一大弊端,而且此备份出的数据不支持不同版本的Mysql进行恢复!

所以此法生产环境中很少用

2 使用mysqldump 进行备份

mysqldump 备份的原理是,将对数据库中的内容修改所生成的sql 语句保存指定位置;恢复时只要将该sql 语句文件导出交给新mysql 重新执行一次,实现恢复数据。

  例如

mysqldump -u root -p 123 > /var/test/123.sql

如果需要备份mysql 中的所有数据库,使用 -all-databases

mysqldump -u root -p --all-databases > /var/test/123.sql

恢复数据的命令如下:

mysql -u root -p 123 < /var/test/123.sql

mysql 的增量备份

增量备份是比完全备份作的频率高的多的操作;

mysql 的增量备份使用的方法的是用过mysql 的二进制日志来实现的;

mysql 的二进制日志中保存了对mysql 的所有操作sql 语句;

mysql 的二进制日志功能默认是关闭着的,我们需要自己手动去打开;

vim /etc/my.cnf 编辑添加

log-bin=noah(台头) 如果不加台头则默认为binlog;

重新启动服务后就会在/var/lib/mysql 中发现binlog 二进制文件;

二进制的日志文件我们需要使用命令mysqlbinlog 来查看;

那么,如何使用二进制文件来恢复数据呢;

1 使用时间来恢复

例如

mysqlbinlog --start-date="2009-05-20 10:51:01" --stop-date="2009-05-20 11:52:12" /var/lib/mysql/binlog.000001 | mysql -uroot -p123456

将这2段时间之间对mysql 进行操作的sql 语句输出给mysql 执行;这样就恢复这段时间内的数据;

但是这里的时间只精确到秒,那么在同一秒内有许多sql 语句的话,就会出现问题了;因此,我们引入了更加精确的恢复的方法,如下;

2 使用位置号来恢复

例如

mysqlbinlog --start-position="457" --stop-position="1009" /var/lib/mysql/binlog.000001 | mysql -uroot -p123456

在mysql 二进制日志中会设定一个唯一的log_pos;我们就利用这个唯一的position 进行恢复数据的操作;这种方法不会忽略掉任何的数据;

时间: 2025-01-20 13:56:06

Mysql备份和AB复制的过程和步骤的相关文章

Mysql AB 复制

目录(?)[-] 关于MySQL AB复制 快速打包和安装MySQL  MySQL AB单向复制 MySQLAB双向复制 MySQL多级主从复制 解决AB双向复制主键冲突 关于MySQL AB复制 本文讲解如何快速打包和安装MySQL, MySQL AB复制,MySQL AB双向复制,MySQL多级主从复制,解决AB双向复制主键冲突.   首先我们先介绍什么是MySQL AB复制.   AB复制又称主从复制,实现的是数据同步.如果要做MySQL AB复制,数据库版本尽量保持一致.如果版本不一致,

高性能Mysql主从架构的复制原理及配置详解(转)

温习<高性能MySQL>的复制篇. 1 复制概述       Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器

高性能Mysql主从架构的复制原理及配置详解

1 复制概述       Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.

RDS中的MYSQL备份恢复

RDS使用mysqldump对 MySQL 数据库进行逻辑全量备份,使用开源软件Xtrabackup进行物理全量备份,是实例级别的备份. 用户登录RDS控制台,可以下载备份文件.按照 利用逻辑备份文件恢复到自建数据库-MySQL和利用物理备份文件恢复到自建数据库-MySQL中的操作步骤,实现数据的恢复. 本文主要从原理的角度来介绍MySQL数据库的备份和恢复,希望能让用户更加了解RDS的备份恢复机制.   一.备份类型介绍 1. 按备份操作方式:物理备份和逻辑备份 备份方式 优点 缺点 逻辑备份

MySQL 备份和恢复

MySQL 备份和恢复 本文讨论 MySQL 的备份和恢复机制,以及如何维护数据表,包括最主要的两种表类型:MyISAM 和 Innodb 目前 MySQL 支持的免费备份工具有:mysqldump.mysqlhotcopy,还可以用 SQL 语法进行备份:BACKUP TABLE 或者 SELECT INTO OUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件.MyISAM 表是保存成文件的形式,因此相对比较容易备份,上面提到的几种方法都可以使用.I

mysql备份的三种方式详解_Mysql

一.备份的目的 做灾难恢复:对损坏的数据进行恢复和还原需求改变:因需求改变而需要把数据还原到改变以前测试:测试新功能是否可用 二.备份需要考虑的问题 可以容忍丢失多长时间的数据:恢复数据要在多长时间内完: 恢复的时候是否需要持续提供服务:恢复的对象,是整个库,多个表,还是单个库,单个表. 三.备份的类型 1.根据是否需要数据库离线 冷备(cold backup):需要关mysql服务,读写请求均不允许状态下进行:温备(warm backup): 服务在线,但仅支持读请求,不允许写请求:热备(ho

几种MySQL备份常用方法整理

总结下几种常用的mysql备份方法: 一.直接拷贝数据库文件 首先把内存中的数据都刷新到磁盘中,同时锁定数据表,以保证拷贝过程中不会有新的数据写入:  代码如下 复制代码 mysql>FLUSH TABLES WITH READ LOCK; 使用tar或cp等命令备份数据库文件,这里使用tar: tar zcvf /backup/mysql_$(date "+%Y%m%d").tar.gz /var/lib/mysql c.备份完后解锁数据表 mysql> unlock t

学习mysql数据库主从同步复制原理

MySQL的Replication(英文为复制)是一个多MySQL数据库做主从同步的方案,特点是异步复制,广泛用在各种对MySQL有更高性能.更高可靠性要求的场合.与之对应的是另一个同步技术是MySQL Cluster,但因为MySQL Cluster配置比较复杂,所以使用者较少. MySQL的Replication是一个异步复制的过程(mysql5.1.7以上版本分为异步复制和半同步两种模式),它是从一个Mysql instance(instance英文为实例)(我们称之为Master)复制到

使用MYSQL备份数据恢复

mysql|备份|恢复|数据    数据库毁坏发生的原因有许多,且程度各不相同.如果幸运的话,可能是一两个表的小毁坏(例如,如果您的机器由于断电而暂时停机).如果不是这样,可能需要置换整个的数据目录(例如,如果某个磁盘瘫痪而且数据目录在它上).在其他情况下也需要恢复操作,例如,当用户错误地删除数据库或表时,或者错误地删除表的内容时.不论这些不幸的事件发生是由于什么原因,都需要恢复它们.    如果表被毁坏但没有丢失,可试着用myisamchk 或isamchk 来修复它们.如果修复实用程序能修复