mysql备份与恢复 mysqldump+binlog xtrabackup

数据备份的方式:

物理备份:拷贝存放库和表文件的目录  cp  tar

逻辑备份:备份创建库和表插入记录时的sql语句

数据备份策略:

完整备份:备份数据库服务器上的所有库、所有表。

差异备份:备份自完整备份后,生成的新数据。

增量备份:备份自上一次备份后,生成的新数据。

完整备份+差异备份

完整备份+增量备份

mysqldump 做完整备份

mysqldump  -hser_ip  -uusername  -ppassword  数据名 > 目录/x.sql

数据库备份文件以.sql结尾

[[email protected] ~]# mysqldump -hlocalhost -uroot -p20140103 mysql  > /root/mysql.sql

数据库名的表示方式:

数据库名:备份此数据库里的所有表。

--all-databases :备份服务器上所有数据库里的所有表。

数据库名  表名: 备份某个数据库里的某个表。

-B 数据库名1 数据库名2 数据库名N: 对某几个数据库做备份。

备份文件名不能重名,否则会用当前备份覆盖上一次备份。

数据恢复:

mysql  -hser_ip  -uusername  -ppassword  数据名 < 备份文件名

使用mysql的binlog日志实现增量备份

记录在数据库服务器上执行的使数据发生改变的sql语句。

启用binlog日志(二进制日志)

[[email protected] ~]# vim /etc/my.cnf
[mysqld]
log-bin=/binlog/plj-bin.log  指定binlog的目录和文件名

mysql  用户必须对/binlog目录有w权限

指定路径的时候如果改路径必须将路径和文件名全写

cd  /var/lib/mysql
localhost-bin.000001
localhost-bin.index

格式:mysqlbinlog  [选项]   binlog文件

使用binlog日志恢复数据

mysqlbinlog  binlog文件  | mysql  -hlocalhost  -uroot  -p

记录方式:[选项]

偏移量

--start-position=起始位置

--stop-position=结束位置

时间点

--start-datetime= ‘YYYY-mm-dd  HH:MM:SS’

--stop-datetime= ‘YYYY-mm-dd  HH:MM:SS’

手动生成新的binlog日志

重启数据库服务(不建议);

mysql  -hlocalhost  -uroot  -ppassword  -e “flush  logs”

-e  在命令行执行sql语句

mysqldump  -hlocalhost  -uroot  -ppassword  --flush-logs  库名 > x.sql

删除binlog日志

登陆状态下                                                 purge  master  logs  to  ‘binlog文件名’; //把指定的binlog文件前的binlog文件全删掉

reset  master;   //删除所有的binlog文件

Xtrabackup第三方软件做数据备份

mysqldump  备份和恢复的时候锁表

binlog 日志  需要自己查看从哪条记录恢复和恢复到哪

Xtrabackup开源,能在线热备份,在备份的时候不会锁库和表

主要组件

Xtrabackup:C程序,支持innodb/xtradb

innobackupex: 以perl脚本封装xtrabackup,还支持myisam能做完整备份和增量备份

语法格式

xtrabackup_56  选项

选项决定命令要执行什么样的操作

选项:

--backup   执行备份操作

--target-dir  备份的目标文件夹

--datadir  备份的原始文件夹(mysql数据库位置)

--prepare  准备恢复数据

--incremental-basedir 增量备份时,指定参照的完整备份的路径

--incremental-dir 准备回复目录时,指定增量备份的路径

用xtrabackup做完整备份(表的存储引擎要是innodb)

只备份表中的数据 不备份表结构 恢复的时候必须保证表是存在的

完整备份

[[email protected] ~]# xtrabackup_56 --datadir=/var/lib/mysql/ --backup --target-dir=/dbbak/first

恢复日志信息

[[email protected] ~]# xtrabackup_56 --prepare --target-dir=/dbbak/first/ --datadir=/var/lib/mysql/

拷贝数据文件

[[email protected] ~]# cp /dbbak/first/db100/a.ibd /var/lib/mysql/db100/a.ibd

用xtrabackup做增量备份与增量恢复

第一次完整备份
[[email protected] ~]# xtrabackup_56 --datadir=/var/lib/mysql/ --backup --target-dir=/dbbak/first/
完整备份后的第一次增量备份
[[email protected] ~]# xtrabackup_56 --backup --datadir=/var/lib/mysql/ --incremental-basedir=/dbbak/first --target-dir=/dbbak/two/
完整备份后的第二次增量备份
[[email protected] ~]# xtrabackup_56 --backup --datadir=/var/lib/mysql/ --incremental-basedir=/dbbak/two --target-dir=/dbbak/three/
依次类推

增量恢复

[[email protected] ~]# xtrabackup_56 --prepare --target-dir=/dbbak/first/
[[email protected] ~]# xtrabackup_56 --prepare --target-dir=/dbbak/first --incremental-dir=/dbbak/two/
[[email protected] ~]# xtrabackup_56 --prepare --target-dir=/dbbak/first --incremental-dir=/dbbak/three/

拷贝数据

[[email protected] ~]# cp /dbbak/first/db200/a.ibd /var/lib/mysql/db200/a.ibd

