mysql主从维护_mysql主从日常管理维护

mysql主从日常管理维护

1)查看从服务器状态

为了防止复制过程中出现故障从而导致复制进程停止,我们需要经常检查从服务器的复制状态。

一般使用show slave status命令来检查。

例如:

mysql> show slave status \G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.1.109

Master_User: mysql

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql3306-bin.000024

Read_Master_Log_Pos: 438065348

Relay_Log_File: mysql-relay.000751

Relay_Log_Pos: 438065489

Relay_Master_Log_File: mysql3306-bin.000024

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB: mysql,test

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 438065348

Relay_Log_Space: 438065489

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

1 row in set (0.00 sec)

ERROR:

No query specified

在显示 的这些信息中,我们主要关心 Slave_IO_Running 和Slave_SQL_Running 这两个进程状态是否是“yes”,这两个进程的含义分表如下:

Slave_IO_Running:此进程负责从服务器(slave)从主服务器(master)上读取BINLOG日志,并写入从服务器上的中继日志中。

Slave_SQL_Running:此进程负责读取并且执行中继日志中的BINLOG日志。

只要其中有一个进程是no,则表示复制进程停止,错误原因可以从“Last_Errno”字段的值中看到。

除了查看上面的信息,用户还可以通过这个命令了解从服务器的配置情况以及当前和主服务器的同步情况,包括指向那个主服务器,主服务器的端口,复制使用的用户,当前日志恢复到位置等。这些信息都是记录在从服务器这一端的,主服务器上并没有相应的信息。

2) 主从服务器同步维护

在某些繁忙的OLTP(在线事务处理)系统上,由于主服务器更新频繁,而从服务器由于各种原因(比如硬件性能较差)导致更新速度较慢,从而使得主从服务器之间的数据差距越来越大最终对某些应用产生影响。在这种情况下,我们需要定期的进行主从服务器的数据同步,使得主

从数据差距能减到最小。常用的方法是:在负责较低的时候暂时阻塞主数据库的更新,强制主从数据库更新同步。

具体步骤如下:

1.在主服务器上,执行以下语句(注意,会阻塞主数据库的所有更新操作)

Mysql>flush tables with read lock;

Mysql>show master status \G;

记录show语句的输出的日志名和偏移量,这些都是从服务器复制的目的坐标。

2.在从服务器上,执行下面语句,其中master_pos_wait()函数的参数是前面步骤中得到的复制坐标值。

Mysql> select master_pso_wait('mysql-bin.0001','974');

这个select语句会阻塞直到从服务器达到指定的日志文件和偏移量后,返回0,如果返回-1,则表示超时退出。查询返回0时,则从服务器与主服务器同步。

3.在主服务器上,执行下面的语句允许主服务器重新开始处理更新

Mysql> unlock tables;

1、在主上 flush tables with read lock;

2、在从上slave stop

3、在主上show master status

4、在从上CHANGE MASTER TO  MASTER_HOST='192.168.1.109', Master_User='mysql', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql3306-bin.000002', MASTER_LOG_POS=98;

5、从上slave start

6、主上 unlock tables;

3)从服务器复制出错的处理

从服务器更新失败时,首先需要确定是否是从服务器的表与主服务器的不同造成的。如果是表结构不同导致的,则修改从服务器的表与主服务器的相同,然后重新运行start slave语句。

如果不是表结构不同导致的更新失败,则需要确认手动更新是否安全,然后护士来之主服务器的更新失败的语句。跳过来自主服务器的命令:SET GLOBAL SQL_SLAVE_SKIP_COUNTER =  n ,其中n的取值为1或者2。如果来自主服务器的更新语句不使用AUTO_INCREMENT或LAST_INSERT_ID(),n值应为1,否则,值为2.原因是使用AUTO_INCREMENT或LAST_INSERT_ID()的语句需要从二进制日志中取两个事件。以下例子就是在从服务器端牟尼跳过主服务器的两个更新语句的效果。

1.首先在从服务器上停止slave线程

Mysql> stop slave;

Mysql > SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 2

2.然后在主服务器上插入数据

3.从服务器端启动复制进程,检查测试的表,首先发现插入的两条记录呗跳过了,只执行了第3条插入语句。

4) log event entry exceeded max_allowed_packet的处理

如果应用中使用大的BLOG列或者长字符串,那么在从服务器上恢复的时候,可能出现“log event entry exceeded max_allowed_packet”错误,这个因为含有大文本的记录无法通过网络进行传输导致。解决的办法就是在主从服务器上增加max_allowed_packet参数的大小,这个参数的默认值是1MB,可以按照实际需要进行修改,比如下列中将其增大为512MB。

