美文网首页
数据库备份

数据库备份

作者: 魔曦帝天 | 来源:发表于2020-01-05 18:59 被阅读0次

逻辑备份

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

优势

()

可移植性高,SQL语句可直接适用于其他SQL服务器;
在数据恢复之前可增加、修改数据;
数据恢复粒度小可以是服务器、数据库、表级别;
使用文本格式,可读性高;

劣势

(会锁表,如果数据量很大,导入导出都会很慢)

备份时需要访问mysql服务器,影响其他客户端;
需要将数据转换成逻辑格式(SQL,CSV);
如果命令运行在客户端,mysql服务器还需要将数据发送给客户端;
因为输出格式为文本文件,占用空间较大;
会锁表,如果数据量很大,导入导出都会很慢

mysqldump

逻辑备份(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文件和目录备份,只需要复制文件不需要转换,速度比逻辑备份更快;

除了备份数据,还能备份配置文件和日志文件;
不需要运行Mysql服务器就可以完成备份;
备份工具简单使用cp、scp、tar命令即可完成备份;

劣势

可移植性不高,恢复数据只适用于相同或类似的机器上;
为了保持数据库文件的一致性,需要停机备份;
恢复粒度不能按表或用户恢复;

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

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

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

使用主从备份模式

使用mysqldumptar备份或多或少都会对业务产生影响,
使用mysqldump备份需要对数据加锁,加锁就意味着其他客户端操作受到限制。
使用tar命令需要停止服务器直接导致数据库服务器不可用,

主从备份

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

image.png

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

在线备份和离线备份

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

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

离线备份的主要特性

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

相关文章

  • Linux命令行下备份还原MySQL数据库

    一、数据库备份 1、备份全部数据库 2、备份单个数据库 3、备份多个数据库 二、数据库还原 1、默认还原备份 2、...

  • Mysql数据备份导出csv文件

    Mysql数据库备份 1 . 备份数据库 备份多个数据库 备份所有数据库 2 . 备份表数据 还原数据 导出数据到...

  • mysql数据备份-笔记1

    mysqldump备份数据库 备份单个 备份压缩 带创建数据库语句进行备份 多个库进行备份 备份 备份events...

  • 数据库附加、分离、还原、备份(sqlserver2014)

    数据库附加 数据库还原(未完待续) 数据库备份 完全备份 差异备份 查看备份介质中的备份信息 restore he...

  • MySQL数据库的备份和还原

    备份数据库 备份一个数据库 备份数据并用GZip压缩 备份多个数据库 备份所有数据库 迁移到新服务器 还原数据库 ...

  • Linux命令------Mysql数据库备份和还原

    一、数据库备份 1、备份数据库到home目录 2、直接将MySQL数据库压缩备份 3、备份到当前目录 备份MyS...

  • 七、MySQL数据库备份

    1、数据库备份 对于任何数据库而言,备份都是非常重要的。 数据库复制不能取代备份的作用。 逻辑备份 : 逻辑备份...

  • mysql 热备份数据

    冷备份 导出数据库进行备份,但是数据库需要停机,影响业务 热备份 全量备份:整个都备份 增量备份:对变化...

  • SQLServer数据库备份还原

    一 备份数据库在需要备份的数据库上右键点击 任务-->备份-->数据库 注意:只能备份到一个目标二 还原数据库在需...

  • 数据库的备份,迁移

    数据库的备份 一数据库的备份 1.单库备份 2.多库备份 3.备份所有库 二.备份恢复 1.退出数据库后 2.在数...

网友评论

      本文标题:数据库备份

      本文链接:https://www.haomeiwen.com/subject/bbdcactx.html