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

网站开发需要什么知识京东网站建设

网站开发需要什么知识,京东网站建设,湛江哪里有建网站,如何更新网站快照不要用SECONDS_BEHIND_MASTER来衡量MYSQL主备的延迟时间#xff0c;原因如下#xff1a; A#xff1a;备库Seconds_behand_master值是通过将服务器当前的时间戳与二进制日志中的事件的时间戳对比得到的#xff0c;所以只有在执行事件时才能报告延迟 B#xff1a;如果备库复…不要用SECONDS_BEHIND_MASTER来衡量MYSQL主备的延迟时间原因如下 A备库Seconds_behand_master值是通过将服务器当前的时间戳与二进制日志中的事件的时间戳对比得到的所以只有在执行事件时才能报告延迟 B如果备库复制线程没有运行就会报延迟为null C一些错误如主备的max_allowed_packet不匹配或者网络不稳定时可能中断复制或者停止复制线程但Seconds_behand_master将显示为0而不是显示错误 D即使备库线程正在运行备库有时候可能无法计算延迟时如果发生这种情况备库会报0或者null E一个较大的事务可能导致延迟波动如有一个事务更新数据长达一个小时最后提交这条更新将比它实际发生时间要晚一个小时才记录到二进制日志中当备库执行这条语句时会临时地报告备库延迟一个小时然后很快又变回0 F如果分发主库落后了并且其本身也有已经追赶上它的备库备库的延迟将显示为0而事实上备库和源主库之间此时是有延迟的。    解决这些问题的办法是忽略这个值并使用一些可以直接观察和衡量的方式来监控备库延迟最好的解决办法是使用heartbeat record这是一个在主库上每秒更新一次的时间戳为了计算延迟可以直接用备库当前的时间戳减去心跳记录的值这个方法能够解决刚刚提到的所有问题另外一个额外的好处是我们还可以通过时间戳知道备库当前的复制状况包含在percona toolkit里的pt-heartbeat脚本是复制心跳的最流行的一种实现。    心跳还有其他好处记录在二进制日志中的心跳记录拥有许多用途如在一些很难解决的场景下可以用于灾难恢复。   pt-heartbeat介绍 工作原理 1在主上创建一张heartbeat表按照一定的时间频率更新该表的字段把时间更新进去。 2从主库连接到从上检查复制的时间记录和从库的当前系统时间进行比较得出时间的差异。   使用方法 shell pt-heartbeat [OPTIONS] [DSN] --update|--monitor|--check|--stop   在主库上创建一个测试库测试库里创建好heartbeat表然后开启守护进程来更新xiaoboluo.heartbeat表   mysql create database xiaoboluo; mysql  CREATE TABLE heartbeat ( ts varchar(26) NOT NULL,server_id int unsigned NOT NULL PRIMARY KEY,file varchar(255) DEFAULT NULL, -- SHOW MASTER STATUSposition bigint unsigned DEFAULT NULL, -- SHOW MASTER STATUSrelay_master_log_file varchar(255) DEFAULT NULL, -- SHOW SLAVE STATUSexec_master_log_pos bigint unsigned DEFAULT NULL -- SHOW SLAVE STATUS );   shell  pt-heartbeat -D xiaoboluo --update -h localhost --userusername --passwordpassword --daemonize   在主库上监控从的延迟情况 shell  pt-heartbeat -D xiaoboluo --monitor -h slave-server #一直执行不退出pt-heartbeat -D xiaoboluo --check hslave-server       #执行一次就退出   常用参数 注意需要指定的参数至少有 --stop--update--monitor--check。其中--update--monitor和--check是互斥的--daemonize和--check也是互斥。   --ask-pass 隐式输入MySQL密码--charset 字符集设置--check 检查从的延迟检查一次就退出除非指定了--recurse会递归的检查所有的从服务器。--check-read-only 如果从服务器开启了只读模式该工具会跳过任何插入。 --create-table 在主上创建心跳监控的表如果该表不存在。可以自己建立建议存储引擎改成memory。通过更新该表知道主从延迟的差距。 CREATE TABLE heartbeat ( ts varchar(26) NOT NULL, server_id int unsigned NOT NULL PRIMARY KEY, file varchar(255) DEFAULT NULL, -- SHOW MASTER STATUS position bigint unsigned DEFAULT NULL, -- SHOW MASTER STATUS relay_master_log_file varchar(255) DEFAULT NULL, -- SHOW SLAVE STATUS exec_master_log_pos bigint unsigned DEFAULT NULL -- SHOW SLAVE STATUS ); heratbeat表一直在更改ts和position,而ts是我们检查复制延迟的关键。--daemonize 执行时放入到后台执行--user -u连接数据库的帐号--database -D连接数据库的名称--host -h连接的数据库地址--password -p连接数据库的密码--port -P连接数据库的端口--socket -S连接数据库的套接字文件--file 【--fileoutput.txt】 打印--monitor最新的记录到指定的文件很好的防止满屏幕都是数据的烦恼。--frames 【--frames1m,2m,3m】 在--monitor里输出的[]里的记录段默认是1m,5m,15m。可以指定1个如--frames1s多个用逗号隔开。可用单位有秒s、分钟m、小时h、天d。--interval 检查、更新的间隔时间。默认是见是1s。最小的单位是0.01s最大精度为小数点后两位因此0.015将调整至0.02。--log 开启daemonized模式的所有日志将会被打印到制定的文件中。--monitor 持续监控从的延迟情况。通过--interval指定的间隔时间打印出从的延迟信息通过--file则可以把这些信息打印到指定的文件。--master-server-id 指定主的server_id若没有指定则该工具会连到主上查找其server_id。--print-master-server-id 在--monitor和--check 模式下指定该参数则打印出主的server_id。--recurse 多级复制的检查深度。模式M-S-S...不是最后的一个从都需要开启log_slave_updates这样才能检查到。--recursion-method 指定复制检查的方式,默认为processlist,hosts。--update 更新主上的心跳表。--replace 使用--replace代替--update模式更新心跳表里的时间字段这样的好处是不用管表里是否有行。--stop 停止运行该工具--daemonize在/tmp/目录下创建一个“pt-heartbeat-sentinel” 文件。后面想重新开启则需要把该临时文件删除才能开启--daemonize。--table 指定心跳表名默认heartbeat。   测试环境 Master  192.168.0.68:3306 Slave   192.168.0.38:3306    1在主上运行--daemonize表示守护进程后台运行。  [rootxiaoboluo_192.168.0.68 ~]# pt-heartbeat --userroot --ask-pass --host127.0.0.1 --create-table -D xiaoboluo --interval1 --update --replace --daemonize Enter password:  [rootxiaoboluo_192.168.0.68 ~]# [rootxiaoboluo_192.168.0.68 ~]# pgrep -fl pt-heartbeat4156perl /usr/bin/pt-heartbeat -D xiaoboluo --tableheartbeat --create-table --update -h 127.0.0.1 -uroot --ask-pass --daemonize [rootxiaoboluo_192.168.0.68 ~]#    3.在主上运行监测复制延迟 [rootxiaoboluo_192.168.0.68 ~]# pt-heartbeat -D xiaoboluo --tableheartbeat --monitor -h 192.168.0.68 0.00s [ 0.00s, 0.00s, 0.00s ] 0.00s [ 0.00s, 0.00s, 0.00s ] 0.00s [ 0.00s, 0.00s, 0.00s ] 0.00s [ 0.00s, 0.00s, 0.00s ] 0.00s [ 0.00s, 0.00s, 0.00s ]0表示从没有延迟。 [ 0.00s, 0.00s, 0.00s ] 表示1m,5m,15m的平均值。可以通过--frames去设置。    我们这里看见复制没有延迟那么我们可以使用压力工具测试一下这里因为是虚拟机做测试性能比较差所以直接使用存储过程循环插入数据做测试了。在主库创建测试数据库sbtest随便创建一个测试表sbtest mysqlcreate database sbtest; Query OK, 1 row affected (0.00 sec) mysqlcreate table sbtest(id int unsigned not null auto_increment primary key,test varchar(20));   创建存储过程 mysql  delimiter $$ mysql create procedure test_sbtest(in test_times int) - begin - set x  0; - ins: loop - set x  x  1; - if x  test_times then - leave ins; - end if; - insert into sbtest(test) values(test_sbtest); - end loop ins; - end $$ Query OK, 0 rows affected (0.01 sec) mysql  delimiter ; mysql  call test_sbtest(100000);  #这里调用存储过程循环写入10W次会有一段时间 Query OK, 0 rows affected (5 min 22.40 sec) 再次检测复制延时 [rootxiaoboluo_192.168.0.68 ~]# pt-heartbeat -D xiaoboluo --tableheartbeat --monitor -h 192.168.0.38 0.00s [  0.00s,  0.00s,  0.00s ] 0.00s [  0.00s,  0.00s,  0.00s ] 0.00s [  0.00s,  0.00s,  0.00s ] 0.00s [  0.00s,  0.00s,  0.00s ] 0.00s [  0.00s,  0.00s,  0.00s ] 0.00s [  0.00s,  0.00s,  0.00s ] 0.00s [  0.00s,  0.00s,  0.00s ] 0.00s [  0.00s,  0.00s,  0.00s ] 0.00s [  0.00s,  0.00s,  0.00s ] 0.00s [  0.00s,  0.00s,  0.00s ] 0.00s [  0.00s,  0.00s,  0.00s ] 5.34s [  0.09s,  0.02s,  0.01s ] 0.00s [  0.09s,  0.02s,  0.01s ] 0.00s [  0.09s,  0.02s,  0.01s ] 0.00s [  0.09s,  0.02s,  0.01s ] 0.00s [  0.09s,  0.02s,  0.01s ] 0.00s [  0.09s,  0.02s,  0.01s ] 0.00s [  0.09s,  0.02s,  0.01s ] 0.00s [  0.09s,  0.02s,  0.01s ] 0.00s [  0.09s,  0.02s,  0.01s ] 1.07s [  0.11s,  0.02s,  0.01s ] 在上面的输出结果中红色字体部分可以看到延迟输出了   我们还可以使用--check监测一次就退出: [rootxiaoboluo_192.168.0.68 ~]# pt-heartbeat -D xiaoboluo --tableheartbeat --check -h 192.168.0.38 0.00 [rootxiaoboluo_192.168.0.68 ~]#   注意如果想把这个输出结果加入自动化监控那么可以使用如下命令使监控输出写到文件然后使用脚本定期过滤文件中的最大值作为预警即可 pt-heartbeat -D xiaoboluo --monitor -h 192.168.0.38  --log/tmp/b.txt  --daemonize  #注意--log选项必须在有--daemonize参数的时候才会打印到文件中且这个文件的路径最好在/tmp下否则可能因为权限问题无法创建   #下面是定期过滤--log文件中最大值的脚本加入监控调用即可 #!/bin/bash cat /tmp/b.txt /tmp/b_tmp.txt echo /tmp/b.txt max_timecat /tmp/b_tmp.txt |grep -v ^$ |awk {print $1} |sort -k1nr |head -1 echo $max_time    2如何关闭主上面执行的后台进程。可以用参数--stop 去关闭 [rootxiaoboluo_192.168.0.68 ~]# pt-heartbeat --stop #注意这个命令会把所有的pt-heartbeat进程都停掉 Successfully created file /tmp/pt-heartbeat-sentinel [rootxiaoboluo_192.168.0.68 ~]# 这样就把在主上开启的进程杀掉了后续要继续开启后台进行的话需要把/tmp/pt-heartbeat-sentinel 文件删除否则启动不了   更多详细资料请参考 http://www.percona.com/doc/percona-toolkit/2.1/pt-heartbeat.html     转载于:https://www.cnblogs.com/xiaoboluo768/p/5147425.html
http://www.pierceye.com/news/613739/

