增量备份

mysql,redis

雨燕双飞 提交于 2019-12-02 18:35:22
1、搭建mysql服务器,并实现主主复制、半同步复制 存储引擎: 表类型:也称为“表类型”,表级别概念,不建议在同一个库中的表上使用不同的ENGINE; CREATE TABLE ... ENGINE[=]STORAGE_ENGINE_NAME ... SHOW TABLE STATUS 常见的存储引擎: MyISAM, Aria, InnoDB, MRG_MYISAM, CSV, BLACKHOLE, MEMORY, PERFORMANCE_SCHEMA, ARCHIVE, FEDERATED InnoDB:InnoBase Percona-XtraDB, Supports transactions, row-level locking, and foreign keys 数据存储于“表空间(table space)"中: (1) 所有数据库中的所有类型为InnoDB的表的数据和索引存储于同一个表空间中; 表空间文件:datadir定义的目录中 文件:ibdata1, ibdata2, ... (2) innodb_file_per_table=ON,意味着每表使用单独的表空间文件; 每表的数据文件(数据和索引,存储于数据库目录)存储于自己专用的表空间文件中,并存储于数据库目录下: tbl_name.ibd 表结构的定义:在数据库目录,tbl_name.frm 事务型存储引擎

mysql的全量备份与增量备份

早过忘川 提交于 2019-12-01 19:17:18
mysql的全量备份与增量备份 全量备份:可以使用mysqldump直接备份整个库或者是备份其中某一个库或者一个库中的某个表。 备份所有数据库: [root@my ~]# mysqldump -uroot -p123456 --all-databases >/opt/all.sql mysqldump: [Warning] Using a password on the command line interface can be insecure. 备份单个数据库的所有表: [root@my ~]# mysqldump -uroot -p123456 --databases test>/opt/test.sql mysqldump: [Warning] Using a password on the command line interface can be insecure. 备份数据库中的单个表的结构: [root@my ~]# mysqldump -uroot -p123456 -d test userinfo >/opt/test_userinfo_jiegou.sql mysqldump: [Warning] Using a password on the command line interface can be insecure. 备份数据库中的单个表的内容:

MySQL 数据备份与同步

泪湿孤枕 提交于 2019-12-01 12:24:35
转自:https://www.cnblogs.com/martinjinyu/articles/3750422.html 前段时间使用MySQL作为数据存储做了一个小项目。项目上线运行了几十天之后,数据已经越来越多,达到了100多M。用mysqldump每天备份全量数据然后传输到另外一台机器上这种方式进行数据备份,久而久之越来越慢。于是开始研究如何利用mysql的主 从同步功能实现自动备份。如果实现自动备份,主从服务器之间只需要在有数据更新时同步一点增量数据, 不会在备份时占用大量的CPU和内网的网络带宽资源了。介绍主从同步之前,还是先从基础的mysqldump备份开始讲起。 mysqldump mysqldump是mysql数据库提供的一个数据备份工具。顾名思义,mysqldump可以把mysql数据库导出成sql语句文件,并保存到磁盘上。 mysqldump 命令产生的.sql文件包含一系列SQL INSERT语句,可以用来进行数据恢复。 假定我们在星期日下午1点进行了备份,此时负荷较低。下面的命令可以完全备份所有数据库中的所有表: shell> mysqldump --single-transaction --all-databases > backup_sunday_1_PM.sql 使用mysqldump进行数据备份,至少有两个问题: 1 mysqldump运行时

在线热备份数据库之innobackupex 增量备份InnoDB

别来无恙 提交于 2019-12-01 10:42:26
在线热备份数据库之innobackupex 增量备份InnoDB 什么是增量备份?其原理是什么? 增量备份是 基于上一次备份后对新增加的内容进行备份 ,优点相较于完整备份而言备份内容少时间短,能够节省磁盘空间。但相较于完整备份而言可靠性有所降低,不能缺失基于完整备份的增量备份区间备份包,建议完整备份区间时间不可大于一周, 通常情况下如果数据库非常庞大个人建议三天到七天完整备份一次,期间每天进行增量备份。如果数据库小那么每天进行完整备份才是最安全的选择。 增量备份原理是什么?他是如何记录上次备份的位置? 首先在InnoDB中, 每个page中都记录LSN信息,每当相关数据发生改变,page的LSN就会自动增加,xtrabackup的增量备份就是依据这一原理进行的。 我们增量备份必须要基于完整备份的前提下,在完整备份后会在备份目录中生成一个xtrabackup_checkpoints文件中记录了to_lsn= xxxx,下次备份就会从这里开始到结束,每次增量备份都需要指定上一次的增量备份的目录名,所以每次都从结束进行增量备份,恢复时将完整备份和增量备份1合并再与增量备份2合并再与增量备份N合并直到最后一次增量合并完成后,那么得到的就是完整备份数据,再进行完整数据的恢复。 先对我的数据库做一次完整备份,不指定任何数据库也不使用时间最为备份子目录名。 innobackupex -uroot

