热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

MySQL服务器镜像配置_MySQL

MySQL服务器镜像配置
通过镜像机制可把数据从一个地方复制到另一个地方,并能实现同步两个或多个地方的数据。

MySQL服务器也支持镜像,大提高数据的安全性和稳定性。下面介绍一下MySQL数据中的镜像机制:

在镜像关系中,一个MySQL服务器扮演主服务器角色,另外一个或多个服务器扮演从服务器角色,从服务器中的数据和主服务器中的数据完全一样。

在镜像建立之前,主服务器和从服务器必须进行一次完全同步。同步之后,在主服务器上所做的操作将会在从服务器上再实现,主服务器上的操作不是直接作用于从服务器上的。

负责在主、从服务器上传输各种修改动作的媒介是主服务器上的二进制变更日志,该日志记录着主服务器上所有的操作动作。因此,主服务器必须激活二进制日志功能。

从服务器必须有足够的权限从主服务器上接收二进制日志文件。镜像协调信息记录从服务器的进展情况,包括,从服务器正在读取的二进制变更日志文件名和它在该文件里的当前读写位置。

每个主服务器可以有多个从服务器,但每个从服务器只能有一个主服务器。但MySQL服务器允许把一个从服务器作为另一个从服务器的主服务器,这样就可创建一个镜像服务器链。

镜像机制在MySQL中还是一个新生事物,最早实现于3.23.15版。各版本间的镜像能力有差异,一般来说,建议大家尽量使用最新的版本,下面列举了不同版本的MySQL服务器在镜像机制方面的兼容规则:

3.23.x系统版本的从服务器不能与4.x系统版本的主服务器通信。

4.0.0版本的从服务器只能与4.0.0版本的主服务器通信。

4.0.1或更高版本的从服务器既能与3.23.x系统版本的主服务器通信,也能与4.x系统版本的主服务器通信。但后一种情况要求主服务器的版本号等于或大于从服务器的版本号。

一般来说,建议遵循以下原则:

要尽可能地让主服务器和从服务器都使用同一版本系统。

在选定系统后,尽量使用该系统的最新版本。

建立主从镜像服务器的步骤:

确定主从服务器的镜像ID号,主从服务器的ID号不能相同。在启动主从服务器时,用--server_id启动选项给出其ID。

从服务器必须在主服务器上有一个具备足够的权限的帐户,从服务器将使用该帐户去连接主服务器并请求主服务器把二进制变更日志发送给它。可用以下命令创建这个帐户:

mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'slave_host' IDENTIFIED BY 'slave_pass';
#REPLICATION权限只MySQL4.0.2后版本,之前的版本请用FILE权限。
把主服务器上的数据库文件拷贝到从服务器上完成最初同步工作。也可用备份后再加载的方法。在MySQL 4.0.0及以后版本里,还可用在主服务器上运行LOAD DATA FROM MASTER语句来建立从服务器。但有约束条件:

数据表要全部是MyISAM表

为发出这条指令而在连接从服务器时使用的帐户必须有SUPER权限。

从服务器用来连接主服务器的帐户必须具备RELOAD和SUPER权限。注意,这是一个主服务器上的帐户,而用来发出LOAD DATA FROM MASTER语句的帐户是一个从服务器上的帐户。

LOAD DATA FROM MASTER语句在执行时需申请一个全局性的读操作锁,这个锁在语句执行期间阻塞主服务器上一切的写操作。

无论用哪种方法同步数据,都要确保在开始制作备份到给主服务器重新配置好二进制日志功能这段时间,不能在主服务器上发生修改操作。

关闭服务器。

对主服务器的配置进行修改--把它的镜像ID告诉它并激活其二进制日志功能。在主服务器要读取的选项文件内增加以下内容:

