mysql怎么数据备份_现在的套路怎么那么多

mysql怎么数据备份_现在的套路怎么那么多逻辑备份和物理备份 逻辑备份 逻辑备份用于备份数据库的结构(CREAET DATABASE、CREATE TABLE)和数据(INSERT),这种备份类型适合数据量小、跨SQL服务器、需要修改数据等…

逻辑备份和物理备份

逻辑备份

逻辑备份用于备份数据库的结构(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

代码100分

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

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

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

代码100分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机器的数据进行同步:

mysql怎么数据备份_现在的套路怎么那么多

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

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

mysql怎么数据备份_现在的套路怎么那么多

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10848.html

(0)
上一篇 2022-12-20
下一篇 2022-12-20

相关推荐

  • varchar int 查询 到底什么情况下走索引?

    varchar int 查询 到底什么情况下走索引?一个字符类型的、一个int类型的,查询的时候到底会不会走索引,其实很多工作了几年的开发人员有时也会晕,下面就用具体事例来测试一下。 1. 准备工作 先准备2张表,以备后续测试使用。 表1:创建表tes

    2023-02-13
    147
  • java学习基础(一):初识java与代码的组成[通俗易懂]

    java学习基础(一):初识java与代码的组成[通俗易懂]第一部分:java的相关介绍开始了解java可以从它的这些方面开始:java语言的来源java的应用方向(企业级应用服务器、安卓手机应用开发、大

    2022-12-14
    154
  • mysql大表建索引_mysql索引字段

    mysql大表建索引_mysql索引字段通常我们往大表里面添加索引或者添加新字段,不能直接执行,执行时间很长,造成锁表操作,必须借助于pt或者gh-ost等数据库管理工具添加。 例子如下: pt-online-schema-change –

    2023-04-12
    170
  • mysql数据备份与还原_navicat忘记备份误删表

    mysql数据备份与还原_navicat忘记备份误删表关于删库跑路的事故现在已经屡见不鲜了,数据备份的必要性是企业数据管理极其重要的一项工作。关于数据备份、恢复也有很多场景及方法,本系列也会将主要的几种工具通过案例进行演示。 本系列将从逻辑备份及恢复开始

    2023-02-08
    157
  • 如何完全卸载Anaconda

    如何完全卸载AnacondaAnaconda是一个数据分析平台,包含了Python、R等常用的数据科学的工具。但是,如果你需要卸载Anaconda,可能需要注意到一些细节,下面是一个完整的卸载Anaconda的指南。

    2024-08-19
    32
  • 如何查看PyCharm版本

    如何查看PyCharm版本作为一名Python工程师,我们经常使用PyCharm这款IDE进行代码开发,而不同的PyCharm版本具有不同的功能和特性,因此了解自己使用的PyCharm版本是非常重要的。本文将介绍如何查看当前 PyCharm 的版本号,帮助读者更好地掌握自己的工具。

    2024-08-16
    30
  • 分布式是什么意思_宏可以实现的功能不包括

    分布式是什么意思_宏可以实现的功能不包括作者:路路 热爱技术、乐于分享的技术人,目前主要从事数据库相关技术的研究。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 1.概述 本篇文章主要…

    2023-02-05
    139
  • mysql数据库导入、导出

    mysql数据库导入、导出终端命令操作(导出) 1.导出整个库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u root-p blog > ./blog.sql 2导出

    2023-02-23
    157

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注