详解MySQ如何实现数据备份


本文摘自PHP中文网,作者青灯夜游,侵删。

本文给大家介绍MySQ什么是数据备份,让大家了解MySQ实现数据备份的方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

MySQL备份概述

问题:备份和冗余有什么区别?

  • 备份:能够防止由于机械故障以及人为操作带来的数据丢失,例如将数据库文件保存在了其它地方。

  • 冗余:数据有多份冗余,但不等于备份,只能防止机械故障带来的数据丢失,例如主备模式、数据库集群。

备份是什么?

databases Binlog my.cnf /data/xxx(数据目录)

备份数据库,还有日志文件,还有配置文件,尽可能将数据目录里面的文件全部备份。

备份过程中必须考虑因素:

  • 1、必须制定详细的备份计划(备份频率、时间点、周期)(根据当前的业务情况,需要考虑备份的时间和备份数据的大小。数据量太大的话就使用冗灾)。

  • 2、备份数据应该放在非数据库本地,并建议有多份副本

  • 3、必须做好数据恢复的演练(每隔一段时间,对备份的数据在测试环境中进行模拟恢复,保证当出现数据灾难的时候能够及时恢复数据。)(保证数据的可用性)备份完成后进行断电模拟演练。测试数据库是否可以正常启动,数据能否正常进行恢复。

  • 4、根据数据应用的场合、特点选择正确的备份工具。

  • 5、数据的一致性。

  • 6、数据的可用性。

备份类型

逻辑备份

逻辑备份就是在不停业务的情况下进行备份。

备份的是建表、建库、插入等操作所执行SQL语句(DDL DML DCL),适用于中小型数据库,效率相对较低。

(一般在数据库正常提供服务的前提下进行的);如:mysqldump、mydumper、 into outfile(表的导出导入)等

物理备份

直接复制数据库文件,适用于大型数据库环境,不受存储引擎的限制,但不能恢复到不同的MySQL版本。

(一般在数据库彻底关闭或者不能完成正常提供服务的前提下进行的备份);如:tar、cp、xtrabackup、lvm snapshot等

在线热备

在线热备:AB复制(在线实时)(指的是对数据的冗余)

M-S

M-Sn

M-S1-S2

M-M-Sn

备份工具

社区版安装包中的备份工具

mysqldump

  • 企业版和社区版都包含

  • 本质上使用SQL语句描述数据库及数据并导出

  • 在MYISAM引擎上锁表,Innodb引擎上锁行

  • 数据量很大时不推荐使用

mysqlhotcopy

  • 企业版和社区版都包含

  • perl写的一个脚本,本质上是使用锁表语句再拷贝数据

  • 只支持MYISAM数据引擎

企业版安装包中的备份工具

mysqlbackup

  • 在线备份

  • 增量备份

  • 部分备份

  • 在某个特定时间的一致性状态的备份

第三方备份工具

XtraBackup和innobackupex

Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品

Xtrabackup有两个主要的工具:xtrabackup、innobackupex

  • xtrabackup只能备份InnoDB和XtraDB两种数据表,不能备份myisam类型的表,也不能备份数据表结构。

  • innobackupex是将Xtrabackup进行封装的perl脚本,所以能同时备份处理innodb和myisam的存储引擎,但在处理myisam时需要加一个读锁

mydumper

mydumper 多线程备份工具

https://launchpad.net/mydumper/mydumper-0.9.1.tar.gz

备份方法

完全备份

增量备份

差异备份

差异增量备份

? Sunday
An incremental level 0 backup backs up all blocks that have ever been in use in this database.

? Monday through Saturday
On each day from Monday through Saturday, a differential incremental level 1 backup backs up all blocks that have changed since the most recent incremental backup at level 1 or 0. The Monday backup copies blocks changed since Sunday level 0 backup, the Tuesday backup copies blocks changed since the Monday level 1 backup, and so forth.

累计增量备份

? Sunday
An incremental level 0 backup backs up all blocks that have ever been in use in this database.

? Monday - Saturday
A cumulative incremental level 1 backup copies all blocks changed since the most recent level 0 backup. Because the most recent level 0 backup was created on Sunday, the level 1 backup on each day Monday through Saturday backs up all blocks changed since the Sunday backup.

需要掌握的备份方法:

逻辑数据的导入导出(into outfile)mysqldump、mysqlhotcopy、xtrabackup和innobackupex
lvm-snapshot、mysqlbackup

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。更多相关教程请访问mysql数据库图文教程 ,MySQL视频教程,bootstrap视频教程!

以上就是详解MySQ如何实现数据备份的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

MySQl数据库怎么备份?

数据备份可分为哪些类型

MySQl备份还原库命令方法解析(长文)

史上最简单的MySQl数据备份与还原教程

MySQl运行sql文件时出现“check the manual that”是怎么回事

MySQ怎么配置环境变量

MySQ登录提示error 1045 (28000)错误如何解决

安装后如何更改MySQl配置

详解MySQ如何实现数据备份

更多相关阅读请进入《MySQ》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...