当前位置: 首页 > news >正文

深圳营销型网站建设-龙华信科cnzz网站代做

深圳营销型网站建设-龙华信科,cnzz网站代做,齐河网站建设公司,做网站代码审计哪个工具比较好MySQL 主备一致主备切换binlog 格式statementrowmixed生产格式循环复制问题主备切换 MySQL 主备切换流程 : 状态 1 : 客户端的读写都直接访问节点 A#xff0c;而节点 B 是 A 的备库#xff0c;只将 A 的更新都同步过来 , 并本地执行。来保持节点 B 和 A 的数据是相同当切换… MySQL 主备一致主备切换binlog 格式statementrowmixed生产格式循环复制问题主备切换 MySQL 主备切换流程 : 状态 1 : 客户端的读写都直接访问节点 A而节点 B 是 A 的备库只将 A 的更新都同步过来 , 并本地执行。来保持节点 B 和 A 的数据是相同当切换成状态 2 : 客户端读写访问的都是节点 B而节点 A 是 B的备库 建议将备库设为只读 (readonly) 模式 一般查询语句会被放备库上查设置为只读 , 能防止误操作防止切换逻辑有 bug如 : 切换过程中出现双写造成主备不一致readonly 状态能判断节点的角色readonly 对超级 (super) 权限用户是无效而同步更新的线程 (有超级权限) 主备流程图 : 备库 B 通过 change master 设置主库 A 的 IP、端口、用户名、密码从哪个位置 (文件名 , 日志偏移量) 开始请求 binlog备库 B 执行 start slave 备库会启动两个线程 : io_thread (与主库建立连接 ) , sql_thread主库 A 校验完用户名、密码后开始按备库 B 传过来的位置从本地读取 binlog发给 B备库 B 拿到 binlog 后写到本地文件 (中转日志 (relay log) )sql_thread 读取中转日志解析出日志里的命令并执行 binlog 格式 binlog 有两种格式 : statementrowmixed : 前两种格式的混合 测试表/数据 : CREATE TABLE t (id int(11) NOT NULL,a int(11) DEFAULT NULL,t_modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (id),KEY a (a),KEY t_modified(t_modified) ) ENGINEInnoDB;insert into t values(1,1,2018-11-13); insert into t values(2,2,2018-11-12); insert into t values(3,3,2018-11-11);# 注意这俩条数据 insert into t values(4,4,2018-11-10); insert into t values(5,5,2018-11-09);查看 binlog 记录 delete 语句 delete from t /*comment*/ where a4 and t_modified2018-11-10 limit 1;statement statement : binlog 记录的 SQL 原语句 show binlog events in master.000001;警告信息 : statement 格式delete 中带 limit会认为该命令是 unsafe show warnings;statement : delete 带 limit可能出现主备数据不一致 : delete 用索引 a就会删除 a4 该行用索引 t_modified那就删除 t_modified2018-11-09’ ( a5 该行 )当主库用索引 a而备库用索引 t_modified 。就会出现主备不一致 row row 格式 binlog : row 的 binlog 没有 SQL 原语句只能换成 Table_map (操作表) , Delete_rows (删除的行为) 解析 binlog 内容 : 从 8900 位置开始 server id 1 : 该事务在 server_id1 该库Table_map : 显示打开的表map 226 : 用于区分不同表binlog_row_image 默认配置是 FULLDelete_rows 会有删掉的行的所有字段的值 ; binlog_row_image MINIMAL : 记录必要的信息只记录 id4 信息最后 Xid : 事务被正确提交 mysqlbinlog -vv data/master.000001 --start-position8900;binlog_formatrow : binlog 记录真实删除行的主键 idbinlog 传到备库去就肯定会删除 id4 行不会造成主备不一致问题 mixed mixed : 即利用 statment 优点又避免了数据不一致问题 MySQL 会判断该 SQL 是否可能引发主备不一致可能就用 row 格式否则就用 statement 格式 row 的缺点 : 很占存储。如 : delete 删掉 10 万行数据 , 0 万条记录都写到 binlog statement : SQL 记录到 binlog 仅占用几十个字节 mixed 格式的特别点 : insert into t values(10, 10, now());该 SQL 用 statement 格式 : 炸一看会引发主备不一致 用 mysqlbinlog 查看 : 其中 : SETTIMESTAMP1546103491 : 约定 now() 的返回时间依然能保障主备数据的一致性 生产格式 生产环境依然用 row 格式 , 其原因 : 利于恢复数据 各CUD 的恢复角度 : delete : 会把删掉的整行信息保存起来。所以当执行完一条 delete 后发现删错数据了就在 binlog 中记录的 delete 转成 insert把错删的数据插入就可以恢复insert : 会记录所有的字段信息能精准确定刚插入的那行数据。只要将 insert 转成 delete 删除掉被误插入数据就行update : 会记录修改前整行的数据和修改后的整行数据。只要将 event 前后的信息对调下再去进行更新恢复 循环复制问题 生产环境使用比较多的是双 M 结构 : 节点 A 和 B 之间总是互为主备关系 双 M 结构有个循环复制问题 : 建议参数 : log_slave_updates on : 备库执行 relay log 后生成 binlog节点 A 更新一条语句再生成 binlog 发给节点 B节点 B 执行完更新语句 , 也会生成 binlog而节点 A 同时又是节点 B 的备库 : 会把节点 B 新生成的 binlog 拿过来执行一次 解决循环复制问题 : 两个节点的 server id 必须不同 (或者不能成为主备关系)binlog 中记录该命令第一次执行时 , 所在实例的 server id备库接到 binlog 并重放时生成原 binlog 的 server id 相同的新 binlog备库 binlog 后会先判断 server id当与自己相同表示该 binlog 是自己生成就直接丢弃该 binlog 具体流程 : 节点 A 更新数据binlog 记录 A 的 server id传到节点 B 执行后节点 B 生成的 binlog 的 server id 就是 A 的 server id再传给节点 AA 判断该 server id 是否与自己的相同当相同就不执行该日志死循环在这里就断掉
http://www.w-s-a.com/news/658040/

