mysql主从复制实现_oracle主从复制

mysql主从复制实现_oracle主从复制操作系统环境:CentOS5.51.MySQL主从流程图2.MySQL主从说明a.主服务器一定要开启二进制日志文件.b.MySQL使用3个线程来执行复制功能(其中1个在主服务器上,另两个在从服务器上。当发出STARTSLAVE时,从服务器创建一个I/O线程,以连接主服务器并让它发送记录在其二进制日志中的语句。主服务器创建一个线程将二进制日志中的内容发送到从服务器。该线程可以识别为主服务器上S…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

操作系统环境:CentOS5.5

1.MySQL 主从流程图

1341885716_3447.jpg

2.MySQL 主从说明

a.主服务器一定要开启二进制日志文件.

b.MySQL使用3个线程来执行复制功能(其中1个在主服务器上,另两个在从服务器上。当发出START SLAVE时,从服务器创建一个I/O线程,以连接主服务器并让它发送记录在其二进制日志中的语句。主服务器创建一个线程将二进制日志中的内容发送到从服务器。该线程可以识别为主服务器上SHOW PROCESSLIST的输出中的Binlog Dump线程。从服务器I/O线程读取主服务器Binlog Dump线程发送的内容并将该数据拷贝到从服务器数据目录中的本地文件中,即中继日志。第3个线程是SQL线程,是从服务器创建用于读取中继日志并执行日志中包含的更新。

3.主机信息

mysql(主):192.168.96.12

mysql(备):192.168.96.2

4.在主机跟备机上安装mysql

这里使用的是mysql5.5的源码安装.

地址:http://blog.csdn.net/m582445672/article/details/7649999

5.配置主机上的my.cnf文件.

[mysqld]

server-id       =  1          #  服务的唯一标识符

log-bin=mysql-bin      # 开启二进制日志,默认路径在data/下

binlog_format=mixed  # 二进制文件的格式

# 这里有3种格式

# binlog_format=statement     将主库输入的SQL语句,直接写入二进制文件中

# binlog_format=row                将主库修改的行写入二进制文件中

# binlog_format=mixed            以上二种的混合模式

# 在不同二进制格式下,对存储过程,函数,触发器,事件的数据复制可以参考

# 地址:http://blog.csdn.net/m582445672/article/details/7670802

#============下面参数,在本次实验中,不配置========================================

replicate-do-db = test                                         # 需要复制的数据库         (在这个试验中,我不用这个参数)

replicate-ignore-db = mysq                               # 不需要复制的数据库     (在这个试验中,我不用这个参数)

replicate-ignore-db = information_schema  # 不需要复制的数据库      (在这个试验中,我不用这个参数)

# 不使用replicate-do-db,replicate-ignore-db参数就代表全库都复制

# ====================================================================================

1341891214_5455.jpg

启动mysql(主)

6.在主库上面添加一个复制帐号.

GRANT REPLICATION SLAVE on *.* to ‘mark’@’%’ identified by ‘mark’ WITH GRANT OPTION;

1341891634_3285.jpg

7.配置备机的my.cnf文件

server-id  =  2       # 修改成2.

1341892593_4325.jpg

启动mysql( 备 )

#====下面只做讲解,不包含在本次实验中 ======================================

当然,备机上也能开启二进制文件.但在默认情况下.主库复制过来的数据不会写入备库的二进制文件中.

所以如果想A–>B–>C这样的复制.必须有logs-slave-updates = 1

[mysqld]

log-bin=mysql-bin

binlog_format=mixed

logs-slave-updates = 1

# ======================================================================

8.备机连接主机

a.先查看当前主机二进制的位置

mysql>show master status;

1341895504_1539.jpg

b.在备机上执行命令连接主机

mysql> change master to master_host=”192.168.96.12″, master_port=3306, master_user=”mark”, master_password=”mark”, master_log_file=”mysql-bin.000004″, master_log_pos=107 , master_connect_retry=10;

1341895654_3461.jpg

c.备机上启动IO线程和SQL线程

mysql>start slave;

d.在备机上查看主从状态

mysql>show slave status\G

1341895851_6530.jpg

9.测试主从复制

在主机上创建一个alex的数据库.

主机:

1341896007_9271.jpg

备机:

1341896087_1837.jpg

到这里,主从配置完成

10.主从复制几个非常重要的文件

a.master.info

用于记录连接到哪个服务器,账号和密码

还有记录复制到主服务器的哪个二进制文件和复制到二进制文件的哪个位置

从服务器的IO线程会先把所有的从主服务复制过来的数据全部都放到relay-log.info里面。

并且记录复制到的位置.IO线程只管复制

1341896641_6722.jpg

其余的行可以去看官方文档,上面有详细的介绍

b.relay-log.info

这个是在从服务器的中续日志,记录了写了多少数据到从服务里面.

./ip_lb-relay-bin.000002                       # 中继日志的位置

336                                                           # 复制到哪一行

mysql_bin.000004                                #这个中继日志中对应主服务器2进制的log的文件名

190                                                           # 对应的位置

特别注意,这里的如果复制到某一句有错,之后的二进制SQL就不会在继续复制了

这里的mysql_bin.000004  190 会在中继日志中有记录的.

SQL线程读取中序日志里面的信息,由relay-log.info信息记录.

1341897144_6680.jpg

11.从服务器复制信息

mysql> show slave status\G

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

Slave_IO_State: Waiting for master to send event   # IO的线程的状态

Master_Host: 192.168.96.12   # 链接主服务器的IP

Master_User: mark    # 主服务器用户名

Master_Port: 3306   # 主服务器密码

Connect_Retry: 10     # 主从断开后,多少秒重新链接

Master_Log_File: mysql-bin.000004  # 从服务器I/O 线程当前读取的主服务器二进制日志文件的名字

Read_Master_Log_Pos: 190    # 从服务器I/O 线程从当前的主服务器二进制日志中读取的位置起点。

Relay_Log_File: ip_lb-relay-bin.000002   # 从服务器SQL 线程当前读取并执行的中继日志文件的名字

Relay_Log_Pos: 336       # 从服务器SQL 线程当前从中继日志中读取执行的位置起点。

Relay_Master_Log_File: mysql-bin.000004    # 从服务器中的SQL进程中正在执行的语句的位置

Slave_IO_Running: Yes     # 从服务器的IO线程运行是否开启

Slave_SQL_Running: Yes    # 从服务器的SQL线程运行是否开启

Replicate_Do_DB:    # 主从复制的数据库名

Replicate_Ignore_DB:   #  主从不需要复制的数据库名

Replicate_Do_Table:     # 主从复制的表

Replicate_Ignore_Table:     # 主从不需要复制的表

Replicate_Wild_Do_Table:   # 可以跨库复制的表

Replicate_Wild_Ignore_Table:   # 不能跨库复制的表

Last_Errno: 0    # 最后复制的错误号…0表示没有错误

Last_Error:        # 最后复制的错误信息

Skip_Counter: 0    # 最近被使用的用于SQL_SLAVE_SKIP_COUNTER的值。(这个值表示跳过多少个事件在来执行SQL)

Exec_Master_Log_Pos: 190    # SQL线程执行到主服务器log-bin文件的位置.如果这个值与Read_Master_Log_Pos一样.则可以证明

Relay_Log_Space: 492       # 所有原有的中继日志结合起来的总大小。

Until_Condition: None      # 在START SLAVE语句的UNTIL子句中指定的值

Until_Log_File:                 # 在START SLAVE语句的UNTIL子句中指定的值

Until_Log_Pos: 0             # 在START SLAVE语句的UNTIL子句中指定的值

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    # 本字段是从属服务器“落后”多少的一个指示。当从属SQL线程正在运行时(处理更新),

# 本字段为在主服务器上由此线程执行的最近的一个事件的时间标记开始,已经过的秒数。

# 当此线程被从属服务器I/O线程赶上,并进入闲置状态,等待来自I/O线程的更多的事件时,本字段为零。

# 总之,本字段测量从属服务器SQL线程和从属服务器I/O线程之间的时间差距,单位以秒计。

# 如果主服务器和从属服务器之间的网络连接较快,则从属服务器I/O线程会非常接近主服务器,

# 所以本字段能够十分近似地指示,从属服务器SQL线程比主服务器落后多少。

# 如果网络较慢,则这种指示不准确;从属SQL线程经常会赶上读取速度较慢地从属服务器I/O线程,

# 因此,Seconds_Behind_Master经常显示值为0。即使I/O线程落后于主服务器时,也是如此。

# 换句话说,本列只对速度快的网络有用。

# 即使主服务器和从属服务器不具有相同的时钟,时间差计算也会起作用(当从属服务器I/O线程启动时,计算                                                                        # 时间差。并假定从此时以后,时间差保持不变)。

# 如果从属SQL线程不运行,或者如果从属服务器I/O线程不运行或未与主服务器连接,

# 则Seconds_Behind_Master为NULL(意义为“未知”)。

# 举例说明,如果在重新连接之前,从属服务器I/O线程休眠了master-connect-retry秒,则显示NULL,

# 因为从属服务器不知道主服务器正在做什么,也不能有把握地说落后多少。

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 1

1 row in set (0.00 sec)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170330.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MySQL常用SQL语句大全

    MySQL常用SQL语句大全MySQL数据库是一个十分轻便的数据库管理系统,相比大型的数据库管理系统如Oracle、MS-SQL,MySQL更拥有轻便、灵活、开发速度快的特色,更适用于中小型数据的存储与架构。MySQL之所以能够被数以万计的网站采用,也是由此而来。

    2022年6月13日
    42
  • 时间复杂度是什么_时间复杂度的表示方法

    时间复杂度是什么_时间复杂度的表示方法-宝宝为啥听不懂他们在讨论的时间复杂度0.0-我怎么知道这个算法运行得比那个算法快0.0-我究竟会不会超时0.0-我为什么还会超时0.0-时间复杂度怎么算0.0在别人还不会求时间复杂度的时候而你会了是不是很酷在别人都会求时间复杂度的时候而你不会是不是很尴尬千里之行始于足下希望这篇文章能祝你一臂之力=w= 此篇详解,希望能帮助各位稍微解决一下不解=w=…

    2025年6月6日
    2
  • H5-BLOB

    H5-BLOB

    2021年6月5日
    183
  • Godaddy域名与空间解析教程(全)「建议收藏」

    Godaddy域名与空间解析教程(全)「建议收藏」最近忙着开自己的独立博客,既然以后是打算从事外贸相关的电子商务,我打算从Godaddy下手学习外贸空间的选择。1.购买Godaddy,为什么选狗爹,便宜、稳定、再加上可以用支付宝,省去代购的繁琐。这

    2022年8月5日
    6
  • Python代码实现Excel转JSON

    Python代码实现Excel转JSON题记项目需求需要用到Excel转JSON,第一时间想到的就是尘封了将近一年的python,一直在JavaJava,python早忘光了,想立刻开始动手却又不敢,最后确认,用python来完成操作Excel有得天独厚的优势,只能硬着头皮上了。短短的代码,做了将近四个小时,中间复习了一下字典和列表,同时也因为其中遇到了一些奇奇怪怪的问题,凌晨一点多躺下,一身轻松。主要技术python3.8.6+字典/列表的运用+对Excel操作的库pandas其中python对Excel操作的库其实有很多,像我

    2022年6月1日
    41
  • GoogleNet_我和我的祖国论文摘要

    GoogleNet_我和我的祖国论文摘要GoogLeNetIncepetionV1这是GoogLeNet的最早版本,出现在2014年的《Goingdeeperwithconvolutions》。之所以名为“GoogLeNet”而非“GoogleNet”,文章说是为了向早期的LeNet致敬。Motivation深度学习以及神经网络快速发展,人们不再只关注更给力的硬件、更大的数据集、更大的模型,而是更在意新的idea、新的算法以及模型的改进。一般来说,提升网络性能最直接的办法就是增加网络深度和宽度,即增加隐层和以及各层神经元

    2022年8月14日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号