返回顶部
首页 > 资讯 > 数据库 >Mysql备份还有这么多套路,还不了解下?
  • 400
分享到

Mysql备份还有这么多套路,还不了解下?

Mysql备份还有这么多套路,还不了解下? 2017-10-06 04:10:49 400人浏览 猪猪侠
摘要

逻辑备份和物理备份 逻辑备份 逻辑备份用于备份数据库的结构(CREAET DATABASE、CREATE TABLE)和数据(INSERT),这种备份类型适合数据量小、跨sql服务器、需要修改数据等场景。如Mysqldump命令就是产生一个

逻辑备份和物理备份

逻辑备份

逻辑备份用于备份数据库的结构(CREAET DATABASE、CREATE TABLE)和数据(INSERT),这种备份类型适合数据量小、跨sql服务器、需要修改数据等场景。如Mysqldump命令就是产生一个逻辑备份工具,使用mysqldump输出的文件包含CREATE TABLEINSERT语句,能够直接重建表内容和表结构。

使用逻辑备份有以下优势和劣势:

优势
  • 可移植性高,SQL语句可直接适用于其他SQL服务器;
  • 在数据恢复之前可增加、修改数据;
  • 数据恢复粒度小可以是服务器、数据库、表级别;
  • 使用文本格式,可读性高;
劣势
  • 备份时需要访问mysql服务器,影响其他客户端;
  • 需要将数据转换成逻辑格式(SQL,CSV);
  • 如果命令运行在客户端,mysql服务器还需要将数据发送给客户端;
  • 因为输出格式为文本文件,占用空间较大;

物理备份

物理备份是包括存储数据库内容的目录和文件的副本,这种类型的备份适用于需要在出现问题时快速恢复的大型重要数据库。

优势
  • 完整的Mysql文件和目录备份,只需要复制文件不需要转换,速度比逻辑备份更快;
  • 除了备份数据,还能备份配置文件和日志文件;
  • 不需要运行Mysql服务器就可以完成备份;
  • 备份工具简单使用cp、scp、tar命令即可完成备份;
劣势
  • 可移植性不高,恢复数据只适用于相同或类似的机器上;
  • 为了保持数据库文件的一致性,需要停机备份;
  • 恢复粒度不能按表或用户恢复;

在线备份和离线备份

在线备份需要mysql服务器处理运行状态,以便备份工具从mysql服务器中获取数据。离线备份表示mysql服务器处理停止状态。两种备份形式也可以称为“热备份”和“冷备份“。

在线备份的主要特性

  • 备份不需要停机,对其他客户端影响较小其他连接能够正常访问mysql服务器(依赖操作类型,如读操作);
  • 备份需要加,以免在备份期间对数据做出修改;

离线备份的主要特性

  • 备份期间服务器不可用;
  • 备份过程更简单,不会受到客户端的干扰;

逻辑备份(mysqldump使用)

mysqldump属于逻辑备份命令,使用mysqldump备份的优势是它非常方便和灵活,可以直接编辑输出文件或者使用导入到其他的SQL服务器中去,但是它不能用作备份大量数据的快速解决方案,对于大数据量,即使备份花费的时候可以接受,但是恢复数据也可能会非常缓慢,因为执执行SQL语句会涉及磁盘I/O进行插入,创建索引等。mysqldump的使用方式非常简单:

shell> mysqldump [options] db_name [tbl_name ...]
shell> mysqldump [options] --databases db_name ...
shell> mysqldump [options] --all-databases

使用mysqldump备份时要注意:数据库的一致状态,在执行mysqldump命令时要保证数据不会再发生变更,保持数据的一致性有二种方法:

  • 使Mysql服务器只读
  • 使用事务加上隔离级别:REPEATABLE READ

使用REPEATABLE READ事务隔离级别执行mysqldump命令(使用事务保持数据库的一致状态):

mysqldump --master-data=2 
 --flush-logs  
 --single-transaction  
 --all-databases > /backup/`date +%F-%H`-mysql-all.sql  

