数据库备份和恢复---MariaDB
定义
- 数据备份:将源数据再次存储到新的位置
- 数据恢复:将备份好的数据重新应用到数据库系统
常见的备份类型:
- 按照是否备份整个数据集来分
完全备份:备份从开始到执行备份这一时刻的所有数据集
增量备份:备份从上次备份到这次备份时刻变化的数据集
差异备份:备份从上一次完全备份到这一备份时刻变化的数据集 - 按照备份的数据库对象来分
物理备份:通过复制数据集在文件系统中的文件来备份
逻辑备份:在数据库的客户端工具上使用SQL语句,应用程序或其他脚本文件做备份的操作 - 按照备份时,还能提供的服务分类
热备份:备份的过程中,可以对备份的数据集做读写操作
温备份:备份的过程中,只能对备份的数据集只能做读操作,不可有写操作
冷备份:备份的过程中,直接将服务下线,读写操作均无法执行
备份的数据内容:
- 数据;
- 二进制日志
- InnoDB存储以前的事务日志文件;
- 代码——存储过程,存储函数,触发器,事件调度器等;
- 当前服务器上用于启动数据服务是所使用的配置文件;
- 操作系统上与MySQL或MariaDB相关的配置——sudo任务、cron任务等;
备份方法
第一种方法:基于二进制文件的恢复
通过客户端命令工具:mysqlbinlog和二进制日志恢复数据库文件
mysqlbinlog [options] log_file ...
--start-datetime=
--stop-datetime=
--start-position=
--stop-position=
#例:通过position日志位置直接恢复
mysqlbinlog /var/lib/mysql/mysqlbin.000001 --stop-position=1093 | mysql -uroot -proot
重定向输入到bin.sql文件中
第一步:算好要恢复数据的时间段,重定向输入到bin.sql文件中
#通过时间轴
mysqlbinlog --start-datetime="2019-06-08 22:55:13" --stop-datetime="2019-06-08 22:55:13" binlog.0000011 > bin.sql
#通过position日志
mysqlbinlog --start-position=1008 --stop-position=1093 binlog.0000011 > bin.sql
#整个文件
mysqlbinlog /var/lib/mysql/binlog.000006 > /root/bin.sql
mysqlbinlog /var/lib/mysql/binlog.000007 >> /root/bin.sql
第二步:执行bin.sql文件还原
source bin.sql
或
# mysql -uroot -pxxx DATABASENAME < bin.sql
第二种方法:基于lvm2的备份
第一步:请求锁定所有表
flush tables with read lock;
第二步:记录二进制日志文件及事件位置或时间点
flush logs;
mysql -uroot -proot -e 'show master status;' > /path/to/somefile
第三步:创建快照
lvcreate -L # -s -p r -n NAME /DEV/VG_NAME/LV_NAME
第四步:释放锁
unlock tables;
第五步:挂在快照卷,执行数据备份
第六步:备份完成后,删除快照卷
第七步:指定好策略,通过原卷备份二进制日志
第八步:还原的时候确保属组和属主是mysql:mysql
其中:如果是yum安装默认数据目录在/var/lib/mysql,如果需要更改
╭─root@localhost.localdomain /var/lib/mysql
╰─➤ vim /etc/my.cnf.d/server.cnf
[mysqld]
datadir=/mysql_data/
pid_file=/mysql_data/localhost.pid
socket=/mysql_data/mysql.sock
wsrep_data_home_dir=/mysql_data/
log-bin=mysql-bin
[client]
socket=/mysql_data/mysql.sock
第三种方法:备份工具mariabackup/Xtrabackup
注意:在MariaDB10.3.x及以上的版本用Percona XtraBackup工具会有问题;原因可能是MariaDB10.3以上版本的redo日志格式和之前不同了
官方文档
Percona的官方文档:https://www.percona.com/doc/percona-xtrabackup/2.4/index.html
Mariabackup的官方文档:https://mariadb.com/kb/en/library/mariabackup-overview/
安装方法
yum install MariaDB-backup
备份与恢复
全备+恢复
#全量备份
mariabackup --backup --target-dir=/root/fullbackup --user=root --password=root
#准备全备数据
mariabackup --prepare --target-dir=/root/fullbackup/ --user=root --password=root
#还原数据(请确保数据目录下是空的)
mariabackup --copy-back --target-dir=/root/fullbackup/ --user=root --password=root
#修改属组和属主
chown -R mysql.mysql /var/lib/mysql
全备+增量+恢复
#1.全量备份
mariabackup --backup --target-dir=/root/fullbackup --user=root --password=root
#2.增量备份
mariabackup --backup --target-dir=/root/inc1 --incremental-basedir=/root/fullbackup/ --user=root --password=root
#3.准备全备数据
mariabackup --prepare --target-dir=/root/fullbackup/ --user=root --password=root
#4.增量和全备数据合并
mariabackup --prepare --target-dir=/root/fullbackup/ --user=root --password=root --incremental-dir=/root/inc1/ --apply-log-only
#5.恢复数据(请确保数据目录下是空的)
mariabackup --copy-back --target-dir=/root/fullbackup/ --user=root --password=root
#6.修改属组和属主
chown -R mysql.mysql /var/lib/mysql