检查数据是否恢复正常

时间: 2024-10-10 05:57:35

mysql备份与恢复 mysqldump+binlog xtrabackup的相关文章

mysql备份与恢复 mysqldump

备份:备份一个数据库(shell中执行,下同):mysqldump -uusername -ppassword -hhostname --databases db_name > /path/db_name.sql 备份多个数据库mysqldump -uusername -hhostname -ppassword --databases db1_name db2_name db3_name >/path/multidb_name.sql 备份所有数据库mysqldump -uusername -

数据库的备份与恢复 mysqldump+binlog方式

实验说明: (1)mysqldump:逻辑备份工具,适用于所有存储引擎,可用于温备,能实现完全备份,部分备份:对InnoDB存储引擎支持热备: binlog:二进制日志 二进制日志也叫作变更日志,主要用于记录修改数据或有可能引起数据改变的mysql语句,并且记录了语句发生时间.执行时长.操作的数据等等.所以说通过二进制日志可以查询mysql数据库中进行了哪些变化.一般大小体积上限为1G (2)本次实验使用备份方式:完全备份+增量备份. (3)musqldump命令的语法格式 mysqldump

MySQL备份与恢复常用方法总结(mysqldump/xtrabackup/lvm快照备份/二进制日志及时点恢复)

MySQL备份与恢复常用方法总结 (mysqldump/xtrabackup/lvm快照备份/逻辑备份与恢复/二进制日志及时点恢复) 自言:学习在于总结,把所了解的类似东西放到一起更能加深记忆 一.了解备份相关知识 1)按服务器备份时状态可分为:     热备份:读.写不受影响:     温备份:仅可以执行读操作:     冷备份:离线备份:读.写操作均中止:2)按服务器备份数据集可分为:     物理备份:复制数据文件:     逻辑备份:将数据导出至文本文件中:3)按服务器备份数据量可分为:

mysqldump+binlog的备份与恢复

数据备份类型 按业务划分:可分为完全备份,增量备份,差异备份. 完全备份:就是对整个数据库的数据和数据结构进行备份,好处是很直观,容易被人理解.不足之处:由于每天都对系统进行完全备份,因此在备份数据中大量是重复的,这些重复数据占用空间,增加成本,备份量大,所需时间长. 增量备份:就是每次备份的数据只是相当于上一次备份后增加和修改过的数据.优点:没有重复的数据,节省空间,缩短备份时间.缺点:发生灾难时,恢复数据麻烦.另外这种备份的可靠性也差,在这种备份下,各备份数据间的关系就像链子一样,一环套一环

Mysql 备份恢复与 xtrabackup备份

1.1 备份的原因 备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低.衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(RTO),前者重点关注能恢复到什么程度,而后者则重点关注恢复需要多长时间. 1.1.1 备份的目录 做灾难恢复:对损坏的数据进行恢复和还原 需求改变:因需求改变而需要把数据还原到改变以前 测试:测试新功能是否可用 1.1.2 备份中需要考虑的问题 可以容忍丢失多长时间的数据: 恢复

MySQL备份与恢复

body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10px; padding-bottom: 10px; background-color: white; padding: 30px } body>*:first-child { margin-top: 0 !important } body>*:last-child { margin-bottom:

42-1 mysql备份与恢复

01 mysql备份与恢复 1.mysqldump备份数据库(使用场合:1G以下的数据库) 1)单个数据库 [[email protected] ~]# mysqldump -uroot --databases hellodb > /root/helldb01.sql 2)多个数据库 [[email protected] ~]# mysqldump -uroot --databases hellodb mydb > /root/hellodb_mydb.sql 3)备份全部数据库 [[emai

ch5 MySQL 备份与恢复

第 5 章 MySQL 备份与恢复 前言 数据库的备份与恢复一直都是 DBA 工作中最为重要的部分之一,也是基本工作之一.任何正式环境的数据库都必须有完整的备份计划和恢复测试,本章内容将主要介绍 MySQL 数据库的备份与恢复相关内容. 5.1 数据库备份使用场景 你真的明白了自己所做的数据库备份是要面对什么样的场景的吗? 我想任何一位维护过数据库的人都知道数据库是需要备份的,也知道备份数据库是数据库维护必不可少的一件事情.那么是否每一个人都知道自己所做的备份到底是为了应对哪些场景的呢?抑或者说

mysqldump和xtrabackup备份原理实现说明

背景: MySQL数据库备份分为逻辑备份和物理备份两大类,犹豫到底用那种备份方式的时候先了解下它们的差异: 逻辑备份的特点是:直接生成SQL语句,在恢复的时候执行备份的SQL语句实现数据库数据的重现. 物理备份的特点是:拷贝相关数据文件. 这二种备份差异 :逻辑备份其备份.还原慢,但备份文件占用的空间小:物理备份其备份还原快,备份文件占用空间大. 到底选择那种备份方式,具体根据自己的实际情况,如需要的是热备还是冷备?数据量大不大?磁盘空间够不够等因素决定. 逻辑备份工具主要有:mysqldump