MariaDB——备份与恢复
备份和恢复
为什么要备份?
灾难恢复:硬件故障、软件故障、自然灾害、黑客攻击、误操作
测试
要注意的点:
备份需要多少时间
能够容忍多少的数据丢失
恢复数据需要在多长时间完成
需要恢复哪些数据
1、做还原测试,用户测试备份的可用性
2、还原演练
备份的时长很重要,备份是要消耗磁盘io的。
还要做数据库配置文件参数的备份。
备份类型
完全备份,部分备份
完全备份:整个数据集
部分备份:只备份数据子集
完全备份、增量备份、差异备份
增量备份:只备份最近一次完全备份或者增量备份以来的变化的数据。
差异备份:仅备份最近一次完全备份以来的变化的数据。
热备、温备、冷备
热备:读写操作均能执行
温备:读操作可以,但是写不行
冷备:读写操作均不能执行
Myisam:温备、不能热备;
Innodb:热备;
物理备份、逻辑备份
物理备份:直接复制数据文件进行备份,与存储引擎无关。
逻辑备份:从数据库‘导出’数据另存进行备份。
物理备份——直接拷贝,你要确保没有数据写入,所以物理备份最好使用温备,先将表锁住。
逻辑备份——二进制日志
备份时要考量的因素
持续多久
备份过程的时间长
备份负载:如果负载较高,可能需要停掉。
恢复时间长短
备份的时候做好先后手,如果不行怎么办?不行怎么退出?
备份什么
数据
二进制日志,innodb的事务日志
代码(存储过程、存储函数、触发器、时间调度器)
服务器的配置文件,各个参数设置
设计备份方案
数据集:完全备份+增量备份+二进制日志 | 完全备份+差异备份+二进制日志
备份手段:物理备份、逻辑备份
对于较大体量的数据建议使用物理备份,对于较小的数据建议使用逻辑备份。
物理备份和逻辑备份,两种备份方式的恢复时间有差异。
备份工具的选择
mysqldump+复制binlog:
mysqldump:完全备份
复制binlog中指定时间范围的event:增量备份
lvm2快照+复制binlog
lvm2快照:适用cp或者tar等做物理备份:完全备份
复制binlog中指定时间范围的event:增量备份
xtrabackup|mariabackup
由percona提供的支持对Innodb做热备的工具:物理备份
既可以做全量也可以做增量
mysqldump——逻辑备份工具
lvm2和xtrabackup|mariabackup——都是物理备份工具
lvm2——确保数据库没有任何的数据写入,也即要锁表。
备份、恢复方法
基于二进制文件的恢复:
方式一、
算好要恢复的数据的时间段,将其中的binlog记录的sql语句重定向输出到bin.sql文件中
mysqlbinlog --start-datetime=“2019-06-08 22:55:13” --stop-datetime="2019-06-08 22:58:11" mysql-bin.000001 > bin.sql
进入数据库,source一下这个文件
source bin.sql
方式二、
mysqlbinlog /var/lib/mysql/mysql-bin.000005 --stop-position=1389 | msyql -uroot -proot
#没有start就从头开始,有start就依据start开始
lvm2备份恢复:
pvcreate /dev/sdb1
vgcreate testvg /dev/sdb1
lvcreate -L 1G -n testlv testvg
mkfs -t ext4 /dev/testvg/testlv
mount /dev/testvg/testlv /test #写入/etc/fstab 或者/etc/rc.local来让它开机自动挂载
#挂载使用,将/test设置为数据库的数据存储目录,然后依照lvm2快照来对其中的数据进行快照备份。
然后使用卷快照来备份数据
1、lvm2是物理备份,先锁表
flush tables with read lock;
2、快照
lvcreate -L 1G -s -p rw -n snap_testlv /dev/testvg/testlv
-L —— --size
-s —— --snap
-p —— --permission rw|r
-n —— --name
/dev/testvg/testlv : 参照复制的目录
3、unlock tables;
#锁表之后一定要记得解锁
4、mount /dev/testvg/snap_testlv /snap_test #挂载使用,数据验证
#这里需要注意的是,xfs文件系统不支持卷快照
#这个时候你就可以在/snap_test中cp其中的内容了。
#note:还原的时候要确保的你的属主和属组都是mysql,如果是root那么数据库会出问题。
mariabackup:物理备份工具
Xtrabackup——是mysql的备份工具,实际上也可以用于mariadb,但是仅限于10以前。
10以后要用mariabackup
Mariabackup:
物理备份工具,可以实现在线备份。
它是根据事务日志来备份的,在10.3.x及以上版本使用xtrabackup工具会有问题,原因可能是10.3版本的redo日志格式和以前不一样了。
#note:事务日志要删除就成对成组删除,删除单个可能会让数据失去一致性,数据库会起不来。
安装:
yum install MariaDB-backup #前提是有MariaDB的源
全备+恢复:
1、全量备份
mariabackup --backup --target-dir=/root/fullbackup --user=root --password=root
2、准备全备数据
mariabackup --prepare --target-dir=/root/fullbackup --user=root --password=root
3、还原数据(确保数据目录为空)
mariabackup --copy-back --target-dir=/root/fullbackup --user=root --password=root
4、修改属组属主
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
--apply-log-only:在准备增量备份时,必须跳过未提交事务的回滚,使用--apply-log-only选项防止回滚阶段
5、恢复数据(确保数据目录下是空的)
mariabackup --copy-back --target-dir=/root/fullbackup --user=root --password=root
6、修改属组属主
chown -R mysql.mysql /var/lib/mysql
如果增量不止一个呢?怎么合并? 一直去合并就可以,做增量的时候一定要加上--apply-log-only。
mysqldump逻辑备份工具:
#备份testdb数据库(-l表示备份单个数据库的时候锁定该库的所有表,-x当对所有的数据库备份时锁定所有数据库的所有表)
mysqldump -uroot -proot -l --databases testdb > testdb.sql
#备份所有数据库
mysqldump -uroot -proot -x --all-databases > all_databases.sql
#备份testdb数据库下的students表
mysqldump -uroot -proot testdb students > students.sql
#如果要备份多个表那么使用空格隔开即可。
mysqldump -uroot -proot testdb students test_table > both.sql
#还原数据(sql命令)
source testdb.sql #注意文件的路径,在当前工作目录之下。
#涉及锁表,温备;Mysqldump不能实现增量备份。
全备+增量+二进制——>恢复 #还要去筛选一下二进制文件的时间
当数据上了一定的量级之后,使用mysqldump去备份只能是杯水车薪。
数据库更换目录
如果是由yum安装的数据库,默认数据目录是在/var/lib/mysql,如果需要更改:
vim /etc/my.cnf.d/server.cnf
[mysqld]
datadir=/test3/
pid_file=/test3/localhost.pid
socket=/test3/mysql.sock
wsrep_data_home_dir=/test3/
log-bin=mysql-bin
[client]
socket=/test3/mysql.sock
chown -R mysql.mysql /test3
#重启数据库:service mariadb restart
然后进入数据库查看dir:
show variables like ’%datadir%‘;
#实际上写入配置文件的都是参数
MariaDB——备份与恢复的更多相关文章
- MariaDB日志文件、备份与恢复
1. 数据库的6种日志 数据库有6种日志,分别是:查询日志.慢查询日志.错误日志.二进制日志.中继日志以及事务日志. 1> 查询日志 查询日志记录每一条sql语句,建议不开启,因为如果访问量较大 ...
- mariadb数据库备份与恢复
1.查询日志: 记录每一条sql语句,建议不开启,因为如果访问量较大,会占用相当大的资源,影响性能; vim /etc/my.cnf.d/server.cnf general_log = ON| OF ...
- 第18章 使用MariaDB数据库管理系统
章节概述: MYSQL数据库管理系统被Oracle公司收购后从开源换向到了封闭,导致包括红帽在内的许多Linux发行版选择了MariaDB. 本章节将教会您使用mariaDB数据库管理工具来管理数据库 ...
- 1.Mariadb(mysql)基本操作
1.:安装与初始化 1)安装 yum install -y mariadb\* 2)初始化 systemctl restart mariadb systemctl enable mariadb my ...
- Mysql实现企业级日志管理、备份与恢复实战
背景 随着业务的发展,公司业务和规模不断扩大,网站积累了大量的用户信息和数据,对于一家互联网公司来说,用户和业务数据是根基.一旦公司的数据错乱或者丢失,对于互联网公司而言就等于说是灭顶之灾,为防止系统 ...
- 项目实战6—Mysql实现企业级日志管理、备份与恢复实战
Mysql实现企业级日志管理.备份与恢复实战 环境背景:随着业务的发展,公司业务和规模不断扩大,网站积累了大量的用户信息和数据,对于一家互联网公司来说,用户和业务数据是根基.一旦公司的数据错乱或者丢失 ...
- Linux-基础学习(五)-mariadb主从复制以及redis学习
开始今日份整理 1.mariadb的主从复制 主从复制大致图示: 1.1 mysql基本命令复习 linux下的操作 .启动mysql systemctl start mariadb .linux客户 ...
- MariaDB主从复制,redis发布订阅,持久化,以及主从同步
一. MariaDB主从复制 mysql基本操作 1 连接数据库 mysql -u root -p -h 127.0.0.1 mysql -u root -p -h 192.168.12.60 2 ...
- mysql 开发进阶篇系列 47 物理备份与恢复(xtrabackup 的完全备份恢复,恢复后重启失败总结)
一. 完全备份恢复说明 xtrabackup二进制文件有一个xtrabackup --copy-back选项,它将备份复制到服务器的datadir目录下.下面是通过 --target-dir 指定完全 ...
随机推荐
- 「JSOI2012」玄武密码
「JSOI2012」玄武密码 传送门 题目是要求多个串在母串上的最长匹配长度. 考虑 \(\text{AC}\) 自动机,我们建出 \(\text{Trie}\) 图然后用母串来在上面跑. 每一个能匹 ...
- 201771010135杨蓉庆《面向对象程序设计(java)》第四周学习总结
学习目标 1.掌握类与对象的基础概念,理解类与对象的关系: 2.掌握对象与对象变量的关系: 3.掌握预定义类的基本使用方法,熟悉Math类.String类.math类.Scanner类.LocalDa ...
- 【PAT甲级】1067 Sort with Swap(0, i) (25 分)
题意: 输入一个正整数N(<=100000),接着输入N个正整数(0~N-1的排列).每次操作可以将0和另一个数的位置进行交换,输出最少操作次数使得排列为升序. AAAAAccepted cod ...
- Mysql 一些细节方面解析(一)--MyISAM和InnoDB的主要区别和应用场景
myisam和innodb 简介:myisam读的效果好,写的效率差,这和它数据存储格式,索引的指针和锁的策略有关的,它的数据是顺序存储的,他的索引btree上的节点是一个指向数据物理位置的指针,所以 ...
- Hive的安装与基础指令
一.Hive安装 Hive的安装相对比较简单,Hive是基于Hadoop来使用的,所以搭建Hadoop伪分布式或完全分布式即可,Hive安装过程如下: ①安装并启动Hadoop 在博主的其他博客中有安 ...
- ES查询不重复的数据
GET ana-apk/_search #查询不重复的mac地址{ "size": 10, "aggs": { "MAC": { ...
- 06-常见的RAID技术
目录 06-常见的RAID技术 参考 RAID基本概念 RAID数据组织形式 RAID数据保护方式 RAID0 RAID1 RAID5 RAID6 混合RAID - RAID 10 06-常见的RAI ...
- EASYUI combobox firefox 下不支持中文检索
firefox 中文录入因为输入法的问题,无法出发检索的事件.网上的方法试过还是没有解决. 于是使用录入时新增一个模拟键shift,触发keydown事件,最终实现需要的效果. $("inp ...
- UIView动画的使用
下面介绍三种简单的UIView动画的使用,如果在项目中对动画没有太多“细致化”的设计要求,基本够用了. 一.首尾式动画 说明:如果只是修改控件的属性,使用首尾式动画还是很方便的,如果还需要在动画完成后 ...
- C++运算符重载复习
本人理解运算符重载实质 就类似函数重载 运算符重载都可以写成一个函数 里面传入参数 来调用 运算符重载不是必须的 但是重载后会方便很多. 小例子 一个类实现 ++ 和+某个数重载 大于号重载 ...