mysql> show variabl

es like 'max_allowed_packet';

+--------------------+-----------+

| Variable_name      | Value     |

+--------------------+-----------+

| max_allowed_packet | 536870912 |

+--------------------+-----------+

1 row in set (0.00 sec)

可以在配置文件中写入

[mysqldump]

quick

max_allowed_packet = 512M

5)多主复制时的自增长 变量冲突问题

在大多数情况下,一般只使用单主复制(一台主服务器对一台或者多台从服务器)。但是在某些情况下,可能会需要使用多主复制(多台主服务器对一台从服务器)。这个时候,如果主服务器的表采用自动增长变量,那么复制到从服务器的同一张表后很可能会引起主键冲突,因为系统参数auto_increment_increment和auto_increment_offset默认值为1,这样多台主服务器的自增变量列迟早会发生冲突。在单数复制时,可以采用默认设置,不会有主键冲突发生。但是使用多主复制时,就需要定制auto_increment_increment和auto_increment_offset的设置,保证多主之间复制到从数据库不会有重复冲突,比如两个master的情况可以按照以下设置:

Master1:auto_increment_increment = 2 ,auto_increment_offset =1:(1,3,5,7………)

Master2:auto_increment_increment = 2 , auto_increment_offset =0 (0,2,4,6……..)

查看:

show variables like 'auto_inc%';

6)查看从服务器的复制进度

很多情况下,我们都想知道从服务器复制的进如何。知道了这个差距,可以帮助我们判断是否需要手工来做主从的同步工作,也可以帮助我们判断从服务器上做统计的数据精度如果。这个值可以通过show processlist中的slave_SQL_running线程的time值得到,它记录了从服务器当期执行sql时间戳与系统时间之间的差距,单位是秒。

mysql> show processlist \G;

*************************** 1. row ***************************

Id: 1

User: system user

Host:

db: NULL

Command: Connect

Time: 4636437

State: Waiting for master to send event

Info: NULL

*************************** 2. row ***************************

Id: 2

User: system user

Host:

db: NULL

Command: Connect

Time: 2    这个time值就是最后执行的复制操作大概是在主服务器上2秒钟前得更新

State: Has read all relay log; waiting for the slave I/O thread to update it

Info: NULL

*************************** 3. row ***************************

Id: 625916

User: root

Host: localhost

db: NULL

Command: Query

Time: 0

State: NULL

Info: show processlist

3 rows in set (0.00 sec)

ERROR:

No query specified

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/354262.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JLBH示例2 –协调遗漏的会计处理

在这篇文章中: 在运行JLBH时考虑或不考虑协调遗漏 一个示例,以数字说明协同遗漏的效果 关于流量控制的讨论 这是我用来描述如果不考虑协调遗漏而进行测量的情况下的示例: 假设您正在等待火车,但由于前面的火车晚了&#xff0…

基于windows平台的命令行软件安装工具Chocolatey的安装

本文介绍Chocolatey的安装和使用 Chocolatey 这是基于.NET Framework 4以上的windows安装软件的命令行工具安装 第一步,打开你的powershell.exe,使用管理员方式运行 第二步,运行命令 Get-ExecutionPolicy如果返回 Restricted ,那么…

vue项目 乐橙云 轻应用直播SDK imouplayer.js

官网案例:https://open.imoulife.com/book/light/sdk.html 文档: https://open.imou.com/developDoc/31 1,下载 对应的资源 https://open.imoulife.com/book/readme/upload.html 2,引入资源 2.1 把下载的资源(static&#xff0c…

windows 开启mysql日志记录_windows下mysql日志开启与查询

修改 my.ini文件加入以下语句(在没有设置的前提下)log-errord:/log/mysql/mysql_log_err.txtlogd:/log/mysql/mysql_log.txt#log-bind:/log/mysql/mysql_log_binlog-slow-queries d:/log/mysql/mysql_log_slow.txt使用以下命令查看是否启用了日志mysql>show variables like …

jmx 复用 jmx_JMX:一些入门说明

jmx 复用 jmxJMX(Java管理扩展)是一种J2SE技术,可以管理和监视Java应用程序。 基本思想是实现一组管理对象,并将实现注册到平台服务器,在平台服务器上,可以使用一组连接器或适配器从本地或远程调用这些实现…

内置函数——filter和map

filter filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False , filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。 它的到的结果是一个迭代器 例…

git 上下载的项目在本地安装依赖时报错 Could not resolve dependency