相关文章:

  • 卓业网站建设flash 网站 收费
  • 两学一做 答题 网站自己做网站买东西
  • 深圳哪家公司做网站好购物网站开发问题域分析
  • 简单个人网站wordpress插件查询
  • 上海做网站搜索一下马来西亚的网站建设的竞争对手的分析
  • 建站优化易下拉系统163邮箱登录注册
  • c 做网站电子商务平台中搜索词拆解包括
  • 腾讯云10g数字盘做网站够么四川省建设人才网
  • 批量 网站标题中海园林建设有限公司网站
  • 鲜花网站数据库建设免费律师咨询
  • 团队网站建设哪家便宜制作公司网站流程
  • 青龙桥网站建设企业网页是什么
  • 上海网站建设备案号怎么恢复法律咨询网站开发
  • 烟台做网站价格动力网站建设
  • 北戴河网站建设墨刀制作网页教程
  • 成都网站设计开发做得好微信商城怎么开发
  • 江西省城乡建设培训网-官方网站上海建设集团有限公司
  • 凡科网站设计模板grimhelm wordpress
  • 自己做的网站不备案行吗建筑工程集团有限公司
  • 网站初期 权重怎么做彩票类网站开发
  • 南通网站定制公司服务器网站建设维护合同
  • 亳州做商标网站的公司免费的网站模板
  • 西南城乡建设部网站首页python3做网站教程
  • 网站首页设计欣赏个人电影网站建设
  • 导航网站建设怎么给网站图片加alt
  • 备案成功后怎么建设网站宠物喂养网页设计模板以及代码
  • 东莞哪家网站建设比较好wordpress更改语言设置
  • 如何找做网站的客户wordpress适合视频网站吗
  • 网站建设的业务流程图拔萝卜视频播放在线观看免费
  • 建个网站要多少钱高安网站制作