内容简介:发表于 2018-10-30 08:14:52 by月小升本来想买个ECS服务器来作阿里的OSS服务器也不错,很便宜,可以备份网站的其他文件
发表于 2018-10-30 08:14:52 by月小升
本来想买个ECS服务器来作 备份 机,结果发现 阿里云 有个数据库 备份 服务叫DBS,很便宜一个月30元。 买 备份 服务器的预算是2000一年,DBS备份只需要360一年,显然很划算。
阿里的OSS服务器也不错,很便宜,可以备份网站的其他文件
阿里云 DBS备份服务的检查
月小升 估计 阿里云 的 DBS备份和数据库主从备份原理很相似。都是在利用数据库底层的日志文件做增量备份。因为数据库主从备份也设计两个及其重要的因素
1.binlog
2.server_id
java-er.com的服务器的binlog检查和server_id检查结果
binlog模式检查
检测项:源库binlog模式检查
检测内容:检查源数据库的binlog模式是否合法
检测结果:失败
失败原因:源库binlog format 不是row
解决方案:在源库执行:set global binlog_format=ROW,然后kill源 Mysql 库当前的所有连接,否则连接中的session可能以非ROW模式继续写入,会导致增量数据不一致
binlog 基本认识
MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。
一般来说开启二进制日志大概会有1%的性能损耗(参见MySQL官方中文手册 5.1.24版)。二进制有两个最重要的使用场景:
其一:MySQL Replication在Master端开启binlog,Mster把它的二进制日志传递给slaves来达到master-slave数据一致的目的。
其二:自然就是数据恢复了,通过使用
binlog工具来使恢复数据。
二进制日志包括两类文件:二进制日志索引文件(文件名后缀为.index)用于记录所有的二进制文件,二进制日志文件(文件名后缀为.00000*)记录数据库所有的DDL和DML(除了数据查询语句)语句事件。
binlog
1、Statement Level模式(早期默认)
简介:每一条会修改数据的 sql 都会记录到master的bin-log中。Slave在复制的时候sql线程会解析成和原来master端执行过的相同语句来执行。
优点:不需要记录每一行数据的变化,减少bin-log的日志量,节约IO,提高性能。因为他只记录在master上所执行语句的细节,以及执行语句时候的上下文的信息。
缺点:很多新功能的加入在复制的时候容易导致出现问题。
2、Row Level 模式:
简介:日志中会记录成每一行数据被修改的模式,然后再slave 端在对相同的数据进行修改.
优点:在row level模式下,bin-log中可以不记录执行的sql语句的上下文相关的信息。仅仅只需要记录那一条记录被修改了。所以row level的日志内容会非常清楚记录下每一行数据修改的细节,非常容易理解。而且不会出现某些特点情况下的存储过程,或function 以及triggeer的调用和触发无法被正确复制的问题.
缺点:所有执行的语句当记录到日志中的时候,都将以每行记录的修改来记录,可能会产生大量的日志呢。
3、Mixed (前两种的混合模式):根据执行的每一条具体的sql语句来区分对待记录日志的形式;
4、调整模式的方法:
查看当前:show variables like ‘$binlog_format%’;
在配置文件修改:
[mysqld] binlog_format=mixed binlog_format=Row binlog_format=Statement
在线修改立即生效方法:
登录 mysql 后:
set session binlog_format = 'statement'; set session binlog_format ='row'; set session binlog_format ='mixed';
全局修改:set global binlog_format = “ROW” ;
退出登录后查看:
show variables like "%binlog_format%";
全局修改:
set global binlog_format = "ROW" ; set global binlog_format = 'statement'; set global binlog_format = 'mixed';
范例:
全局修改:
set global binlog_format = "ROW" ;
注意是row 模式,查看区别
刷新binlog: mysql admin -uroot -p123456 flush-logs
查看binlog: mysqlbinlog –base64-output=decode-rows -v mysql-bin.000005
查看本地机器的server_id
show variables like '%server_id%';
检测内容
检测项:源库server_id检查
检测内容:检查源数据库是否设置server_id大于1
检测结果
检测结果:失败
失败原因: 源库serverid没有设置,增量备份不能成功拉取binlog
解决方案: 在源实例执行:set global server_id=某个不为1的数,然后重新进行预检查;同时设置my.conf中server_id=某个不为1的数
参考文章
https://www.cnblogs.com/martinzhang/p/3454358.html
http://blog.51cto.com/linuxboys/1605899
- php代码阿里云ECS无法smtp发送QQ企业邮箱
- Linux 安装百度云,自动备份服务器资料
- mysqlreport 安装,报表详解,mysql性能优化
- mysql Lost connection to MySQL server at ‘reading initial communication packet
- Centos 7 mysql 如何重启动MariaDB篇
- mysql 调用,新手常犯的10个错误
- 阿里云关键词互联网违规屏蔽
- 读取mysql一个库下面的所有的表table
- mysql底层命令,用户分配,权限,导出导入数据库
- 对一个未知类型的数据,进行 java 判断
- mysql 的 MyISAM和 InnoDB的区别
- 使用一个脚本监控mysql进程
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- k8s与健康检查--grpc服务健康检查最佳实践
- PostgreSQL基础备份_增量备份与任意点恢复
- 深度备份还原工具 V1.0 正式发布 — 备份还原,安全可靠
- dba+工具:MongoDB热备份工具,解决官方版备份缺陷
- 云备份软件 v1.2 升级,可备份到自建 SFTP
- SQLServer2008r2容灾备份还原及自动删除过期备份
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JavaScript语言精粹
Douglas Crockford / 赵泽欣、鄢学鹍 / 电子工业出版社 / 2009-4 / 35.00元
本书通过对JavaScript语言的分析,甄别出好的和坏的特性,从而提取出相对这门语言的整体而言具有更好的可靠性、可读性和可维护性的JavaScript的子集,以便你能用它创建真正可扩展的和高效的代码。 雅虎资深JavaScript架构师Douglas Crockford倾力之作。 向读者介绍如何运用JavaScript创建真正可扩展的和高效的代码。一起来看看 《JavaScript语言精粹》 这本书的介绍吧!