mysql增量备份及恢复解决方案

那年仲夏 提交于 2019-11-30 17:27:59
前言 操作系统崩溃、电源故障、文件系统崩溃和硬件故障等异常状况都可能导致我们正在使用的数据库出现故障而产生数据库中数据不一致的情况。为了保证数据库使用安全,必须定期备份数据库;数据库备份可以分为:完全备份、日志备份、增量备份和文件备份。对于一个大型数据库,频繁执行完全备份可能会需要太多的时间,而且完全备份经常会多次备份一些没有更新过的数据,会造成资源浪费。现在最常用的数据库备份策略是在完全备份的基础上进行较频繁的增量备份。例如,我们可以在数据库使用较少的时段每周进行一次完全备份,然后每天进行一次增量备份,备份下这段时间中可能修改数据库内容的操作,以便在发生文件系统故障、硬件问题等问题导致数据库发生灾难性崩溃的时候利用备份数据进行数据库的恢复。 u 技术分析 MySQL数据库对上述几种导致数据库崩溃的故障都给出了很好的解决办法以保证数据的一致性。 对于操作系统崩溃和电源故障导致的MySQL数据库崩溃,使用MySQL提供的内置方法,在大多数情况下都可以非常有效的恢复:如果我们使用的是MyISAM数据库,可以使用 REPAIR TABLE 或者myisamchk –r 对可能损毁的数据库表进行修补;如果我们使用的是InnoDB,则InnoDB会自动找到挂起的提交了的或未提交的事务列表,并自动回滚未提交的事务和刷新已提交的事务。 如果我们使用前面的方面未能正确恢复被损害的数据

innobackupex在线备份及恢复

时光怂恿深爱的人放手 提交于 2019-11-30 12:25:20
#一、安装 ###1.下载源码: wget https://www.percona.com/downloads/XtraBackup/XtraBackup-2.1.5/source/percona-xtrabackup-2.1.5.tar.gz ###2.安装依赖包: yum install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bzr bison libtool ncurses-devel zlib-devel ###3.解压源码包: tar -zxvf percona-xtrabackup-2.1.5.tar.gz cd percona-xtrabackup-2.1.5 ###4.编译安装 目录中的./utils/build.sh脚本会根据指定的引擎版本,自动解压缩适当的MySQL源码包并进行编译,这是最简单的安装方式。 直接执行: ./utils/build.sh 出现如下提示: [root@test1 percona-xtrabackup-2.1.5]# ./utils/build.sh Build an xtrabackup binary against the specified InnoDB flavor. Usage: build.sh CODEBASE where CODEBASE can

mysqldump全量备份+mysqlbinlog增量备份脚本

北慕城南 提交于 2019-11-29 15:51:09
mysql_mysqldump_backup.sh脚本代码: # Author: laizhiyuan # Date: 20190915 # Desc: Timed online logic backup MySQL By mysqldump cmd #!/bin/bash # 备份目的地IP BACK_DEST_IP=xx.xx.xx.xx # 备份目的地端口 BACK_DEST_PORT=22 # 备份目的地用户 BACK_DEST_USER=root # 目的地备份目录 BACK_DEST_DIR=/opt/backup/mysql/logic/full # 本地备份目录 BACK_DIR=/opt/backup/mysql/logic/full # 脚本工作目录 WORK_DIR=/tmp # mysql工作目录 MYSQL_BASEDIR=/usr/local/mysql # mysqldump命令参数 MYSQLDUMP_HOST=localhost MYSQLDUMP_PORT=3306 MYSQLDUMP_USER=root # 检查目录和环境 function check_mkdir_and_env(){ test ! -d $BACK_DIR && mkdir -p $BACK_DIR || echo "" > /dev/null ssh -p $BACK