备份参数说明:

  • --master-data: 将二进制日志文件的名称和位置备份
  • --flush-logs: 开始备份之前刷新mysql服务器日志文件
  • --single-transaction:开始备份之前设置事务隔离级别为REPEATABLE READ然后发送一个START TRANSACTION命令。
  • --all-databases:备份所有数据库

物理备份(复制原始文件)

为了保证复制文件的完整性,备份原始文件最好是停止mysql服务器,复制原始文件备份由以下步骤完成:

  1. 停止mysql服务器
    $ mysqladmin shutdown
  2. 使用合适的工具复制原始数据文件
    $ tar cf /tmp/dbbackup.tar ./data
  3. 备份完成后,运行mysql服务器
    $ mysqld_safe

使用主从备份模式

使用mysqldumptar备份或多或少都会对业务产生影响,使用mysqldump备份需要对数据加锁,加锁就意味着其他客户端操作受到限制。使用tar命令需要停止服务器直接导致数据库服务器不可用,有没有办法能解决这两种问题呢?答案是有的,就是使用主从备份模式。

在单机的基础上增加一台Slave机器对Master机器的数据进行同步:

开始备份时对Slave进行备份,这样即使Slave停机或对数据加锁也不会影响业务的正常使用,如果公司有条件或业务非常重要可以选择这种方案来备份数据。

欢迎关注微信公众号《架构文摘》,高质量技术文章第一时间推送。

您可能感兴趣的文档:

--结束END--

本文标题: Mysql备份还有这么多套路,还不了解下?

本文链接: https://lsjlt.com/news/2507.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Mysql备份还有这么多套路,还不了解下?
    逻辑备份和物理备份 逻辑备份 逻辑备份用于备份数据库的结构(CREAET DATABASE、CREATE TABLE)和数据(INSERT),这种备份类型适合数据量小、跨SQL服务器、需要修改数据等场景。如mysqldump命令就是产生一个...
    99+
    2017-10-06
    Mysql备份还有这么多套路,还不了解下?
  • 2022了 为啥 php 还有这么多人在用?
    说实话,php成本就是低,真正懂点程序的老板都愿意招php。 我看市面上那些需求,基本上php都能搞定,php性能也没那么差,php无非是代码层面的东西,真正的性能瓶颈还是在数据库,项目搭起来,mq,缓存这才是用来解决性能问题的利器。 我之...
    99+
    2023-09-13
    php 开发语言
  • mysql数据库太大了怎么备份与还原
    小编给大家分享一下mysql数据库太大了怎么备份与还原,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!命令:mysqlhotcopy这个命令会在拷贝文件之前会把表锁住,并把数据同步到数据文件...
    99+
    2024-04-02
  • 备份校验两不误,MySQL自动备份还原校验设计详解
    作者介绍庞阔,优朋普乐传媒运维基础部经理。负责数据库运营管理及平台设计开发,监控设计改进,问题跟踪处理,机房网络维护管理,目前四个专利已在专利局申请中。擅长数据库运维管理及Shell、Perl、PHP编写。...
    99+
    2024-04-02
  • 除了find命令,还有这么多文件查找命令!
    文件搜索命令远不止一个 find 命令,还有很多。本文就对 Linux 下文件搜索命令进行一个科普,让你能够在短时间内找到自己需要的文件。在系统里查找文件,是所有工程师都必备的技能(不管你用的是 Windows...
    99+
    2023-06-05
  • 阿里云数据库备份还原不了的原因及解决方法
    随着云计算的广泛应用,数据库备份和还原已成为企业数据管理的重要环节。然而,许多用户在使用阿里云数据库进行备份和还原时可能会遇到问题。本文将分析阿里云数据库备份还原不了的原因,并提供相应的解决方法。 一、问题原因分析权限问题:如果用户在执行备...
    99+
    2023-12-13
    阿里 解决方法 备份
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作