精华内容
下载资源
问答
  • 主要介绍了Mysql主从复制作用和工作原理详解,主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库,需要的朋友可以参考下
  • Mysql主主从从复复制制作作用用和和工工作作原原理理详详解解 这篇文章主要介绍了Mysql主从复制作用和工作原理详解主从复制是用来建立一个和主数据库完全一样的数据 库环境称为从数据库主数据库一 是准实时的业务...
  • Mysql 主从复制 作用和原理

    万次阅读 多人点赞 2019-03-13 09:36:54
    一、什么是主从复制? 主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。您看,像在mysql数据库中,支持单项、异步赋值。在赋值过程中,一个服务器充当主...

    一、什么是主从复制?

    主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。您看,像在mysql数据库中,支持单项、异步赋值。在赋值过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器。此时主服务器会将更新信息写入到一个特定的二进制文件中。并会维护文件的一个索引用来跟踪日志循环。这个日志可以记录并发送到从服务器的更新中去。当一台从服务器连接到主服务器时,从服务器会通知主服务器从服务器的日志文件中读取最后一次成功更新的位置。然后从服务器会接收从哪个时刻起发生的任何更新,然后锁住并等到主服务器通知新的更新

    二、主从复制的作用(好处,或者说为什么要做主从)重点?

    做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。
    架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的评率,提高单个机器的I/O性能。
    读写分离,使数据库能支持更大的并发。在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度。

     1--在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力;(主库写,从库读,降压)
     2--在从主服务器进行备份,避免备份期间影响主服务器服务;(确保数据安全)
     3--当主服务器出现问题时,可以切换到从服务器。(提升性能)

    三、主从复制的原理?

    1.数据库有个bin-log二进制文件,记录了所有sql语句。

    2.我们的目标就是把主数据库的bin-log文件的sql语句复制过来。

    3.让其在从数据的relay-log重做日志文件中再执行一次这些sql语句即可。

    4.下面的主从配置就是围绕这个原理配置

    5.具体需要三个线程来操作:

    1.binlog输出线程:每当有从库连接到主库的时候,主库都会创建一个线程然后发送binlog内容到从库。在从库里,当复制开始的时候,从库就会创建两个线程进行处理:
    2.从库I/O线程:当START SLAVE语句在从库开始执行之后,从库创建一个I/O线程,该线程连接到主库并请求主库发送binlog里面的更新记录到从库上。从库I/O线程读取主库的binlog输出线程发送的更新并拷贝这些更新到本地文件,其中包括relay log文件。

    3.从库的SQL线程:从库创建一个SQL线程,这个线程读取从库I/O线程写到relay log的更新事件并执行。
     

    可以知道,对于每一个主从复制的连接,都有三个线程。拥有多个从库的主库为每一个连接到主库的从库创建一个binlog输出线程,每一个从库都有它自己的I/O线程和SQL线程。

    主从复制如图  帮助理解:

    四、主从复制的好处?

    做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。
    架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的评率,提高单个机器的I/O性能。
    读写分离,使数据库能支持更大的并发。在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度。
     

    好处一:实现服务器负载均衡

    通过服务器复制功能,可以在主服务器和从服务器之间实现负载均衡。即可以通过在主服务器和从服务器之间切分处理客户查询的负荷,从而得到更好地客户相应时间。通常情况下,数据库管理员会有两种思路。

    一是在主服务器上只实现数据的更新操作。包括数据记录的更新、删除、新建等等作业。而不关心数据的查询作业。数据库管理员将数据的查询请求全部 转发到从服务器中。这在某些应用中会比较有用。如某些应用,像基金净值预测的网站。其数据的更新都是有管理员更新的,即更新的用户比较少。而查询的用户数 量会非常的多。此时就可以设置一台主服务器,专门用来数据的更新。同时设置多台从服务器,用来负责用户信息的查询。将数据更新与查询分别放在不同的服务器 上进行,即可以提高数据的安全性,同时也缩短应用程序的响应时间、提高系统的性能。

    二是在主服务器上与从服务器切分查询的作业。在这种思路下,主服务器不单单要完成数据的更新、删除、插入等作业,同时也需要负担一部分查询作 业。而从服务器的话,只负责数据的查询。当主服务器比较忙时,部分查询请求会自动发送到从服务器重,以降低主服务器的工作负荷。当然,像修改数据、插入数 据、删除数据等语句仍然会发送到主服务器中,以便主服务器和从服务器数据的同步。

     

    好处二:通过复制实现数据的异地备份

    可以定期的将数据从主服务器上复制到从服务器上,这无疑是先了数据的异地备份。在传统的备份体制下,是将数据备份在本地。此时备份 作业与数据库服务器运行在同一台设备上,当备份作业运行时就会影响到服务器的正常运行。有时候会明显的降低服务器的性能。同时,将备份数据存放在本地,也 不是很安全。如硬盘因为电压等原因被损坏或者服务器被失窃,此时由于备份文件仍然存放在硬盘上,数据库管理员无法使用备份文件来恢复数据。这显然会给企业 带来比较大的损失。

    而如果使用复制来实现对数据的备份,就可以在从服务器上对数据进行备份。此时不仅不会干扰主服务气的正常运行,而且在备份过程中主服务器可以继 续处理相关的更新作业。同时在数据复制的同时,也实现了对数据的异地备份。除非主服务器和从服务器的两块硬盘同时损坏了,否则的话数据库管理员就可以在最 短时间内恢复数据,减少企业的由此带来的损失。

     

    好处三:提高数据库系统的可用性

    数据库复制功能实现了主服务器与从服务器之间数据的同步,增加了数据库系统的可用性。当主服务器出现问题时,数据库管理员可以马上让从服务器作为主服务器,用来数据的更新与查询服务。然后回过头来再仔细的检查主服务器的问题。此时一般数据库管理员也会采用两种手段。

    一是主服务器故障之后,虽然从服务器取代了主服务器的位置,但是对于主服务器可以采取的操作仍然做了一些限制。如仍然只能够进行数据的查询,而 不能够进行数据的更新、删除等操作。这主要是从数据的安全性考虑。如现在一些银行系统的升级,在升级的过程中,只能够查询余额而不能够取钱。这是同样的道理。

    二是从服务器真正变成了主服务器。当从服务器切换为主服务器之后,其地位完全与原先的主服务器相同。此时可以实现对数据的查询、更新、删除等操 作。为此就需要做好数据的安全性工作。即数据的安全策略,要与原先的主服务器完全相同。否则的话,就可能会留下一定的安全隐患。
     

    四 从数据库的读的延迟问题了解吗?如何解决?

    主库宕机后,数据可能丢失
        从库只有一个sql Thread,主库写压力大,复制很可能延时
    解决方法:

    半同步复制—解决数据丢失的问题
        并行复制—-解决从库复制延迟的问题

    主从复制和主主复制区别?

    最大区别是 主从是对主操作数据,从会实时同步数据。反之对从操作,主不会同步数据,还有可能造成数据紊乱,导致主从失效。 主主则是无论对那一台操作,另一个都会同步数据。一般用作高容灾方案 

    加油噢!!!

     

    展开全文
  • 二、主从复制作用 1、做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。 2、架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低...

    该文章是转载的,但是原文中有些描述的不准确,进行了修改。

    一、什么是主从复制?
    主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是准实时的业务数据库。


    二、主从复制的作用
    1、做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。
    2、架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。
    3、读写分离,使数据库能支撑更大的并发。在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度。

    二、主从复制的目的

    目的是:保证主从节点数据的一致性,实现高可用


    三、主从复制的原理
    1.数据库有个bin-log二进制文件,记录了所有sql语句。
    2.我们的目标就是把主数据库的bin-log文件的sql语句复制过来。
    3.让其在从数据的relay-log重做日志文件中再执行一次这些sql语句即可。
    4.下面的主从配置就是围绕这个原理配置
    5.具体需要三个线程来操作:
    1.binlog输出线程:每当有从库连接到主库的时候,主库都会创建一个线程然后发送binlog内容到从库。在从库里,当复制开始的时候,从库就会创建两个线程进行处理:
    2.从库I/O线程:当START SLAVE语句在从库开始执行之后,从库创建一个I/O线程,该线程连接到主库并请求主库发送binlog里面的更新记录到从库上。从库I/O线程读取主库的binlog输出线程发送的更新并拷贝这些更新到本地文件,其中包括relay log文件。

    3.从库的SQL线程:从库创建一个SQL线程,这个线程读取从库I/O线程写到relay log的更新事件并执行。

    可以知道,对于每一个主从复制的连接,都有三个线程。拥有多个从库的主库为每一个连接到主库的从库创建一个binlog输出线程,每一个从库都有它自己的I/O线程和SQL线程。
    主从复制如图:

    原理图2,帮助理解!

    步骤一:主库db的更新数据的SQL(DDL/DML)被写到binlog
    步骤二:从库发起连接,连接到主库
    步骤三:此时主库创建一个binlog dump线程,当提交事务时,通过事件的方式通知IO线程。把binlog的内容发送到从库
    步骤四:从库启动之后,创建一个I/O线程,接收到主机发送的事件之后,读取主机传过来的binlog内容并写入到relay log.
    步骤五:从机也会创建一个SQL线程,从relay log里面读取新的SQL内容,从Exec_Master_Log_Pos位置开始执行读取到的更新事件,将更新内容写入到slave的db.
     

    展开全文
  • 小贝_mysql主从复制作用以及案例

    千次阅读 2015-07-25 23:22:29
    mysql用户授权命令,mysql用户授权作用、mysql bin-log日志,开启mysql bin-log日志,操作mysql bin-log日志、mysql主从复制,mysql主从复制案例和作用

    mysql主从复制

    简要:

    一、mysql用户授权

    二、mysql bin-log日志

    三、mysql主从复制

     

    一、mysql用户授权

    1、命令

    2、作用:进行权限控制

    3、例子:

    (备注: 允许用户xiaobei从localhost访问mysql,而且需要密码验证,密码为xiaobei)

    4、查看mysql用户权限表

     

     

    二、bin-log日志

    1、查看bin-log是否开启

          

    2、开启bin-log日志

           修改配置文件

           [mysqld]

           log-bin=mysql-bin

    3、重启mysql服务器,验证是否开启

          

    4、物理结构

    5、与bin-log有关的日志刷新

           5.1、flush logs

           生成一个最新的bin-log日志

            

           5.2、show master status;

           查看最后一个bin日子

          

    5.3、reset master

    清空所有的bin-log日志

    6、什么样的语句会记录在bin-log日志中

           a、执行前,bin-log的起始位置

    b、执行查询

    c、执行修改

    d、执行插入

    e、执行删除

    (总结: bin-log只会记录增删改的sql语句。)

    7、查看bin-log日志内容

           使用mysqlbinlog工具

     

    三、mysql主从复制

    1、作用:

           a、如果主服务器出现问题,可以快速切换到从服务器提供的服务

           b、可以在从服务器上执行查询操作,降低主服务器的访问压力

           c、可以在从服务器上执行备份,以避免备份期间影响主服务器的服务

           (备注: 注意一般只有更新不频繁的数据或者对实时性要求不高的数据可以通过从服务器查询,实时性要求高的数据仍然需要从主服务器获得)

    2、配置

     

    2.1、修改主数据库配置文件


    重启服务


    2.2、进入mysql客户端,查看binlog日志

    2.3、建立从服务授权用户


    2.4、修改从服务器配置文件

    2.5、重启服务后,进入客户端,建立主从复制

    2.6、启动从服务器

    2.7、查看从服务器信息

    (红色区域都显示:yes,说明配置成功)

    2.8、验证

    a、主从服务器都在同一数据库下

    b、在主服务器执行

    c、在从服务器查看

    此时,主从数据库复制就成功了。

     

    总结: 进行主从复制的步骤

    a、建立授权用户

    b、修改主从服务器配置

    c、在从服务器指定主服务器

    d、在从服务器启动主从复制

     

    常见问题:

    1vmware复制centos虚拟机碰到Device eth0 does not seem to bepresent的问题

    因为需要做集群测试,需要多台虚拟机作为测试机。如果每个虚拟机都要安装系统就很麻烦,幸好vmare可以通过复制虚拟机的物理文件直接生成一个新的虚拟机。只是复制的虚拟机网络会失效,重启网络服务器的时候会提示如下错误:

    Device eth0 does not seem to bepresent,delaying initialization. 

    网上搜索后才发现原因所在:原来vmware在复制了虚拟机后会自动生成一个新的网卡设备供该虚拟机使用,比如原先的网卡是eth0,复制虚拟机后后就会增加eth1。但是由于没有生成相应的/etc/sysconfig/network-scripts/ifcfg-eth1文件,导致网络连接失败,这个应该是vmware的一个bug。

    查看网卡配置文件/etc/udev/rules.d/70-persistent-net.rules,可以看到多出了一个eth1的配置。

    解决办法

    编辑网卡配置文件/etc/udev/rules.d/70-persistent-net.rules,将eth0的网卡地址修改成eth1的网卡地址,而后删除eth1这一行。

    编辑网卡IP地址配置文件/etc/sysconfig/network-scripts/ifcfg-eth0,修改网卡物理地址HWADDR为上面eth0的网卡地址。

    修改完成后重启系统,就能正常启动网络服务了。

    2Fatal error: The slave I/O thread stops because masterand slave have equal MySQL server UUIDs; these UUIDs must be different forreplication to work.

    解决方法:

    修改数据库data目录下的auto.cnf

    展开全文
  • 主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库事务处理库,从库做查询库。 一、什么是主从复制 主从复制,是用来建立一个和主数据库完全一样的数据库...

    简述:主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库 事务处理库,从库做查询库

    一、什么是主从复制

    主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。在最常用的mysql数据库中,支持单向、异步复制。在复制过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器;此时主服务器会将更新信息写入到一个特定的二进制文件中。

    并会维护文件的一个索引用来跟踪日志循环。这个日志可以记录并发送到从服务器的更新中去。当一台从服务器连接到主服务器时,从服务器会通知主服务器从服务器的日志文件中读取最后一次成功更新的位置。然后从服务器会接收从哪个时刻起发生的任何更新,然后锁住并等到主服务器通知新的更新。

    二、主从复制的作用

    一是确保数据安全;做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据的丢失。

    二是提升I/O性能;随着日常生产中业务量越来越大,I/O访问频率越来越高,单机无法满足,此时做多库的存储,有效降低磁盘I/O访问的频率,提高了单个设备的I/O性能。

    三是读写分离,使数据库能支持更大的并发;在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度。

    三、主从复制的原理

    主从复制中涉及的文件

    主库: binlog

    从库:

    • relaylog 中继日志
    • master.info 主库信息文件
    • relaylog.info relaylog应用的信息

    主从复制中涉及的三个线程

    主库:

    Binlog_Dump Thread :

    从库:

    SLAVE_IO_THREAD

    SLAVE_SQL_THREAD

    具体原理如图所示:

     

    1. 从数据库执行change master to 命令(主数据库的连接信息+复制的起点)
    2. 从数据库会将以上信息,记录到master.info文件
    3. 从数据库执行 start slave 命令,立即开启SLAVE_IO_THREAD 和SLAVE_SQL_THREAD这两个线程
    4. 从数据库 SLAVE_SQL_THREAD,读取master.info文件中的信息获取到IP,PORT,User,Pass,binlog的位置信息
    5. 从数据库SLAVE_IO_THREAD请求连接主数据库,主数据库专门提供一个SLAVE_IO_THREAD,负责通过relay日志和SLAVE_SQL_THREAD交互
    6. SLAVE_IO_THREAD根据binlog的位置信息,请求主数据库新的binlog
    7. 主数据库通过Binlog_DUMP_Thread将最新的binlog,通过网络TP给从数据库的SALVE_IO_THREAD
    8. SLAVE_IO_THREAD接收到新的binlog日志,存储到TCP/IP缓存,立即返回ACK给主库,并更新master.info
    9. SLAVE_IO_THREAD将TCP/IP缓存中数据,转储到磁盘relaylog中.
    10. SLAVE_SQL_THREAD读取relay.info中的信息,获取到上次已经应用过的relaylog的位置信息
    11. SLAVE_SQL_THREAD会按照上次的位置点回放最新的relaylog,再次更新relay.info信息
    12. 从数据库会自动purge应用过relay进行定期清理

    每个主/从连接有三个线程。具有多个从站的主站为每个当前连接的从站创建一个二进制日志转储线程,每个从站都有自己的I / O和SQL线程。

    从库使用两个线程将读取更新与主库分开并将它们执行到独立任务中。因此,如果语句执行缓慢,则不会减慢读取语句的任务。例如,如果从服务器尚未运行一段时间,则当从服务器启动时,其I / O线程可以快速从主服务器获取所有二进制日志内容,即使SQL线程远远落后。如果从服务器在SQL线程执行了所有获取的语句之前停止,则I / O线程至少已获取所有内容,以便语句的安全副本本地存储在从属的中继日志中,准备在下次执行时接着执行。

    一旦主从复制构建成功,主数据库当中发生了新的变化,都会通过 slave_dump_THREAD发送信号给SLAVE_IO_THREAD,增强了主从复制的实时性.

    实际的项目中,主从复制会结合读写分离技术实现系统高性能、高可用

    主从复制通过数据库配置实现,但是读写分离一般都是通过程序去控制的。

    展开全文
  • 在winfrom下添加了两个treeview控件,在第一个treeview中增加了集合,然后怎么把选中的字节拖动(成复制作用,原有的不删除)到另外一个treeview中呢?
  • 主从复制作用和原理 有些同学连集群和主从都分不清楚的,这里我说一下他们最本质的区别,其实也就是data-sharing和nothing-sharing的区别。集群是共享存储的。主从复制中没有任何共享。每台机器都是独立且完整的...
  • mysql主从复制作用mysql主从复制作用1.实现服务器的负载均衡2.通过复制实现数据的异地备份3.提高数据库系统的可用性mysql主从复制原理主从复制(主库去写从库去读)主从复制工作原理解析: mysql主从复制作用 1...
  • 蠕虫: 是一种能够靠分裂...作用1: Create table like从已有表复制结构: 但是没有数据, 就可以使用蠕虫复制将数据复制过来 作用2: 蠕虫复制可以快速的表中的数据达到指数级(数据量很大): 数据本身没有意义,在于可...
  • 二 主从复制作用(好处或者为什么要使用主从复制) 做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。 架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足...
  • 有些同学连集群和主从都分不清楚的,这里我说一下他们最本质...二、主从复制作用(重点) 三、主从复制的原理(重中之重) 四、必问面试题干货分析(最最重要的点) 一、什么是主从复制? 主从复制,是用来建立...
  • 利用ZeroClipboard制作复制粘贴作用的JQ插件
  • Mysql数据库 主从复制作用原理

    千次阅读 热门讨论 2020-11-01 00:09:48
    主从的作用 1.实时灾备:一台主数据库宕机了,启用从数据库,用于故障切换 2.读写分离:主服务器只用于写操作,从服务器只用于读取,支持了更大的并发 3.备份:可以解决数据丢失的问题,避免影响业务 主从原理 1、...
  • 复制构造函数的作用

    2020-04-15 15:59:17
    #include using namespace std;... } //一个简单的复制构造函数,其作用是对数据成员进行操作,类似于函数的作用,而构造函数仅仅是为了给数据成员进行初始化。当然,数据成员的操作也可以通过成员函数进行。
  • 一、什么是主从复制? 主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。您看,像在mysql数据库中,支持单项、异步赋值。在赋值过程中,一个服务器充当主...
  • MySQL主从复制面试之作用和原理

    万次阅读 多人点赞 2018-04-19 14:15:06
    二、主从复制作用(好处,或者说为什么要做主从)重点! 1、做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。 2、架构的扩展。业务量越来越大,I/O访问频率过...
  • 一、Mysql 主从复制原理 ...什么是主从复制,主从复制作用(重点),主从复制的原理(重中之重): 三、MySQL主从复制(Master-Slave)实践 实现MySQL主从复制需要进行的配置: 四、安装 如何安装Mysql ...
  • 复制作用: 实现真正的热备 降低主节点的压力 实现高可用 用来实现测试环境和生产环境一致(sql审计) 复制的过程 mysql主从复制、mysql主从同步、AB复制 主节点:master 从节点:slave 复制过程是单向的,只能从...
  • 最近一直在了解数据库的一些实现细节,今天结合网上的一些资料,总结一下Mysql的原理和作用。 什么是主从复制 主从复制,是用来建立一个和主数据库完全一样的数据库环境,...主从复制作用 1 作为后备数据库,主数据
  • Mysql5.7安装 Gtid原理作用+主从复制

    千次阅读 2020-11-10 13:42:37
    Gtid的作用 Gtid,采用了新的复制协议,旧协议是,首先从服务器上在一个特定的偏移量位置连接到主服务器上一个给定的二进制日志文件,然后主服务器再从给定的连接点开始发送所有的事件。 新协议有所不同,支持以全局...
  • 今天在看书的过程中,又发现了自己目前对Javascript存在的一个知识模糊点:JS的作用域链,所以就通过查资料看书对作用域链相关的内容进行了学习。今天学习笔记主要有这样几个关键字:变量、参数传递、执行环境、变量...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,292
精华内容 5,716
关键字:

复制作用