安装依赖时报错:无法安装依赖 看报错里面的提示:this command with --force, or --legacy-peer-deps –force 会无视冲突,并强制获取远端npm库资源,即使本地有资源也会覆盖掉;–legacy-peer-deps:安装时…

JavaFX技巧23:节省内存! 属性的阴影场

Java 8中引入的属性和属性绑定是非常有用的编程概念。 当您开发用户界面时,它们特别有用。 实际上,它们是如此有用,以至于开发人员成为所有事物都应该是属性而不是原始属性的想法的受害者。 不幸的是,他们很容易忘记,诸…

mysql udb_MySQL InnoDB的一些参数说明

参考:http://addls.com/mysql-innodb-%E4%B9%8B-ibdata1-%E7%98%A6%E8%BA%AB%E5%A4%A7%E6%B3%95.html# 备份数据库:/usr/local/mysql/bin/mysqldump -uDBuser -pPassword –quick –force –routines –add-drop-database –all-databases –add-drop-table > /d…

python_fullstack基础(十一)-常用模块

python常用模块 re模块 一、正则表达式 在线测试工具 http://tool.chinaz.com/regex/ 1、字符组 : [字符组] 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示 字符分为很多类,比如数字、字母、标点等等。 假如你现在…

npm 安装依赖遇到的问题

npm npm的服务器位于国外可能会影响安装 cnpm 淘宝团队做的国内镜像 // 安装 cnpm npm install cnpm -g --registryhttps://registry.npm.taobao.org // 查看版本 cnpm -v // 查 npm 的源 npm config get registry一、cnpm -v 在 cmd 中能识别,但是 VsCode 无法识别…

使用RichTextBox控件实现系统剪切板功能

复制: 1 private void CopytoolStripMenuItem_Click(object sender, EventArgs e) 2 {//复制 3 try 4 { 5 this.Cursor Cursors.WaitCursor; 6 string strTemp richTextBoxSendInfo.SelectedT…

maven 父maven_Maven的鸟瞰图

maven 父maven我们每天要做的一件事是使用Maven通过发出诸如mvn install之类的构建命令来构建我们的项目。 然后,Maven查看我们项目的配置文件(亲切地称为POM),神奇地找出要执行的操作,并且,嘿,…

vue animation css实现左右折叠面板

<div class"left" :class"boxshow ? a1: a2" id"showBox">这里是折叠面板的内容 </div> <i id"left" class"el-icon-d-arrow-left" click"boxshow !boxshow" :class"boxshow ? a3: a4&quo…

mysql断网_断网的情况上如何访问本机的mysql

断网的情况下怎么访问本机的mysql我发现把网络断掉后mysql就不能访问了。使用phpmyadmin(http://localhost/phpmyadmin/index.php?)访问&#xff0c;输入用户名和密码后点击登陆&#xff0c;就会出现“#2002 Cannot log in to the MySQL server”错误。使用命令行登陆&#xf…

Py IO model

事件驱动模型 上节的问题&#xff1a; 协程&#xff1a;遇到IO操作就切换。 但什么时候切回去呢&#xff1f;怎么确定IO操作完了&#xff1f; 很多程序员可能会考虑使用“线程池”或“连接池”。“线程池”旨在减少创建和销毁线程的频率&#xff0c;其维持一定合理数量的线程&a…

Fiddler 扒取微信小程序的图片

安装 Fiddler http://www.downza.cn/soft/234727.html Tools-options配置 如果无法抓取到PC微信小程序 解决办法&#xff1a; 打开小程序&#xff0c;任务管理器找到小程序所在位置&#xff0c;删除文件内容 一般路径为\Tencent\WeChat\XPlugin\Plugins\WMPFRuntime 删除…

JLBH – Java延迟基准线束介绍

在这篇文章中&#xff1a; 什么是JLBH 我们为什么写JLBH JMH和JLBH之间的区别 快速入门指南 什么是JLBH&#xff1f; JLBH是可用于测量Java程序中的延迟的工具。 它具有以下功能&#xff1a; 旨在运行比微型基准测试更大的代码。 适用于使用异步活动&#xff08;如生产者…

mysql 5.7 mts_mysql5.7 中启用MTS后error log中大量Note日志分析

mysql5.7,启用基于logical_clock的多线程复制,发现error日志增长很快&#xff0c;查看日志发现大量关于多线程复制的Note级别日志。1234567891011121314152018-07-03T03:22:01.63837108:00 8941 [Note] Multi-threaded slave statistics for channel : seconds elapsed 298; e…

js比较数字相等

示例代码&#xff1a; <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8" /><title>js比较数字相等</title></head><body><script type"text/javascript">//设置误差范围值--机…