Below you will find pages that utilize the taxonomy term “主从复制”
November 24, 2012
mysql中的主从复制slave-skip-errors参数使用方法
"\u003cp\u003e在主从复制中,难免会遇到一些sql语句错误的问题。这个时候我们需要手动来重新设置中继日志的起始点了,有些麻烦。今天在看“2012华东架构师大会”视频的时候,发现淘宝丁奇的ppt里有这个参数,看名字就知道是让从库跳过一些错误了。以前没有注意过这个参数,这里了解一下这个参数的用法。\u003c/p\u003e\n\u003cp\u003e—————————————-\u003c/p\u003e\n\u003cp\u003e环境说明:\u003c/p\u003e\n\u003cp\u003emysql\u0026gt;show slave stsatus\\G;\u003c/p\u003e\n\u003cp\u003e报错信息如下:\u003c/p\u003e\n\u003cp\u003e……\u003c/p\u003e\n\u003cp\u003eLast_Errno: 1062\u003c/p\u003e\n\u003cp\u003eLast_Error: Error ‘Duplicate entry ‘1’ for key ‘PRIMARY” on query…….\u003c/p\u003e\n\u003cp\u003e……\u003c/p\u003e\n\u003cp\u003e1062的错误是指一些主键重复的错误,在my.cnf用slave-skip-erros 可以跳过去。这样就避免了由于sql出错导致的从复制失效。\u003c/p\u003e\n\u003cp\u003e—————————————-\u003c/p\u003e\n\u003cp\u003eError_code: 1032; handler error HA_ERR_KEY_NOT_FOUND;\u003c/p\u003e\n\u003cp\u003e造成1032错误的根本原因是主从数据库数据不一致,导致同步操作在从库上无法执行.解决办法同上\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e在slave的my.cnf …\u003c/code\u003e\u003c/pre\u003e"
September 26, 2011
show slave status\G中的Read_Master_Log_Pos和Relay_Log_Pos的(大小)关系
"\u003cp\u003eJust to clarify, there are three sets of file/position coordinates in SHOW SLAVE STATUS:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eThe position, ON THE MASTER, from which the I/O thread is reading: Master_Log_File/Read_Master_Log_Pos. —–相对于主库,从库读取主库的二进制日志的位置,是IO线程\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe position, IN THE RELAY LOGS, at which the SQL thread is executing: Relay_Log_File/Relay_Log_Pos —-相对于从库,是从库的sql线程执行到的位置\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe position, ON THE MASTER, at which the SQL thread is executing: Relay_Master_Log_File/Exec_Master_Log_Pos —-相对于主库,是从库的sql线程执行到的位置\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eNumbers 2) …\u003c/p\u003e"
September 26, 2011
mysql主从复制原理
"\u003cp\u003e\u003cstrong\u003eReplication 线程\u003c/strong\u003e\nMysql的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个 Mysql instance(我们称之 Slave)。在 Master 与 Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave 端,另外一个线程(IO线程)在 Master 端。\u003c/p\u003e\n\u003cp\u003e要实现 MySQL 的 Replication ,首先必须打开 Master 端的Binary Log(mysql-bin.xxxxxx)功能,否则无法实现。因为整个复制过程实际上就是Slave从Master端获取该日志然后再在自己身上完全 顺序的执行日志中所记录的各种操作。打开 MySQL 的 Binary Log 可以通过在启动 MySQL Server 的过程中使用 “—log-bin” 参数选项,或者在 my.cnf 配置文件中的 mysqld 参数组([mysqld]标识后的参数部分)增加 “log-bin” 参数项。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMySQL 复制的基本过程如下:\u003c/strong\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eSlave 上面的IO线 …\u003c/p\u003e\u003c/li\u003e\u003c/ol\u003e"
December 13, 2010
show slave status 参数详解
"\u003cp\u003e有关mysql主从复制原理请参考: \u003ca href=\"http://blog.haohtml.com/archives/11507\"\u003ehttp://blog.haohtml.com/archives/11507\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eSlave_IO_State:\u003c/strong\u003e 等待 master 发生事件\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaster_Host:\u003c/strong\u003e 当前的主服务器主机\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaster_User:\u003c/strong\u003e 被用于连接主服务器的当前用户\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaster_Port:\u003c/strong\u003e 当前的主服务器接口\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eConnect_Retry:\u003c/strong\u003e master-connect-retry选项的当前值\u003c/p\u003e\n\u003cp\u003eMaster_Log_File:SLAVE中的I/O线程当前正在读取的主服务器二进制日志文件的名称\u003c/p\u003e\n\u003cp\u003eRead_Master_Log_Pos:在当前的主服务器二进制日志中,SLAVE中的I/O线程已经读取的位置\u003c/p\u003e\n\u003cp\u003eRelay_Log_File:SQL线程当前正在读取和执行的中继日志文件的名称\u003c/p\u003e\n\u003cp\u003eRelay_Log_Pos:在当前的中继日志中,SQL线程已读取和执行的位置\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eRelay_Master_Log_File:由SQL线程执行的包含多数近期事件的主服务器二进制日志文件的名称\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eSlave_IO_Running:I/O …\u003c/strong\u003e\u003c/p\u003e"
July 20, 2010
mysqlbinlog:处理mysql binlog二进制日志文件的实用工具
"\u003cp\u003e服务器生成的二进制日志文件写成二进制格式。要想检查这些文本格式的文件,应使用mysqlbinlog实用工具。\n应这样调用mysqlbinlog:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eshell\u0026gt; mysqlbinlog [options] log-files…\n例如,要想显示二进制日志binlog.000003的内容,使用下面的命令:\u003c/p\u003e\n\u003cp\u003eshell\u0026gt; mysqlbinlog binlog.0000003\n输出包括在binlog.000003中包含的所有语句,以及其它信息例如每个语句花费的时间、客户发出的线程ID、发出线程时的时间戳等等。\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e通常情况,可以使用mysqlbinlog直接读取二进制日志文件并将它们用于本地MySQL服务器。也可以使用–read-from-remote-server选项从远程服务器读取二进制日志。\u003c/p\u003e\n\u003cp\u003e当读取远程二进制日志时,可以通过连接参数选项来指示如何连接服务器,但它们经常被忽略掉,除非你还指定了–read-from-remote-server选项。这些选项是–host、–password、–port、–protocol、–socket和–user。\u003c/p\u003e\n\u003cp\u003e还可以使用mysqlbinlog来 …\u003c/p\u003e"
April 21, 2010
mysql集群强制从主服务器阻塞更新直到从服务器同步?
"\u003cp\u003e\u003cstrong\u003eQ\u003c/strong\u003e:我怎样强制主服务器阻塞更新直到从服务器同步?\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eA\u003c/strong\u003e:使用下面的步骤:\u003c/p\u003e\n\u003cp\u003e1.在主服务器上,执行这些语句:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003emysql\u0026gt; FLUSH TABLES WITH READ LOCK;\n\u003c/code\u003e\u003c/pre\u003e\u003cpre tabindex=\"0\"\u003e\u003ccode\u003emysql\u0026gt; SHOW MASTER STATUS;\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e记录SHOW语句的输出的日志名和偏移量。这些是复制坐标。2.在从服务器上,发出下面的语句,其中Master_POS_WAIT()函 数的参量是前面步骤中的得到的复制坐标值:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003emysql\u0026gt; SELECT MASTER_POS_WAIT(\u0026#39;log_name\u0026#39;, log_offset);\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eSELECT语句阻塞直到从服务器达到指定的日志文件和偏移量。此时,从服务器与主服务器同步,语句返回。\u003c/p\u003e\n\u003cp\u003e3.在主服务器上,发出下面的语句允许主服务器重新开始处理更新:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003emysql\u0026gt; UNLOCK TABLES;\n\n来源:http://dev.mysql.com/doc/refman/5.1/zh/replication.html#replication-faq\n\u003c/code\u003e\u003c/pre\u003e"
November 5, 2009
MySQL 同步常见问题
"\u003ch1 id=\"6-mysql-同步\"\u003e\u003ca href=\"javascript:void(0);\"\u003e6 MySQL 同步\u003c/a\u003e\u003c/h1\u003e\n\u003cp\u003e同步功能在MySQL 3.23.15就开始引进了,它可以把一个MySQL服务器上的数据复制到另一个服务器上去。本章描述了MySQL的各种复制特性。介绍了同步的概念,如何设置同步服务器,以及可用服务器的参照。还提供了一系列的常见问题及其答案,疑难解答。\u003c/p\u003e\n\u003cp\u003e“\u003ca href=\"javascript:void(0);\"\u003e14.6 Replication Statements\u003c/a\u003e“中介绍了同步相关的SQL语句语法。\u003c/p\u003e\n\u003cp\u003e我们建议经常访问”\u003ca href=\"javascript:void(0);\"\u003ehttp://www.mysql.com\u003c/a\u003e“经常阅读本章的最新内容。同步功能一直在改进,我们经常把这部分的手册更新到当前的最新内容。\u003c/p\u003e\n\u003ch2 id=\"61-同步介绍\"\u003e\u003ca href=\"javascript:void(0);\"\u003e6.1 同步介绍\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMySQL 3.23.15及更高的版本支持单向同步。一个服务器作为master(主服务器),一个或者多个服务器作为slave(从服务器)。master服务器 把更新的内容写到二进制日志(binary log或binlog)中,并且维护了一个索引文件来记录日志循环的情况。这些日志中的更新部分会被发送到slave服务器。一个slave连接到 master之后,它通知master最后一次成功增量更新的日志位置。slave会找出所有从那个时刻开始的更新操作,然后阻塞并 …\u003c/p\u003e"
November 2, 2009
(精典教程)在MySql上实现Replication(Master 与 Slave 数据同步)
"\u003cp\u003eMaster: 192.168.1.200\nslave: 192.168.1.201\u003c/p\u003e\n\u003cp\u003e1: 首先确定Master和Slave的数据库版本,Master数据库的版本不能高于Slave数据的版本。\u003c/p\u003e\n\u003cp\u003e这里我是使用MySql 5.0.27 作为Master数据库,MySql 6.0.3(alpha)作为Slave进行测试。\u003c/p\u003e\n\u003cp\u003e2:首先在Master数据库的配置文件my.ini (windows)里添加log-bin 和 server-id 两项\u003c/p\u003e\n\u003cp\u003eeg: [mysqld]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eserver-id = 1 //服务器编号\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003elog-bin = mysql-bin //使用的二进制日志文件名\nbinlog-do-db=test = maindb //同步的数据库(不记录二进制日志)\u003c/strong\u003e\n\u003cstrong\u003ebinlog-ignore-db=bbs\u003c/strong\u003e \u003cstrong\u003e//不允许同步的数据库(不记录二进制日志)\u003c/strong\u003e\n\u003cstrong\u003ebinlog-ignore-db=ceshi //不允许同步的数据库库(不记录二进制日志)\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e在Slave数据库的配置文件my.ini里添加server-id 项\u003c/p\u003e\n\u003cp\u003eeg:[mysqld]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eserver-id = 2\n** …\u003c/strong\u003e\u003c/p\u003e"