常见全量和增量备份的频率 1) 中小公司:全量每天一次在业务流量低谷执行全备,执行前要进行锁表。 增量恢复的条件,存放一份全备与时刻同步的增量备份。 # @5=1583055203 , #4.将文件中的@1,@2,@3,@4替换为t1表中id,name,sex,address字段,并删除最后字段的","号 sed -i 's/@1/id/g; 1.人为SQL造成的误操作 2.全备和增量 3.恢复时建议对外停止更新 4.恢复全量然后把增量日志中有问题的SQL语句删除,恢复到数据库 5. 检查binlog是否完整,全备是否有效 4.
这里说的灾备测试主要指的是在我们测试过程中手工无法模拟,但是在用户使用产品的时候由于网络的原因又是会经常发生的情况,具体指的就是网络延时、请求失败、session失效等情况,下面我们就来看下针对这些情况我们该如何构造测试环境
热备方案 硬件:server两台,分别用于master-redis及slave-redis 软件:redis、keepalived 实现目标: 由keepalived对外提供虚拟IP(VIP)进行 找到slaveof配置项配置指定的master ip port,有密码则还需配置masterauth 4. 上述用到的所有keepalived配置文件及脚本: https://github.com/binchen-china/keepalived-redis 4. 热备测试 1. 4. 停止master的redis服务 Service redis stop,查看从机ip a,虚拟IP已经在1秒内切换到从机绑定了。 ? 5.
Row-Based 这节我们的内容为MySQL的复制,MySQL复制有两种形式 基于二进制日志文件位置 基于GTID 上节我们讲了如何通过备份主库来进行复制的搭建,如果主库不允许我们进行备份,这时可以通过备库来进行 通过备库进行搭建和通过主库搭建步骤是一样的,只是在备份备库时使用--dump-slave参数而不是--master-data参数 该参数的目的为获取该备库对应的主库的二进制的位置 这里我假设大家已经搭建好了一套主从的复制 REPLICATION SLAVE ON *.* TO 'repl'@'11.12.14.31'; mysql>flush privileges; 这里我们限制该账号只能从同步的三台服务器上连接 4. 文件传输 接下来将主库的dump文件传到备份,之后更改备库的文件权限 从库(半同步) scp /tmp/dumpslave.sql root@11.12.14.30:/tmp 从库(异步) chown 备库导入数据 接下来我们将备份的数据导入到备份 从库(异步) mysql -S /data/mysql/data/mysql.sock -usystem -p </tmp/dumpslave.sql
把备库提升为主库要较为麻烦,我们把备库提升主库分为计划内切换和计划外切换两种场景。 1 计划内切换 备库提升为主库,简单来说,有以下步骤: 停止向老主库写入。 让备库追赶上主库(可选,可以简化后续的步骤)。 将一台备库配置为新主库。 将备库和写操作指向新主库,然后开启主库写入。 但上面的过程中还因此着很多细节。一些场景可能依赖于复制的拓扑结构。 2 计划外切换 当主库崩溃时,需要将一台备库提升为主库。这个过程就比较麻烦。如果只有一台备库,可以直接使用这台备库。但如果有超过一台的备库,就需要做一些额外的工作。 可能有主库上已发生的修改还没有更新到它任何一台备库上的情况。甚至可能一条语句在主库上执行了回滚,但在备库上没有回滚,这样备库可能就超过主库的逻辑复制位置。 2.1 主备结构之备库提升 确定哪台备库的数据最新。
从这期开始讲Oracle Data Guard方面的内容 Data Guard作为Oracle提供的一个高可用及灾备解决方案,理解并可以实施它对于DBA来说是非常重要套的技能 经过前面的讲解我们对Data Guard 已经有了一定的认识,今天讲如何一步步搭建Oracle 11g 物理备库 推荐在创建的过程中打开alert日志方便查看报错信息 tail -f alert_dg2.log ---- Data 1.2 启用强制日志记录 SQL> ALTER DATABASE FORCE LOGGING; 1.3 创建密码文件 默认新建数据库已经创建如果没有则需要创建 注意:如修改了sys密码,需重新拷贝至备库 备库环境准备 2.1 备库监听及服务名设置 首先需要启用dg1的监听服务 lsnrctl start 然后配置tnsnames文件增加dg1 dg2的条目 ? 3.5.2 创建standby redo log 这里我们创建4个SRL日志组 alter database add standby logfile group 10 ('/oradata/dg2/srl
为了解决上述问题,一般采用双机热备解决方案,也就是通过硬件冗余再配合高可用双机热备软件实现的解决方案,高可用双机热备软件自动检测服务的运行状态,当主服务器发生故障,高可用双机热备软件会自动尝试修复故障或启动备用服务器 2 双机热备方案及不同方案的要求、方案对比 2.1 双机热备方案概述 一般实现双机热备的方案有三种,分别是共享存储双机热备方案、镜像双机热备方案、双机双柜双机热备方案,这三种方案对硬件要求不同,大家可以根据自身的业务应用特性来选择具体的双机热备方案以及对应的 2.2 镜像双机热备方案 2.2.1 镜像双机热备方案简介及拓扑 镜像双机热备方案中仅需要两台服务器即可实现双机热备,两台服务器利用本地磁盘存储业务数据,ServHA镜像双机热备软件(ServHA Mirror 双机热备软件产品。 若用户已经拥有两台台服务器,可以采用镜像双机热备方案,对应双机热备软件产品为ServHA Mirror。
还是类比MySQL,RDB相当于dump全备,AOF则像是statement格式的binlog,保存所有redis命令。AOF能保证不丢失数据,当有误删除发生,用AOF中保存的命令去重放以恢复数据。 ,sentinels=3 master3:name=redis13,status=ok,address=192.168.210.39:20013,slaves=2,sentinels=3 master4: master10:name=redis2,status=ok,address=192.168.210.40:20002,slaves=2,sentinels=3 master11:name=redis4, '{print $4}'` let slave_ip_last_part=($master_ip_last_part-39+1)%3+39 slave_ip=192.168.210.
序言 同城异地灾备,主要是用来进行备份容灾的,从而当一个数据中心挂了,另外一个数据中心经过切换之后,能让服务迅速的恢复。 2、 数据库同步 在数据库方面,主要是使用mysql,而mysql则主要是使用主备模式,从而主的在一个机房,而备库则在另外一个机房,在同步的时候,不可避免的情况就是如果一旦主机宕机,从而有可能是丢失数据的 主备复制的延迟考虑,一般主机房和备机房之间使用万兆网络,从而对于一般的数据传输来说,延迟不是很高,基本上是可以忽略的。 在数据库跨机房同步的时候,mysql可能出现脑裂的情况,也就是双机房互联网络出现中断,从而备机房检测到主机房不可用,但是在这个时候,是不能自动进行切换的,需要人工介入处理操作。 4、 业务高可用 所有以上的目标,其实都是为了业务的高可用,那么再进行保证业务高可用的时候,因为使用的都是VM,从而在创建的时候,需要同步在备用机房创建VM,并且在发布程序的时候,需要同步进行发布
建立备份目录 shell>mkdir -p /data/mysql/backup 注意 mysql用户需要有读写权限,并且该目录需要为空,否则备份失败 1.3 开始备份 我们用如下方法对MySQL数据库进行全备 该文件有如下信息 备份类型:全备 开始LSN:0 最后检查点LSN:21068465 最后拷贝的LSN:21071219 可以看到to_lsn和last_lsn不同 说明在备份过程中有DML操作 to_last 该文件包含一些备份的信息就不一一介绍了 4.
使用VRRP(虚拟路由冗余协议)热备份协议,一主多备,公用同一个IP地址(漂移地址,群集地址),但优先级不同 2、keepalived的安装配置: 1)编译安装:需要安装ipvsadm 2)配置文件keepalived.conf 全局配置:global_defs router_id 服务器名称 热备设置:vrrp_instance State 热备状态(主MASTER,从BACKUP) priority 优先级 virtual_ipaddress
Mysql 支持互为主从,主库通过binlog 将执行的语句传给从库,具体的执行机构:
rsync特性 1、支持拷贝特殊文件如链接文件、设备等 2、可以有排除指定文件或目录同步的功能,相当于tar的排除功能 3、可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变 4、 cache目录中的数据保持一致 step1 在192.168.11.16这台主机上制作rsync服务 [root@zutuanxue ~]# rpm -qa | grep rsync rsync-3.1.3-4. zutuanxue ~]# vim /etc/rsyncd/rsyncd.secrets hello:123456 [root@zutuanxue ~]# chmod 600 rsyncd.secrets step4 192.168.11.16主机上的rsync服务 step1 在192.168.11.100这台主机上制作rsync服务 [root@slave ~]# rpm -qa | grep rsync rsync-3.1.3-4. slave ~]# vim /etc/rsyncd/rsyncd.secrets hello:123456 [root@slave ~]# chmod 600 rsyncd.secrets step4
问题现象 Redis 频繁进行主备倒换,通过查看主实例的日志:redis.log发现下面报错: Client id=1317049445 addr=192.168.2.45:8004 fd=40 name sdsfree(client); return; } 单从代码来看,看不出啥,但是代码上面存在注释,我使用我那四级水平翻译了下,可以看出缓存区满了,于是可以想到可能主备同步的时候可能会限制缓存区大小 <hard limit> <soft limit> <soft seconds> 具体含义: class:我理解就是缓冲区的类型,目前Redis的缓冲区分为三个: 普通客户端:normal 主备同步
前面我们也说道,使用物理备份时最快的,那有没有办法实现物理热备呢? --incremental-basedir这个参数是填写最近一次全备的目录做为增备的基础目录 [root@localhost opt]# innobackupex --defaults-file=/etc 才可以全备和曾备连接起来。 这次增备为to_lsn = 20132701。 如下面的命令:--use-memory=4G指定使用的内存,按内存的大小分配,这样可以加快恢复的速度。
问题现象Redis 频繁进行主备倒换,通过查看主实例的日志:redis.log发现下面报错:Client id=1317049445 addr=192.168.2.45:8004 fd=40 name= sdsfree(client); return; }单从代码来看,看不出啥,但是代码上面存在注释,我使用我那四级水平翻译了下,可以看出缓存区满了,于是可以想到可能主备同步的时候可能会限制缓存区大小 <class> <hard limit> <soft limit> <soft seconds>具体含义:class:我理解就是缓冲区的类型,目前Redis的缓冲区分为三个:普通客户端:normal主备同步
在 YashanDB 的生产部署中,为保证业务连续性,主备架构是最常见的高可用模式。 本文将基于实际项目总结,一文讲清:主备切换的操作方式(手动与自动);一主一备与一主两备下的差异;切换过程中应注意的细节。 一、典型问题场景二、适用版本YashanDB 23.2 全版本适用三、一主一备架构切换方式1. 手动切换操作(1)Switchover —— 主动切换,适用于主备同步正常所有连接将被断开,切换过程中主库不可用;建议在业务低峰期执行;操作需在备库执行:-- 检查主备状态yasboot cluster :-- 验证切换yasboot cluster status -c yashandb -d四、一主两备架构下切换方式YashanDB 在一主两备部署下,默认启用 最大保护模式 + 自动选主机制。
一、使用innobackupex创建全备 语法 innobackupex --user=DBUSER --password=DBUSERPASS /path/to/backup/dir/ innobackupex 表示成功 二、使用innobackupex预备全备 一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。 语法: innobackupex --apply-log --use-memory=4G /path/to/BACKUP-DIR/日期文件夹 例子: [root@linuxidc backup]# innobackupex xtrabackup_binlog_info ├── xtrabackup_checkpoints ├── xtrabackup_info └── xtrabackup_logfile 4 [root@linuxidc 2019-09-04_18-01-55]# cat xtrabackup_info uuid = 9e4c2078-7286-11e6-92a6-0800279b6e4d
需要拷贝原库的配置文件(my.cnf),数据文件,日志,系统数据库(/var/lib/mysql/mysql)到新的目标环境,修改相应目录的权限,启动新数据库即可xtrabackup:可以实现mysql增量热备, 通过全备的基础上去对改动的数据进行备份来提高备份效率1. increment_1 /fullback3.第二次增量innobackupex --user=root --password --incremental-dir=/increment_2 /fullback4. 启用二进制日志在cnf配置文件中添加[mysqld]log_bin = /var/lib/mysql/binlogserver_id = 200重启服务,systemctl restart mysqld4.
1、为什么需要双机热备 主要就是为了解决服务器的单点故障问题。 4、Keepalived组成和原理 Keepalived软件主要是通过VRRP协议实现高可用功能的(故障切换方 式)。