首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql备份与恢复

mysql备份与恢复

作者头像
AsiaYe
发布2019-11-06 16:19:50
2K0
发布2019-11-06 16:19:50
举报
文章被收录于专栏:DBA随笔DBA随笔DBA随笔

MySQL备份与恢复 1 备份与恢复概述

对于DBA来说,备份和恢复是一项最基本的操作,在服务器宕机、磁盘损坏、RAID卡损坏等意外情况下,要保证数据不丢失或者丢失量在可接受范围内,每个DBA应该时刻关注所负责的数据库备份情况。个人认为,一个合格的DBA每天来公司的第一件事不应该是倒水喝茶,而应该是查看数据库的备份情况。这里我们首先来看备份的一些方法,根据备份的方法不同可以讲备份分为:

Hot Backup、热备

Cold Backup、冷备

Warm Backup、温备

热备是指在数据库运行中直接备份,对正在运行的数据库操作没有任何的影响,也称之为在线备份;

冷备是指在数据库服务关闭的情况下进行备份,这种备份最为简单,一般只需要复制相关的数据库物理文件即可;

温备同样实在数据库运行过程中进行的,但是会对挡墙的数据库的操作产生一定的影响。例如加一个全局的读锁来保证备份数据的一致性。

按照备份后文件的内容来分,备份又可以分为逻辑备份与物理备份。

其中逻辑备份是指备份出来的文件内容是可读的,内容一般是由表数据组成的,例如我们最常用的mysqldump和select into outfile的方法,这列方法的好处是可以观察导出文件的内容,一般用于数据库的升级,迁移等工作中,它的优点是备份完的文件比较小,缺点是备份的时间较长。

物理备份是指复制数据库的物理文件,既可以在数据库运行中进行复制,也可以在数据库停止的时候直接复制数据文件,这种备份方法备份速度快,需要的时间一般较短,常用的工具有innobackup和xtrabackup这类工具,它的缺点是备份的文件可能会比较大、恢复时候的跨平台性较差。

按照备份数据库的内容来分,又可以分为完全备份、增量备份和日志备份,完全备份指的是对数据库进行一个完整的备份,增量备份指的是在上次完全备份的基础上,对更改的数据进行备份,而日志备份指的是对MySQL数据库日志的备份,通过日志重做来完成数据库的恢复工作。

2

常用备份方法

mysqldump是最常用的备份方法,它是逻辑备份的一种,它的语法如下:

mysqldump [arguments] > file_name

这里给出最常用的一些备份方法:

#备份所有数据库
mysqldump -uroot -p --all-databases > dump.sql
#备份指定数据库
mysqldump -uroot -p --databases db1 db2 db3 > dump.sql
#备份数据库的结构
mysqldump -uroot -p --no-data --databases db1 db2 db3 > dump.sql
#备份数据库中的两张表
mysqldump -uroot -p mydb t1 t2 > dump.sql

一些重要参数如下:

--single-transaction

对于mysqldump工具来说,可以通过添加--single-transaction这个选项来获得innodb存储引擎的一致性备份,原因是这个参数会在备份开始之前,先执行start transaction命令,开启一个事务,备份完成之后会提交这个事务,保证过程中获取一致性的数据。

--master-data=[value]

还有一些需要注意的点,当我们想要复制一个数据库上的数据,来将它恢复到一个从库上时,需要启用--master-data这个参数,当value的值为1的时候,该参数会产生转存备份数据库中的change master语句,当value值为2的时候,change master语句被写成SQL注释,默认的情况下,这个值为空。

还有一些其他的参数,例如备份时间的--events、备份存储过程的--routines、备份触发器的--triggers等,大家可以下面自行查看。

除了mysqldump之外,就是select into outfile这种方法用的最多了,因为它能够很快的备份一个比较小的表里面的数据,它还包含很多输出格式参数,select ...into outfile方法导出的文件可以使用load data infile来进行恢复,这个语法必须拥有file权限,时间关系,后续再细说。今天就先写到这里。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DBA随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档