热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL原理详解及部署

Mysql支持几种不同形式的复制如:单双向、链式级联、异步复制。在复制过程中,一个服务器充当主服务器(master)而一个或多个其他

Mysql支持几种不同形式的复制如:单双向、链式级联、异步复制。在复制过程中,一个服务器充当主服务器(master)而一个或多个其他

一、MySQL主从复制原理

什么是mysql主从复制介绍

Mysql支持几种不同形式的复制如:单双向、链式级联、异步复制。在复制过程中,一个服务器充当主服务器(master)而一个或多个其他的服务器充当从服务器(slave)如果设置了链式级联复制,那么从slave服务器除了当从服务器,还会作为其他服务器的主服务器。

当配好主从复制后,数据库的内容更新应该都在master服务器上,避免用户对主服务器上数据库内容的更新与对从服务器上数据库内容的更新发生了冲突。生产环境中一般会忽略授权表的同步,对在从服务器上的用户仅授权select读权限。或在my.cnf配置文件中加read-only参数,来确保从数据库只读,当然二者同时操作效果更佳。

一般生产环境中会有一个M-->S 或者是一个M-->多个S。在同步的时候还可以双向同步M<==>M.而级联就是A-->B-->C-->D.在从库的my.cnf配置文件中加read-only参数来确保从库只读。常规情况是不允许的,当然如果能够保证不对同一个表写数据可以了。或者我们在从库上只对用户授权select权限。

mysql主从结构的作用:

1)主从服务器架构的设置,可以大大加强数据架构的健壮性,当主服务器出现问题时,我们可以切换到从服务器继续提供服务。

这类似我们说的NFS存储数据通过inotify+rsync实时同步到备份的nfs上的过程。只不是这里是同步mysql数据库的内容而已,用的是mysql自带的工具。

2)主从服务器价格可实现对用户的请求实现读写分离,即通过在从服务器上处理用户select查询请求,降低用户查询响应时间。及读写给主服务器带来的压力。对于更新的数据(update,insert,delete)仍然交给主服务器处理,确保主服务器和从服务器保持实时同步。

如果网站是以非更新为主的业务,如blog,www首先展示等业务,读请求比较多,这时从服务器的负载均衡策略就很有效了,这就是读写分离数据库结构。

3)可以把几个不同的从服务器,根据公司的业务进行拆分,比如有为外部用户提供查询服务的从服务器,有用来备份的从服务器,还有提供公司内部后台、脚本、日志分析及开发人员服务的从服务器。这样拆分除了减轻主服务器的压力外。使得对外用户浏览,对内处理公司内部用户业务,及DBA备份业务互不影响。具体可以看下面的简单架构来说明:

我们现在是一主5从,只要我们向这1主写数据,那么5从就都会同时更新。提示:其中s1 2 3 可以通过lvs做成负载均衡的模式。这样第4台从库给我们的后台,内部访问。

后台的数据库独立出来,安装在备份数据库上,这样我们测试使用的数据就不会影响到线上的环境,也能够保证真实情况。而我们的备份数据库,,要开启binlog功能,做数据库的增量备份功能。

-------小结----------------------------------------------------------------

数据库主从同步跟sersync实时同步是一样的道理。只是我们的sersync是同步文件,而我们这次是同步数据库数据而已。MySQL同步是利用自带的工具来进行同步。主从架构我们可以在从库上执行select查询请求,降低用户查询响应时间及读写给服务器带来的压力。在数据库里面,还有这样的问题:当数据库在更新的时候是没办法做其他操作的如查询。对于更新数据一般都是通过update inserter delete。

如果网站是以非更新的业务为主(浏览为主),读请求比较多,那么这时候从服务器的负载均衡策略就很有效了。这就是传说中的读写分离结构。从库的作用还有很多不同的用途。有为外部用户提供查询服务的从服务器,有用来备份的从服务器,还有提供公司内部后台,脚本,日志分析及开发服务的从服务器。这样拆分能够减轻主服务器的压力。

-------小结----------------------------------------------------------------

相关阅读:

RHEL 6.4(i386)安装MySQL 5.6的方法

Linux网站架构系列之Apache----部署篇

MySQL完整安装和主从双机配置

RHEL6平台rpm方式安装MySQL数据库

RedHat 6.3安装MySQL-server-5.6.13-1.el6.x86_64.rpm

Ubuntu 12.04下源代码安装MySQL5.6以及Python-MySQLdb


推荐阅读
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • .htaccess文件 ... [详细]
  • Linux下部署Symfoy2对app/cache和app/logs目录的权限设置,symfoy2logs
    php教程|php手册xml文件php教程-php手册Linux下部署Symfoy2对appcache和applogs目录的权限设置,symfoy2logs黑色记事本源码,vsco ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一,尤其是在大规模系统中,数据库集群已经成为必备的配置之一。文章详细介绍了主从数据库架构的好处和实验环境的搭建方法,包括主数据库的配置文件修改和设置需要同步的数据库等内容。MySQL的主从复制功能在国内外大型网站架构体系中被广泛采用,本文总结了作者在实际的Web项目中的实践经验。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • 负载均衡_Nginx反向代理动静分离负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分
    nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解 ... [详细]
author-avatar
奥咨达医疗器_械丶服务集团
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有