MySQL备份理论及mysqldump用法

为什么备份:

  • 灾难恢复:硬件故障(冗余)、软件故障(bug)、自然灾害、******、误操作、...
  • 测试:测试时,为了模仿真实环境中用户访问情况,通常需要用真实数据去做测试。

备份恢复的原则:

  1. 策略正确:平时要设计好备份还原所涉及到的人员,确保能做正确的事。
  2. 执行不出问题:平时做演练,以确保出现问题时,能做正确的事情。
  3. 出问题时做正确的事情。

异地灾备

  • 必要性:防止同一台机器、同一个网络环境中、同一个物理机房不可用导致服务不可用。
  • 备份项:配置文件,周边配置,周期性计划任务。

备份注意事项:

  1. 能容忍最多丢失多少数据:决定了使用的备份手段和工具
  2. 恢复数据需要在多长时间内完成
    • 电商站点若发生故障,数据恢复时,一小时损失可能数以亿计数据。若用二进制文件恢复,可能恢复时长极长,且可能因业务量大,单条语句写入二进制文件顺序不同导致数据与真实数据不一致。
  3. 需要恢复哪些数据
    • 线上生产数据集,线上认证,配置等
  4. 数据备份后需要经常测试备份的可用性,另一方面也可以增强恢复操作的效率,在真正需要恢复数据时做到有条不紊。

数据备份的类型

  1. 根据备份的数据集的范围可分为完全备份和部分备份

    • 完全备份:备份整个数据集
    • 部分备份:备份整个数据集中的一部分,如部分表。
  2. 全量备份、增量备份、差异备份
    • 全量备份:备份全部数据
    • 增量备份:备份自上一次完全备份或增量备份以来变化的那部分数据
    • 差异备份:仅备份自上一次完全备份以来变化的那部数据
  3. 根据备份方式分为物理备份和逻辑备份
    • 物理备份:直接复制数据文件
    • 逻辑备份:从数据库导出数据另存在一个或多个文件中
  4. 根据数据服务是否在线可分为热备、温备、冷备
    • 热备:读写操作均可进行的状态下所做的备份
    • 温备:可读但不可写状态下进行的备份;
    • 冷备:读写操作均不可进行的状态下所做的备份;最可靠,但却是最不可行的。可借助主从复制实现。

备份时需要考虑到的因素:

  1. 要不要锁定资源,锁定资源多长时间?
  2. 备份过程的时长?
  3. 备份时的服务器负载?
  4. 恢复过程的时长?

备份工具

  1. mysqldump

    • mysql服务自带的备份工具,逻辑备份工具.
    • 可以做到完全、部分备份
    • 对InnoDB支持热备,对MyISAM存储引擎支持温备。
  2. cp/tar
    • lvm2:快照(请求一个全局锁),之后立即释放锁,达到几乎热备的效果;物理备份;

      • 注意:不能仅备份数据文件;要同时备份事务日志;
      • 前提:要求数据文件和事务日志位于同一个逻辑卷;
  3. Innobackup/xtrabackup
    • 由Percona提供,开源工具,支持对InnoDB做热备,物理备份工具;
    • 支持完全备份、部分备份;完全备份、增量备份;完全备份、差异备份;
  4. mysqlhotcopy:几乎冷备
  5. select:据说相当LOW
    • 备份:SELECT cluase INTO OUTFILE ‘FILENAME‘;
    • 恢复:CREATE TABLE
    • 导入:LOAD DATA