[mysqld]
server-id=master_server_id
log-bin=binlog_name
重新启动主服务器,从现在开始,它将把客户对数据库的修改操作记录到二进制变更日志里。如果在此之前已经激活了二进制日志功能,则要在重启前把二进制变更日志备份下来,在重启后再发一条RESET MASTER语句去清除现有的二进制变更日志。

关闭从服务器。

对从服务器进行配置,使它知道自已的镜像ID,到哪里去找主服务器以及如何去连接主服务器。配置内容如下:

[mysqld]
server-id=slave_server_id
master-host=master_host
master-user=slave_user #在主服务器上为从服务器建立的帐户
msater-password=slave_pass #在主服务器上为从服务器建立的帐户的密码
master-connet-retry=30 #设置连接重试间隔,默认为60秒
master-retry-count=100000 #设置重试次数,默认为86400次
注:最后两个选项在网络连接不可靠时设置
重新启动从服务器。从服务器用两个信息源来确定它自已在镜像工作中的进度位置:一个是数据目录中的master.info文件,另一个是启动选项所给定的配置信息。第一次启动从服务器时,master.info文件不存在,从服务器会根据选项文件中给出的各种master-xxx选项值去连接主服务器。一旦连接成功,从服务器会创建一个master.info文件以保存各种连接参数和它自已的镜像工作状态。如果以后再重启从服务器,从服务器会优先读取该文件,而不是选项文件。所以如果你修改了选项文件的内容,想该选项生效就要删除master.info文件并重启从服务器。

以上步骤是镜像所有数据库的操作过程,如果我们想把mysql权限数据保留在主服务器上,排除在镜像机制外的话,可用在选项文件的[mysqld]中加入--binlog-ignore-db=mysql选项,这样,mysql数据库上的操作就不会记录在二进制变更日志里。如要排除其它数据库,只要增加多几个该选项即可。

通过以下几个命令可监控和管理主从服务器:

SLAVE STOP,SLAVE START用于挂起来恢复从服务器上镜像,如当备份时,可用该语句让从服务器暂时停止镜像活动。

SHOW SLAVE STATUS,在从服务器上查看其镜像协调信息,这些信息可以用来判断哪些二进制变更日志已经不再使用。

PURGE MASTER,在主服务器上对二进制变更日志进行失效处理。删除所有从服务器都不再使用的二进制变更日志。

CHANGE MASTER,在从服务器上修改镜像参数。如正在读取主服务器上哪个二进制变更日志,正在写哪个中继日志文件等。

在MySQL4.0.2之后版本中,镜像机制中的从服务器由两个内部线程组成:

一个叫“I/O线程”,负责与主服务器通信,请求主服务器发送二进制变更日志,并把接收到的数据修改命令写入某个中继日志文件;用SLAVE STOP IO_THREAD或SLAVE START IO_THREAD可挂起或恢复该线程。

另一个叫“SQL线程”,负责从中继日志中读取数据修改命令并执行。同理,用SLAVE STOP SQL_THREAD或SLAVE START SQL_THREAD可挂起或恢复该线程。

中继日志文件默认的文件为hostname-relay-bin.nnn和hostname-relay-bin.index。可用从服务器的--relay-log和--relay-log-index选项修改。在从服务器中还有一个relay-log.info中继信息文件,可用--relay-log-info-file启动选项修改文件名。

推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 推荐一个ASP的内容管理框架(ASP Nuke)的优势和适用场景
    本文推荐了一个ASP的内容管理框架ASP Nuke,并介绍了其主要功能和特点。ASP Nuke支持文章新闻管理、投票、论坛等主要内容,并可以自定义模块。最新版本为0.8,虽然目前仍处于Alpha状态,但作者表示会继续更新完善。文章还分析了使用ASP的原因,包括ASP相对较小、易于部署和较简单等优势,适用于建立门户、网站的组织和小公司等场景。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了如何在MySQL中将零值替换为先前的非零值的方法,包括使用内联查询和更新查询。同时还提供了选择正确值的方法。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
author-avatar
yun悠然_434
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有