MySql高级五--备份和恢复

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

一、备份目的:


用于恢复,对备份的数据要做恢复测试。

备份都是针对某一个数据库。


二、备份类型:


1、根据备份时服务器是否在线:

(1)、冷备 cold backup:离线备份。

(2)、温备 warm backup:只可读,不可写。

(3)、热备 hot backup:在线备份。


2、根据备份的数据集:

(1)、完全备份:full backup

(2)、部分备份:partial backup,只备份某些表


3、根据备份时的接口(直接备份数据文件还是通过mysql服务器导出数据):

(1)、物理备份 physical backup:

    直接复制数据文件。

(2)、逻辑备份 logical backup:

    把数据从库中提取出来保存为文本文件(无法保证浮点数的精度,索引也会丢失)。

    mysqldump

4、根据备份时备份整个数据还是仅备份变化的数据

(1)、完全备份:full backup

(2)、增量备份:incremental backup

(3)、差异备份:differential backup


三、备份对象:

1、数据。

2、mysql配置文件。

3、代码:存储过程、存储函数、触发器。

4、OS相关的配置文件,如crontab配置计划以及相关的脚本。

5、跟复制相关的配置:二进制日志文件。


四、备份工具:


1、mysqldump:逻辑备份工具。

(1)、概述:

    InnoDB热备,对MyISAm温备。

    备份和恢复过程较慢,因是单线程备份工具。

    很难实现“差异备份”或“增量备份”,只适用于“完全备份”或“部分备份”。

    一般适用于备份1G以下的数据,不然太慢了。

(2)、用法:mysqldump [options] [db_name [tbl_name...]]

     备份:

    #mysqldump -uroot -h192.168.1.4 -p --databases testdb > /tmp/tdb.sql

     恢复:

    #mysql -uroot -h192.168.1.4 -p testdb < /tmp/tdb.sql

(3)、备份时要事先加锁--lock-all-tables即对MyISAM、InnoDB温备。

    --lock-all-tables :请求锁定所有表之后再备份。

    #mysqldump --databases testdb --lock-all-tables > /tmp/tdb.sql

(4)、如果某库的所有表都是InnoDB存储引擎,可以用--single-transaction实现对数据库进行热备。

    注意,不要再使用--lock-all-tables选项,因--single-transaction自动加锁。

    #mysqldump --databases testdb --single-transaction > /tmp/tdb.sql

(5)、备份代码:

   --enents:备份时间调度器代码。

    --routines:备份存储过程和存储函数。

    --triggers:备份触发器。

(6)、备份时自动滚动日志:

    --flush-logs:备份前,请求到锁之后滚动日志.

(7)、备份综述,使用mysqldump备份常用选项如下:

    请求锁:--lock-all-tables或使用--single-transaction进行innodb热备。

    滚动日志:--flush-logs

    选定备份的库:--databases

    备份代码:--enents 、--routines、--triggers

  #mysqldump --databases testdb --lock-all-tables --flush-logs > /tmp/tdb.sql

  #mysqldump --databases testdb --single-transaction --flush-logs > /tmp/tdb.sql

  #mysqldump --databases testdb --single-transaction 

        --flush-logs --enents --routines --triggers > /tmp/tdb.sql 

  

2、mysqldumper:也是逻辑备份工具,多线程的mysqldump。

一般适用于备份10G以下的数据。


3、lvm-snapshot:

    接近于热备的工具,因为先请求全局锁,而后创建快照,并在创建快照完成后释放全局锁,

使用cp、tar等工具进行物理备份。备份和恢复速度较快。

很难实现“差异备份”或“增量备份”,只适用于“完全备份”。

并且请求全局锁需要等待一段时间,在繁忙的服务器上尤其如此。

4、SELECT部分备份工具,不会备份关系定义,仅备份表中的数据。

备份:SELECT clause INTO OUTFILE '/path/to/somefile'

恢复:LOAD DATA INFILE  '/path/to/somefile'

5、Xtrabackup:有Percona提供的开源的备份工具

(1)、对InnoDB热备,增量备份。

(2)、对MyISAM温备,不支持增量备份。

(3)、物理备份速度快。


6、mysqlhotcopy:几乎冷备份。













本文转自lzf0530377451CTO博客,原文链接:http://blog.51cto.com/8757576/1851143 ,如需转载请自行联系原作者











相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
存储 关系型数据库 MySQL
mysql数据库备份与恢复
MySQL数据库的备份与恢复是确保数据安全性和业务连续性的关键操作。
152 4
|
2月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
138 3
|
2月前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
59 3
|
7月前
|
存储 SQL 关系型数据库
|
3月前
|
安全 关系型数据库 MySQL
MySQL用户备份
【10月更文挑战第2天】MySQL用户备份
74 3
|
3月前
|
存储 关系型数据库 MySQL
MySQL如何备份?
【10月更文挑战第2天】MySQL如何备份?
215 3
|
5月前
|
SQL 关系型数据库 MySQL
在Linux中,如何备份和恢复MySQL数据库?
在Linux中,如何备份和恢复MySQL数据库?
|
5月前
|
安全 关系型数据库 MySQL
揭秘MySQL海量数据迁移终极秘籍:从逻辑备份到物理复制,解锁大数据迁移的高效与安全之道
【8月更文挑战第2天】MySQL数据量很大的数据库迁移最优方案
840 17
|
5月前
|
SQL 数据可视化 关系型数据库
MySQL 备份可视化巡检系统
MySQL 备份可视化巡检系统
|
5月前
|
SQL 存储 关系型数据库
MySQL备份:mydumper 备份恢复工具生产实战
MySQL备份:mydumper 备份恢复工具生产实战