前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据备份类型简介

数据备份类型简介

原创
作者头像
陈不成i
修改2021-06-11 14:18:55
5130
修改2021-06-11 14:18:55
举报
文章被收录于专栏:ops技术分享

一.简介

数据可以重复导入,每次都是导入的那个数据,如果数据不一致,会以导入的数据覆盖现在有的。

完全备份 备份所有数据(整个/整个库/整个表) a.只能把数据恢复到备份之前的状态,新产生的数据无法恢复 b.备份数据和恢复数据都要加写锁

差异备份 备份完全备份后新产生的 从完全开始叠加

增量备份 备份上一次备份后新产生的 只增加新的

二.物理备份

直接备份mysql的data或者存储文件。

查看存储文件所在位置 show global variables like "%datadir%";

备份后直接恢复即可 tar -zcvf mysqlbak.tar.gz /var/lib/mysql

三.导出查询结果

查看默认使用目录,一般为空 show variables like "secure_file_priv";

配置数据目录 [mysqld]下添加

代码语言:javascript
复制
secure_file_priv="/data"

导出查询结果,只能到/data这个默认目录下面 select * from mysql.user into outfile "/data/one.txt";

四.逻辑备份

开启binlog日志

开启binlog日志 vim /etc/my.cnf

代码语言:javascript
复制
log_binserver_id=20 #局域网内不能重复,1-255

查看binlog日志,将从开启binlog日志时开始记录 cd /var/lib/mysql mysqlbinlog xx.000001

备份binlog日志

1.首先做一次完整备份: 这时候就会得到一个全备文件test.sql mysqldump test>test.sql

在sql文件中我们会看到:是指备份后所有的更改将会保存到bin-log.000002二进制文件中。 cat test.sql

代码语言:javascript
复制
-- CHANGE MASTER TO MASTER_LOG_FILE='bin-log.000002', MASTER_LOG_POS=107;

2.在test库的t_student表中增加两条记录,然后执行flush logs命令。这时将会产生一个新的二进制日志文件bin-log.000003,bin-log.000002则保存了全备过后的所有更改,既增加记录的操作也保存在了bin-log.00002中。

3.再在test库中的a表中增加两条记录,然后误删除t_student表和a表。a中增加记录的操作和删除表a和t_student的操作都记录在bin-log.000003中。

恢复binlog日志

1.首先导入全备数据 mysql test < test.sql;

2.恢复整个bin-log.000002 mysqlbinlog bin-log.000002 |mysql test -uroot -p123456

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

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