专职DBA-Xtrabackup物理备份恢复

不问归期 提交于 2019-11-29 12:19:22
专职DBA-Xtrabackup物理备份恢复 Xtrabackup是Percona公司专门针对MySQL数据库开发的一款开源免费的物理热备工具。 可以对InnoDB和XtraDB事物引擎的数据库实现非阻塞(即不锁表)方式备份。 可以对MyISAM非事物引擎实现锁表方式备份。 1.Xtrabackup的主要特点: 直接复制物理文件,备份恢复数据速度快,安全可靠。 备份期间执行的事物不会间断,备份InnoDB数据不会影响业务。 备份期间不会增加太多数据库的性能压力。 支持对备份的数据进行自动校验。 支持全量、增量、压缩备份及流备份。 支持在线迁移表以及快速创建新的从库。 支持几乎所有版本的MySQL分支。 2.首先你要理解数据库里面的几个数据文件: .idb文件 以独立表空间存储的InnoDB引擎类型的数据文件。 .ibdata文件 以共享表空间存储的InnoDB引擎类型的数据文件。 .frm文件 存放与表相关的元数据(meta)信息以及表结构的定义信息。 .MYD文件 存放MyISAM引擎表的数据文件。 .MYI文件 存放MyISAM引擎的索引信息文件。 3.事务型引擎的ACID特性 MySQL的InnoDB是事务型引擎。 MariaDB的XtraDB是事务型引擎。 事务型引擎的共同特性:4个 原子性:事务的所有SQL语句操作,要么全部成功,要么全部失败。 一致性

[ Mongodb ] 全量备份和增量备份

痴心易碎 提交于 2019-11-29 09:59:31
1. 前言 由于线上的mongodb 数据体量越来越大,如果没有完善的备份方案,发生故障势必造成业务很长时间的暂停。参考了网上方案,写出以下总结和备份方案: 备份方案分为两种:全备和增量备份,二者结合起来使用。 参考链接: https://www.cnblogs.com/xuliuzai/p/9917137.html 感谢作者的分享。 2. 构建mongodb 副本集测试环境 首先在测试环境进行测试,过程如下:   测试机:192.168.118.16 系统:CentOS 7 首先搭建mongodb 副本集(为了和线上环境保持一致)这里使用 mongodb 3.6 的版本,建议和生产环境相同的版本。 Mongdb 没啥安装的, 开箱即用。副本集参考链接: https://www.cnblogs.com/hukey/p/5769548.html rs0:PRIMARY> rs.isMaster(); { "hosts" : [ "192.168.118.16:27017", "192.168.118.16:27018", "192.168.118.16:27019" ], … … 副本集创建成功。 接下来,向集群里写入数据: rs0:PRIMARY> for(var i=1;i<=10000;i++) db.users.insert({id:i, name:"hukey",city:

MySQL之Xtrabackup的使用

早过忘川 提交于 2019-11-28 07:11:00
一、Xtrabackup介绍 XtraBackup(PXB) 工具是 Percona 公司用 perl 语言开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQl(Oracle) 、 Percona Server 和 MariaDB ,并且全部开源。 1.1 Xtrabackup 优点 1)备份速度快,物理备份可靠 2)备份过程不会打断正在执行的事务(无需锁表) 3)能够基于压缩等功能节约磁盘空间和流量 4)自动备份校验 5)还原速度快 6)可以流传将备份传输到另外一台机器上 7)在不增加服务器负载的情况备份数据 1.2 Xtrabackup备份原理 备份开始时首先会开启一个后台检测进程,实时检测mysq redo的变化,一旦发现有新的日志写入,立刻将日志记入后台日志文件xtrabackup_log中,之后复制innodb的数据文件一系统表空间文件ibdatax,复制结束后,将执行flush tables with readlock,然后复制.frm MYI MYD等文件,最后执行unlock tables,最终停止xtrabackup_log。 1.3 增量备份介绍: 1)、首先完成一个完全备份,并记录下此时检查点LSN; 2)、然后增量备份时,比较表空间中每个页的LSN是否大于上次备份的LSN,若是则备份该页并记录当前检查点的LSN。 增量备份优点: 1)