- 浏览: 120157 次
- 性别:
- 来自: 四川
文章分类
最新评论
-
weir2009:
没什么反应呀
java解读NIO Socket非阻塞模式 -
cpszy:
lz辛苦了,学习
freemarker三宗罪 -
bencmai:
flexmojos 配置挺麻烦的,而且不同版本的flexmoj ...
在Flex项目中使用Maven -
chenhongwei0924:
很精确..
java位操作符
在windows下配置的,后面会在Linux下配置进行测试.
1.在主数据库服务器为从服务器添加一个拥有权限访问主库的用户: GRANT REPLICATION SLAVE ON *.* TO ' test'@'%' IDENTIFIED BY 'test'; (%表示允许所有IP,可设置指定从服务器IP) 添加用户后: 可在从服务器上用mysql -h127.0.0.1 -utest -ptest; 来测试是否有权限访问主数据库 2.在主据库配置文件加上: #master config server-id = 1 log-bin = mysql-bin 3.在从服务器数据库配置文件: server-id = 2 master-host = 10.0.0.199 master-user = test master-password = test replicate-do-db = test master-port = 3306 log-bin = mysql-bin 如果你的一切配置顺利 你在从服务器上输入命令:show slave status\G 正常情况:Slave_IO_Running:yes Slave_SQL_Running:yes 在主服务器上输入show master status 那么,恭喜,主从数据库配置OK,可以在主数据库插入数据进行测试,是否从库同步木有... 注:请检查防火墙!!! 其实配置过程是很容易简单的,不要太过激动,我们再花点时间了解其主从的原理。 下面的内容对你理解应该有点作用。 一 MySQL 复制的基本过程如下:(各部分学习自Google,谢谢) 2. Master 接收到来自 Slave 的 IO 线程的请求后,通过负责复制的 IO线程根据请求信息读取指定日志指定位置之后的日志信息,返回给 Slave 端的 IO线程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息在 Master 端的 Binary Log 文件的名称以及在 BinaryLog 中的位置; 4. Slave 的 SQL 线程检测到 Relay Log 中新增加了内容后,会马上解析该 Log 文件中的内容成为在 Master 二、设置mysql主从配置的优点: 二 主从原理如下: 1. 主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知 主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。 MySQL复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等)。因此,要进行复制,必须在主服务器上启用二进制日志。 每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以便从服务器可以对其数据拷贝执行相同的更新。 从服务器设置为复制主服务器的数据后,它连接主服务器并等待更新过程。如果主服务器失败,或者从服务器失去与主服务器之间的连接,从服务器保持定期尝试连 接,直到它能够继续帧听更新。由--master-connect-retry选项控制重试间隔。 默认为60秒。 每个从服务器跟踪复制时间。主服务器不知道有多少个从服务器或在某一时刻有哪些被更新了。 2.主从同步过程的相关文件默认情况,中继日志使用host_name-relay-bin.nnnnnn形式的文件名,其中host_name是从服务器主机名,nnnnnn是序 列号。用连续序列号来创建连续中继日志文件,从000001开始。从服务器跟踪索引文件中目前正使用的中继日志。 默认中继日志索引文件名为host_name-relay-bin.index。默认情况,在从服务器的数据目录中创建这些文件。可以用--relay- log和--relay-log-index服务器选项覆盖 默认文件名 中继日志与二进制日志的格式相同,并且可以用mysqlbinlog读取。SQL线程执行完中继日志中的所有事件并且不再需要之后,立即自动删除它。没有 直接的删除中继日志的机制,因为SQL线程可以负责完成。然而,FLUSH LOGS可以循环中继日志,当SQL线程删除日志时会有影响。 从属复制服务器在数据目录中另外创建两个小文件。这些状态文件默认名为主master.info和relay-log.info。它们包含SHOW SLAVE STATUS语句的输出所显示的信息(关于该语句的描述参见13.6.2节,“用于控制从服务器的SQL语句”)。状态文件保存在硬盘上,从服务器关闭时 不会丢失。下次从服务器启动时,读取这些文件以确定它已经从主服务器读取了多少二进制日志,以及处理自己的中继日志的程度。 3.主从同步过程的相关文件和MySQL语句的关系 由I/O线程更新master.info文件。文件中的行和SHOW SLAVE STATUS显示的列的对应关系为:
由SQL线程更新relay-log.info文件。文件中的行和SHOW SLAVE STATUS显示的列的对应关系为:
四:主从同步过程的相关文件和MySQL语句的关系 由I/O线程更新master.info文件。文件中的行和SHOW SLAVE STATUS显示的列的对应关系为:
由SQL线程更新relay-log.info文件。文件中的行和SHOW SLAVE STATUS显示的列的对应关系为:
当备份从服务器的数据时,你还应备份这两个小文件以及中继日志文件。它们用来在恢复从服务器的数据后继续进行复制。如果丢失了中继日志但仍然有 relay-log.info文件,你可以通过检查该文件来确定SQL线程已经执行的主服务器中二进制日志的程度。然后可以用 Master_Log_File和Master_LOG_POS选项执行CHANGE MASTER TO来告诉从服务器重新从该点读取二进制日志。当然,要求二进制日志仍然在主服务器上。 如果从服务器正复制LOAD DATA INFILE语句,你应也备份该目录内从服务器用于该目的的任何SQL_LOAD-*文件。从服务器需要这些文件继续复制任何中断的LOAD DATA INFILE操作。用--slave-load-tmpdir选项来指定目录的位置。如果未指定, 默认值为tmpdir变量的值。 五:主从同步起点的说明 master.info的内容会覆盖命令行或in my.cnf中指定的部分选项。 如果从服务器启动时master.info文件不存在,选项采用选项文件或命令行中指定的值。首次将服务器作为从服务器启动时,或者已经运行RESET SLAVE然后已经关闭并重启从服务器时会发生。 如果从服务器启动时master.info文件存在,服务器忽略那些选项。使用master.info文件中发现的值。 如果你使用与master.info文件中相对应的启动选项的不同的值重启从服务器,启动选项的不同的值不会生效,因为服务器继续使用 master.info文件。要想使用启动选项的不同的值,必须删除master.info文件并重启从服务器,或(最好是)在从服务器运行时使用 CHANGE MASTER TO语句重新设置值。 六:如何确保所有从服务器已经处理了中继日志中的所有语句 在每个从服务器上,发出STOP SLAVE IO_THREAD语句,然后检查SHOW PROCESSLIST语句的输出,直到你看到Has read all relay log。当所有从服务器都执行完这些,它们可以被重新配置为一个新的设置。在被提升为主服务器的从服务器S1上,发出STOP SLAVE和RESET MASTER语句。 七:如果你确定可以跳过来自主服务器的下一个语句,可以执行下面的语句
如果来自主服务器的下一个语句不使用AUTO_INCREMENT或LAST_INSERT_ID(),n 值应为1。否则,值应为2。使用AUTO_INCREMENT或LAST_INSERT_ID()的语句使用值2的原因是它们从主服务器的二进制日志中取 两个事件。 七:两个重要的选项: 1):· --logs-slave-updates 这个是在my.cnf文件配置的 通常情况,从服务器从主服务器接收到的更新不记入它的二进制日志。该选项告诉从服务器将其SQL线程执行的更新记入到从服务器自己的二进制日志。为了使该 选项生效,还必须用--logs-bin选项启动从服务器以启用二进制日志。如果想要应用链式复制服务器,应使用--logs-slave- updates。例如,可能你想要这样设置: A -> B -> C 也就是说,A为从服务器B的主服务器,B为从服务器C的主服务器。为了能工作,B必须既为主服务器又为从服务器。你必须用--logs-bin启动A和B以启用二进制日志,并且用--logs-slave-updates选项启动B。 2):· --slave-skip-errors=[err_code1,err_code2,... | all] 这个是在mysql启动时的选项 通常情况,当出现错误时复制停止,这样给你一个机会手动解决数据中的不一致性问题。该选项告诉从服务器SQL线程当语句返回任何选项值中所列的错误时继续复制。 如果你不能完全理解为什么发生错误,则不要使用该选项。如果复制设置和客户程序中没有bug,并且MySQL自身也没有bug,应不会发生停止复制的错误。滥用该选项会使从服务器与主服务器不能保存同步,并且你找不到原因。 对于错误代码,你应使用从服务器错误日志中错误消息提供的编号和SHOW SLAVE STATUS的输出。服务器错误代码列于附录B:错误代码和消息。 你也可以(但不应)使用不推荐的all值忽略所有错误消息,不考虑所发生的错误。无需而言,如果使用该值,我们不能保证数据的完整性。在这种情况下,如果从服务器的数据与主服务器上的不相近请不要抱怨(或编写bug报告)。已经警告你了。 例如:
八:二个有用的问与答: 1)Q:如果主服务器正在运行并且不想停止主服务器,怎样配置一个从服务器?
如果你没有备份主服务器,这里是一个创建备份的快速程序。所有步骤都应该在主服务器主机上执行。
一个可选择的方法是,转储主服务器的SQL来代替前面步骤中的二进制复制。要这样做,你可以在主服务器上使用mysqldump --master-data,以后装载SQL转储到到你的从服务器。然而,这比进行二进制复制速度慢。 不管你使用这两种方法中的那一个,当你有一个快照和记录了日志名与偏移量时,后来根据说明操作。你可以使用相同的快照建立多个从服务器。一旦你拥有主服务 器的一个快照,可以等待创建一个从服务器,只要主服务器的二进制日志完整。两个能够等待的时间实际的限制是指在主服务器上保存二进制日志的可用硬盘空间和 从服务器同步所用的时间。 你也可以使用LOAD DATA FROM MASTER。这是一个方便的语句,它传输一个快照到从服务器并且立即调整日志名和偏移量。将来,LOAD DATA FROM MASTER将成为创建从服务器的推荐方法。然而需要注意,它只工作在MyISAM 表上并且可能长时间持有读锁定。它并不象我们希望的那样高效率地执行。如果你有大表,执行FLUSH TABLES WITH READ LOCK语句后,这时首选方法仍然是在主服务器上制作二进制快照。 2)Q:从服务器需要始终连接到主服务器吗?A:不,不需要。从服务器可以宕机或断开连接几个小时甚至几天,重新连接后获得更新信息。例如,你可以在通过拨号的链接上设置主服务器/从服务器关系,其 中只是偶尔短时间内进行连接。这意味着,在任何给定时间,从服务器不能保证与主服务器同步除非你执行某些特殊的方法。将来,我们将使用选项来阻塞主服务器 直到有一个从服务器同步。 当备份从服务器的数据时,你还应备份这两个小文件以及中继日志文件。它们用来在恢复从服务器的数据后继续进行复制。如果丢失了中继日志但仍然有 relay-log.info文件,你可以通过检查该文件来确定SQL线程已经执行的主服务器中二进制日志的程度。然后可以用 Master_Log_File和Master_LOG_POS选项执行CHANGE MASTER TO来告诉从服务器重新从该点读取二进制日志。当然,要求二进制日志仍然在主服务器上。 如果从服务器正复制LOAD DATA INFILE语句,你应也备份该目录内从服务器用于该目的的任何SQL_LOAD-*文件。从服务器需要这些文件继续复制任何中断的LOAD DATA INFILE操作。用--slave-load-tmpdir选项来指定目录的位置。如果未指定, 默认值为tmpdir变量的值 MySQL的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个Mysql instance(我们称之 Slave)。在 Master 与 Slave之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave 端,另外一个线程(IO线程)在 Master端。 要实现 MySQL 的 Replication ,首先必须打开 Master 端的BinaryLog(mysql-bin.xxxxxx)功能,否则无法实现。因为整个复制过程实际上就是Slave从Master端获取该日志然后 再在自己身上完全顺序的执行日志中所记录的各种操作。打开 MySQL 的 Binary Log 可以通过在启动 MySQL Server 的过程中使用“—log-bin” 参数选项,或者在 my.cnf 配置文件中的 mysqld 参数组([mysqld]标识后的参数部分)增加“log-bin” 参数项。 |
发表评论
-
Amoeba实现mysql主从读写分离
2010-10-28 22:12 1750一直想找一个工具, ... -
mysql replication 基本原理,mysql主从配置原理
2010-10-28 22:07 7921、复制进程Mysql的复制(Replication ... -
MySQL Proxy和 Amoeba 工作机制浅析
2010-10-27 14:58 4394MySQL Proxy处于客户端应用程序和MySQL服务器之间 ... -
MySql定时备份
2010-10-27 09:43 1485mysql定时自动备份 对于Windows主机 == ... -
Mysql用户密码设置修改和权限分配
2010-10-27 09:17 883假定mysql安装在c:\mysql 一、更改密码 ... -
使用MySQL Proxy解决MySQL主从同步延迟
2010-10-26 13:54 898MySQL的主从同步机制非常方便的解决了高并发读的应用需求,给 ... -
mysql主从备份
2010-10-26 13:52 882一、准备服务器 由于MySQL不同版本之间的(二进制日志)bi ... -
linux 中mysql 同步 master-slave
2010-10-25 14:32 1229linux OS: ubuntu server 8.04.1 ... -
mysql导入导出
2010-10-25 09:53 759mysql 导入导出 .sql 文件备 ... -
Mysql 数据库双机热备的配置
2010-10-24 14:11 8321。MySQL 数据库 没有增量备份的机制,当数据量太 ... -
mysql主从服务器配置
2010-10-24 13:46 856windows下主从配置 实现功能:A为主服务器,B为从 ... -
Mysql数据库服务器配置文件/etc/my.cnf的详细配置
2010-10-24 11:12 1617以下是 Mysql数 据库服务 ... -
mysql5.1安装图解
2010-10-21 23:30 1929一、MySQL5.1安装 打开下 ... -
图解MySQL数据库的安装和操作
2010-10-21 22:06 838MySQL的大本营:http:// ...
相关推荐
如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致slave mysql容器配置配置Dockerfile设置server_id,一般设置为
使用allen老师的hub镜像制作自己的mysql主从 --------- docker pull xiaochunping/mysql-master; docker pull xiaochunping/mysql-slave; -- cnetos docker run ,把my.cnf和data数据引入到属主机 -----------------...
### MySQL 主从库配置详解 #### 一、MySQL 安装与环境变量设置 在进行 MySQL 主从库配置之前,我们需要确保已经正确安装了 MySQL,并设置了相应的环境变量。以下是具体的步骤: 1. **下载 MySQL 免安装版**: - ...
综上所述,MySQL主从配置的原理是通过二进制日志的记录和复制过程,实现数据在主从服务器之间的同步。配置MySQL主从复制可以带来许多好处,如分散查询负载、提升查询效率、数据备份和读写分离等,但同时也需要注意...
下面我们将深入探讨MySQL主从复制的配置、工作原理和相关知识点。 一、主从复制配置 1. **环境准备**:首先,你需要在主服务器和从服务器上安装并配置MySQL。确保两个服务器之间网络连通,并且可以相互访问。 2. ...
MySQL主从同步是一种数据库复制技术,它允许数据从一个服务器(主服务器)自动...总结来说,MySQL主从同步是数据库管理和扩展的重要策略,通过配置和优化,可以实现高效、安全的数据复制,为大数据环境提供有力的支持。
MySQL主从配置是数据库高可用性和负载均衡的一种常见策略,尤其在Windows环境下,为了实现读写分离、主从复制和一主多从架构,可以极大地提高数据库系统的性能和稳定性。结合Spring框架,我们可以轻松地在应用程序中...
### MySQL主从配置知识点详解 #### 一、主服务器配置 **1.1 创建复制用户** - **目的**: 为了确保从服务器能够连接到主服务器并获取数据更新。 - **命令**: ```sql mysql> GRANT REPLICATION SLAVE ON *.* TO '...
MySQL主从数据库配置是数据库高可用性和负载均衡的重要实践,它允许数据从一个主数据库(Master)异步复制到一个或多个从数据库(Slave)。这种配置对于处理大规模数据操作和保证数据一致性至关重要。 主从复制的...
#### 二、MySQL主从配置原理 在MySQL的主从复制过程中,主要包括三个步骤: 1. **二进制日志(Binlog)记录**:主服务器上的所有更改操作都会被记录在二进制日志文件中。 2. **日志文件传输**:从服务器会定期从主...
在本教程中,我们将深入探讨如何在CentOS7操作系统上安装MySQL 5.7.19并设置主从复制配置。MySQL的主从复制是一种常用的技术,它允许数据从一个服务器(主服务器)同步到另一个服务器(从服务器),从而实现数据备份...
为了提高数据库系统的可靠性和响应速度,许多企业会采用MySQL主从互备(Master-Slave Mutual Backup)方案。这种架构不仅可以实现实时的数据备份,还能在主服务器出现故障时迅速切换至备用服务器,从而减少服务中断...
### 二、MySQL主从配置 #### 1. 配置主服务器 在主服务器上编辑MySQL配置文件`/etc/my.cnf`,添加主服务器配置: ```ini [mysqld] server-id=1 log-bin=mysql-bin binlog-do-db=test ``` #### 2. 启动主服务器 ```...
### MySQL 5.5 Master-Slave (Replication) 主从配置详解 #### 一、基础知识概述 在MySQL中,**主从复制(Master-Slave Replication)**是一种非常重要的数据备份方式,通过它可以在多台服务器之间实现数据的同步...
在 MySQL 主从同步配置中,存在两个主要组件:主服务器(Master)和从服务器(Slave)。主服务器是数据的源头,负责写入和更新数据,而从服务器则是数据的副本,负责读取和查询数据。 三、 主从同步配置的步骤 ###...
#### 三、MySQL主从复制原理 - **Binarylog记录写入的IO操作**:Master节点的所有更改都会被记录在Binarylog中,包括插入、更新、删除等操作。 - **BinarylogdumpThread负责发送Binarylog的内容**:当Slave节点请求...