数据库备份和恢复---MariaDB的更多相关文章
- Sql Server数据库备份和恢复:原理篇
本文与您探讨为什么Sql Server有完整备份.差异备份和事务日志备份三种备份方式,以及为什么数据库又有简单模式.完整模式和大容量日志模式这三种恢复模式.本文内容适用于2005以上所有版本的Sql ...
- 使用exp&imp工具进行数据库备份及恢复
使用exp&imp工具进行数据库备份及恢复1.exp/imp使用方法介绍exp/imp为一种数据库备份恢复工具,也可以作为不同数据库之间传递数据的工具,两个数据库所在的操作系统可以不同.exp ...
- MongoDB学习总结(六) —— 数据库备份和恢复
我们都知道数据库数据经常备份是多么的重要,MongoDB作为一个数据库系统,自然提供了完善,丰富而且好用的备份与恢复机制. 以下介绍三种数据库备份和恢复的方式 > 数据目录直接拷贝 数据库目录直 ...
- asp.net针对SQLSERVER数据库备份和恢复的一揽子问题解决
一.备份 先备份到服务端,用gridview显示出来,点击可以下载到本地 二.恢复 这是很麻烦的事情,本人查阅不少资料,耗费不少时间才搞定. 直接恢复数据库时不行的,会提示数据库正在使用,恢复失败等信 ...
- 小型网站MYSQL问题二:Percona Xtrabackup实现数据库备份和恢复
1.安装软件仓库(不要问我为什么不用源码安装,好吧,其实我懒.) 1 2 3 4 5 6 7 8 wget https://www.percona.com/downloads/percona-rele ...
- C#可定制的数据库备份和恢复程序 (讲解流程)
可定制的数据库备份和恢复程序 tashanzhishi [原作] 关键字 数据库 备份 恢复 出处 在我们做数据库系统的程序时,经常需要为客户做一个数据库的备份和恢复程序,特别是对于一些非专业的数据库 ...
- mysql基础之数据库备份和恢复实操
一.基于二进制文件的恢复*** 1.算好要恢复数据的时间段,重定向输入到bin.sql文件中 [root@ren7 mysql]# mysqlbinlog --start-datetime=" ...
- postgresql数据库备份和恢复
PostgreSQL自带一个客户端pgAdmin,里面有个备份,恢复选项,也能对数据库进行备份 恢复(还原),但最近发现数据库慢慢庞大的时候,经常出错,备份的文件过程中出错的几率那是相当大,手动调节灰 ...
- Oracle数据库备份、恢复及常见问题
通常我们都是使用PL/SQL Developer来对Oracle中的数据对象和数据进行管理.如果我们想方便快速还原或者部署Oracle到新机器上,怎么进行数据库的备份.导入恢复呢? 这里我们必须要考虑 ...
随机推荐
- JS中的多层次排序算法
引子 排序在编程中随处可见,从开始学习变成,到项目开发,基本上或多或少会遇到一些排序问题,接下来我要写的是我在实际开发终于到的一个排序问题,一开始卡了我很久,后面随着知识积累,实践变多才解决掉了,不知 ...
- docker学习之路(安装、使用)
一.docker安装 1.更新现有的yum包 yum update 2.配置docker yum源 [root@docker ~]# cat /etc/yum.repos.d/docker.repo ...
- ElasticSearch教程——分片、扩容以及容错机制(转学习使用)
一.Primary shard和replica shard机制 1.index包含多个shard; 2.每个shard都是一个最小的工作单元,承载部分的数据,Lucene实例,完整的简历索引和处理请求 ...
- 通过实例学习 PyTorch
通过范例学习 PyTorch 本博文通过几个独立的例子介绍了 PyTorch 的基础概念. 其核心,PyTorch 提供了两个主要的特征: 一个 n-维张量(n-dimensional Tensor) ...
- LeetCode283 移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序. 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作, ...
- 详细的String源码解析
我们常常把String类型的字符串作为HashMap的key,为什么要这样做呢? 因为String是不可变的,一旦初始化就不再改变了,如果被修改将会是一个新对象. @Test public void ...
- windows鼠标右键添加快捷方式
[win]+[R] 输入regedit 打开路径:计算机\HKEY_CLASSES_ROOT\DesktopBackground\Shell 创建应用文件,这里以putty为例 右键 Shell 新建 ...
- Python找对称数——纪念第一次自主编写代码
2021-01-17 题目: [问题描述]已知10个四位数输出所有对称数及个数 n,例如1221.2332都是对称数[输入形式]10个四位数,以空格分隔开[输出形式]输入的四位数中的所有对称数,对称数 ...
- service自动发现,yaml文件管理内外部端口访问
service服务发现 [root@k8s-master ~]# vim busybox-5d4f595646-dzjv4.yaml apiVersion: v1 kind: Pod metadata ...
- 分布式系统:分布式任务调度xxl-job较深入使用
目录 系统关键概念介绍 执行器 任务 任务配置项描述 阻塞策略 路由策略 日志问题 客户端日志 服务端日志 框架目前发现的缺点以及存在的问题 xxl-job是一个分布式定时任务调度框架,功能强大,底层 ...