mysqldump用法

  1. 特点:支持逻辑备份、完全备份、部分备份;

    • 逻辑备份:数据服务要正常运行,监听在某个端口,mysqldump可以通过端口访问mysql。
    • 通过SELECT语句查询后导出至一个文件,恢复时通过INSERT语句把所有查询结果插入至数据库。
    • 有可能会丢失精度
  2. mysqldump用法:
    • SYNOPSIS:

      • mysqldump [OPTIONS] database [tables]
      • mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] 备份指定表
      • mysqldump [OPTIONS] --all-databases [OPTIONS] 备份所有表
    • OPTIONS
      • --all-databases 备份所有库
      • --databases db1,db2.... 备份指定一到多个数据库:
      • db 备份单个数据库中的所有目标对象(不会自动创建库,只是备份库中的表、代码、存储过程、存储函数、触发器以及事件调度器等)
      • db table1,table2... 备份指定的表

      MyISAM存储引擎:最多支持温备,备份时要锁定所有要备份表(若是备份哪个表锁定哪个表,还原时各表时间点不一致)

      • -x, --lock-all-tables 锁定所有库的所有表,读锁
      • -l, --lock-tables 锁定指定库所有表

      InnoDB存储引擎:支持温备和热备;

      • --single-transaction 创建一个事务,基于此快照执行备份;必须加上这个选项才支持热备

        • 在REPEATABLE-READ隔离级别,mysqldump连进数据库时看到的视图是一致的,都是启动事务那一刻的状态。在这种情况下,启动一个事务,备份的所有数据都是这个时间点的。

      其它选项:

      • -R, --routines 备份指定库的存储过程和存储函数;
      • --triggers 备份指定库的触发器
      • -E, --events 备份事件调度器
      • --master-data[=#] 在备份的目标文件中记录一个CHANGE MASTER TO语句,记录备份的那一刻处于哪个二进制文件的哪个位置。
        • mysqldump导出数据时,当这个参数的值为1的时候,mysqldump出来的文件就会包括CHANGE MASTER TO这个语句,CHANGE MASTER TO后面紧接着就是file和position的记录,在slave上导入数据时就会执行这个语句,salve就会根据指定这个文件位置从master端复制binlog。默认情况下这个值是1。
        • 记录下来一个注释的CHANGE MASTER TO 语句,仅为我们参考使用,不打算用它来设定从服务器复制线程的启动通常就设置为2。
      • --flush-logs 锁定表完成后,即进行日志刷新操作;

原文地址:https://blog.51cto.com/11975865/2394819

时间: 2024-10-24 21:22:03

MySQL备份理论及mysqldump用法的相关文章

Linux运维 第四阶段 (六)MySQL备份&&还原(mysqldump、LV’s snapshot、xtrabackup)

Linux运维 第四阶段 (六)MySQL备份&&还原(mysqldump.LV's snapshot.xtrabackup) 一.相关概念 备份:副本,mysql-database备份不同于RAID(RAID是保证硬件损坏而不会业务终止) 备份内容:数据.配置文件.二进制日志.事务日志 1.备份类型: >热备份.温备份.冷备份 热备份:读写不受影响,复杂度高,InnoDB(xtrabackup,mysqldump),lvm快照功能可实现几乎热备: 温备份:仅可执行读操作,MyISA

MySQL备份--xtrabackup与mysqldump工具使用

MySQL备份----xtrabackup与mysqldump工具的使用 一.Xtrabackup8.0: 一个用于MySQL数据库物理热备的备份工具,支持MySQL.Percona server和MariaDB,开源免费,是目前较为受欢迎的主流备份工具.xtrabackup只能备份innoDB和xtraDB两种数据引擎的表,而不能备份MyISAM数据表. 备份原理: Percona XtraBackup的工作原理是在启动时记住日志序列号(LSN),然后复制数据文件.同时,Percona Xtr

mysql备份、恢复之mysqldump

mysqldump是mysql用于转存储数据库的实用程序.它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等 mysqldump 语法 : 默认配置读取路径:  /etc/mysql/my.cnf     /etc/my.cnf    ~/.my.cnf Usage: mysqldump [OPTIONS] database [tables] OR   mysqldump [OPTIONS] --databases [OPTIONS] DB1

mysql备份与还原-mysqldump备份、mysql与source还原

以下都以在linux操作系统上的mysql为例 mysqldump备份 mysqldump实际就是将数据库中的数据转化为建库.建表和插入记录的sql语句 1.备份一个数据库 [或其中几个表],不指定表表示备份整个数据库,指定表表示备份指定的表 在系统命令下:mysqldump -u用户 -p密码 库 [表1  表2  表3   -]  > /opt/backname.sql [[email protected] opt]# mysqldump -uroot -poldboy oldboy stu

【MYSQL备份】利用mysqldump将一个数据库复制到另一个数据库

假设要将服务器A上的数据库test备份到服务器B 1.在服务器B上新建数据库cp_test mysql> create database cp_test; Query OK, 1 row affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | cp_test | | mysql | | perfor

mysql 备份报错mysqldump: [Warning] Using a password on the command line interface can be insecure.

-------------------------------------------------------------------------------- 备份某个表步骤如下 解决办法:修改my.ini配置添加以下语句 [mysqldump]user=root ----为备份用户名[email protected]#   ----为用户密码 然后mysqldump  ipos  table > c:\bak.sql   备份Ipos 下的表table  到目录 c:\bak.sql mys

Linux命令:MySQL系列之十二--MySQL备份与还原(重要章节)

一.数据备份 备份类型:热备份.温备份和冷备份 热备份:读.写不受影响: 温备份:仅可以执行读操作: 冷备份:离线备份,读.写操作均中止: 备份方式:物理备份和逻辑备份: 物理备份:复制数据文件,速度快,保存数据库的所有数据结构,如果数据跟数据库关联性强, 导致物理备份可移植性能力不强: 逻辑备份:将数据导出至文本文件中,速度慢.丢失浮点数精度:方便使用文本处理工具 直接对其处理,可移植能力强: 备份策略:完全备份.增量备份和差异备份: 完全备份:备份全部数据: 增量备份:仅备份上次完全备份或者

MySQL系列——MySQL备份和恢复

MYSQL的备份和还原备份 :副本RAID1,RAID10 :保证硬件损坏而不会业务中止:备份和还原 :可以保证因逻辑错误引起的数据丢失备份类型 :热备份 :读写不受影响温备份 :仅可以执行读操作冷备份 :离线备份,读.写操作均中止 物理备份和逻辑备份物理备份 :复制数据文件逻辑备份 :将数据导出至文本文件中 完全备份.增量备份和差异备份备份什么:数据.配置文件.二进制日志.事务日志主从服务器架构 物理备份 :速度快逻辑备份 :速度慢.丢失浮点数精度:方便使用文本处理工具直接对其处理,可移植能力

Mysql导出表结构及表数据 mysqldump用法

命令行下具体用法如下:  mysqldump -u用戶名 -p密码 -d 數據库名 表名 脚本名; 1.导出數據库為dbname的表结构(其中用戶名為root,密码為dbpasswd,生成的脚本名為db.sql)    mysqldump -uroot -pdbpasswd -d dbname >db.sql; 2.导出數據库為dbname某张表(test)结构    mysqldump -uroot -pdbpasswd -d dbname test>db.sql; 3.导出數據库為dbna