相关文章:

  • 做网站运营的职业生涯规划wordpress分类显示图片
  • 网站建设与制作总结沈阳百度广告
  • 网站管理系统 手机会员制网站搭建wordpress
  • 做物品租赁网站清新wordpress主题
  • 优秀专题网站家居企业网站建设市场
  • 中山市有什么网站推广wordpress轻应用主机
  • 洗头竖鞋带名片改良授权做网站不贵整个世界
  • 设计电子商务网站建设方案微信如何开发自己的小程序
  • 建设网站公司哪里好相关的热搜问题解决方案做网站要看什么书
  • 网站建设重要性黄岐建网站
  • 做网站电销《电子商务网站建设》精品课
  • 地方商城网站海外网站推广方法
  • 乐山 网站建设安阳给商家做网站推广
  • 网站空间一般多大邢台网站建设有哪些
  • h5网站开发工具有哪些wordpress清空post表
  • 公司开网站干嘛怎么制作一个免费的网站模板
  • 群晖wordpress搭建网站网站建设及管理
  • 中山企业网站建设公司抖音代运营合作模式
  • 南通营销网站开发做网站页面多少钱
  • 桂林生活网官方网站云主机和云电脑的区别
  • 内部网络网站怎么做vue做单页面网站
  • 如何建立网站教程wordpress粘帖图片
  • 广东网站备案要多久网站开发 pdf 文字版
  • 学校网站方案帮别人做钓鱼网站吗
  • 如何加强网站建设和信息宣传wordpress 搜索提示
  • 灰色网站怎么做php yaf 网站开发框架
  • 浙江建设网站首页提供做网站公司有哪些
  • 建公司网站报价公司seo是什么级别
  • 可信赖的武进网站建设中山网站建设方案
  • 网站设计方面有什么公司运动鞋网站建设目的