关于 MySQL 主从复制的配置(转)

 来源:http://www.oschina.net/bbs/thread/10388

设置Mysql的主从设置很重要,有如下几点用处:

1 做备份机器,一旦主服务器崩溃,可以直接启用从服务器作为主服务器
2 可以直接锁定从服务器的表只读,然后做备份数据,这样不会影响主服务器的服务
3 可以处理读写数据库的负载均衡

阿权总结的设置主从的要点有如下:

1 主从服务器的启动方式的不同点
2 主服务器只读或者停止服务然后获取当前数据快照,清理日志或者重新开始记录日志
3 从服务器一般需要只读,否则容易产生错误导致同步失败

阿权制作主从的过程总结:

1 停止数据库服务,并且删除当前的所有mysql日志(默认是mysql-bin.*)
2 把当前的所有数据库打包,备用
3 打包完成后,主服务器可以启动了
4 把从服务器的同步日志删除(默认是mysql-relay-bin.*)
5 把文件解压到从服务器的数据目录
6 设置好cnf文件,启动即可

当然,取得快照的方法还有别的:
1 FLUSH TABLES WITH READ LOCK 锁定所有表
2 打包文件或者是直接导出数据,比停止服务好的地方就是有一段读数据库的时间
3 然后 unlock tables

主从的配置区别:

启动方式请参考《Mysql多实例启动》
主服务器没有设置 master的值,下面的参数影响同步:

#设定不同步的数据库,这些库的修改不会记录到日志,可以添加多行
binlog-ignore-db = test
#设定记录的库,可以添加多行
binlog-do-db = vnet



从服务器设置了系列master的参数:

master-host = 192.168.1.147
master-port = 3308
master-user = usr
master-password = pwd
master-retry-count = 999
master-connect-retry = 60

#并且可以设置忽略的库,可以添加多行
replicate-ignore-db = testdb
#设置仅处理的库,可以添加多行
replicate-do-db = aslibra



设置忽略的和处理的参数的一个就好,如果需要忽略哪些,就加上忽略的库,如果仅仅需要处理一两个,那就加上do-db的设置吧

如何检查同步情况?

show master status;
show slave status;

这里会列出当前同步的情况,包括同步哪些库,忽略哪些库

如何检查发生同步错误?

1 主服务器更新后没有反映在从服务器,这个是看的到的
2 可以使用phpmyadmin看进程或者是命令 SHOW PROCESSLIST 
主服务器会有一条slave用户的记录,比如

slave   127.0.0.1:42157   无   Binlog Dump   598   Has sent all binlog to slave; waiting for binlog to be updated   ---  


从服务器会有两条记录

system user      无   Connect   724   Waiting for master to send event   ---  
system user      无   Connect   187   Has read all relay log; waiting for the slave I/O thread to update it   ---  


如果同步失败,则后一条没有

同步特性及已知问题

跨库的操作是不更新的,比如

update dbtest.aslibra set domain='www.aslibra.com' where id=5



更多内容可以参考《同步特性及已知问题》,这里就不详细列出了啦

哪些从服务器操作会导致错误?

1 删除表或者修改表结构会导致之后更新该表产生错误,可以恢复原先结构再继续同步就可以,错误如下

080503  4:41:03 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.000003' at position 244, relay log '/Data/mysql3309/var/mysql-relay-bin.000004' position: 381080503  4:44:00 [ERROR] Slave: Error 'Can't DROP 'id'; check that column/key exists' on query. Default database: 'dbtest'. Query: 'ALTER TABLE test DROP id', Error_code: 1091080503  4:44:00 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin.000004' position 252



2 从服务器如果写入一条记录,自增字段加一,主键唯一性错误,这样主服务器就无法同步这样的数据,导致同步停止。如果不产生主键冲突的数据是不会有影响

INTO aslibra (id, ddd) VALUES ('', '2008-05-02')', Error_code: 1062
080503  4:36:44 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin.000003' position 244



3 从服务器删除某条数据,主服务器再删除该条数据,不会产生错误

阿权的总结:

1 从服务器如果需要重新做同步数据,必须是主服务器开始记录日志的数据快照。所以快照很重要,可以用该快照立刻构建一个从服务器。
2 日志只是记录sql语句,执行删除和更新如果与主服务器数据不同是不会产生错误
3 如果执行插入数据,产生主键冲突则会导致错误,停止同步,除非从服务器执行本语句正常,则可以继续同步
4 表结构修改如果返回错误,则也会导致同步停止

转载于:https://www.cnblogs.com/yuanermen/archive/2010/08/11/1797206.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/379077.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Silverlight 同域WCF免跨域文件

在sl3使用wcf时常常会因为sl中调用了不同域的wcf服务而导至调用服务失败,记得在很久以前sl当是只支持同域的访问,那么让我有一个想法,就是在sl引用时可以动态地取得当前sl所在的域,而wcf服务也必须同时部署到这个域下边&#xff0…

使用ffmpeg 的 filter 给图片添加水印

使用ffmpeg 的 filter 给图片添加水印。 main.c #include <stdio.h>#include <libavfilter/avfilter.h> #include <libavfilter/buffersrc.h> #include <libavfilter/buffersink.h> #include <libavformat/avformat.h> #include <libavcodec…

程序崩溃 分析工具_程序分析工具| 软件工程

程序崩溃 分析工具A program analysis tool implies an automatic tool that takes the source code or the executable code of a program as information and produces reports with respect to a few significant attributes of the program, for example, its size, multif…

28335接两个spi设备_IIC和SPI如此流行,谁才是嵌入式工程师的必备工具?

IICvs SPI现今&#xff0c;在低端数字通信应用领域&#xff0c;我们随处可见 IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips(for IIC)和 Motorola(for SPI) 出于不同背景和市场需求…

线性表15|魔术师发牌问题和拉丁方阵 - 数据结构和算法20

线性表15 : 魔术师发牌问题和拉丁方阵 让编程改变世界 Change the world by program 题外话 今天小甲鱼看到到微博有朋友在问&#xff0c;这个《数据结构和算法》系列课程有木有JAVA版本的&#xff1f; 因为这个问题之前也有一些朋友问过&#xff0c;所以咱在这里统一说下哈…

[ZT]Three ways to tell if a .NET Assembly is Strongly Named (or has Strong Name)

Here are several convenient ways to tell whether a .NET assembly is strongly named. (English language note: I assume the form “strongly named” is preferred over “strong named” since that’s the form used in the output of the sn.exe tool shown immediat…

最佳页面置换算法

在一个请求分页系统中&#xff0c;采用最佳页面置换算法时&#xff0c;假如一个作业的页面走向为4、3、2、1、4、3、5、4、3、2、1、5&#xff0c;当分配给该作业的物理块数M分别为3和4时&#xff0c;试计算在访问过程中所发生的缺页次数和缺页率。请给出分析过程。 解析&…

网络名称 转换 网络地址_网络地址转换| 计算机网络

网络名称 转换 网络地址At the time of classful addressing, the number of household users and small businesses that want to use the Internet kept increasing. In the beginning, a user was connected to the Internet with a dial-up line, for a specific period of…

rstudio 修改代码间距_第一章 R和RStudio

R与RStudioR是一种统计学编程语言&#xff0c;在科学计算领域非常流行。它是由Ross Ihaka和Robert Gentleman开发的&#xff0c;是 "S "编程语言的开源实现。R也是使用这种语言进行统计计算的软件的名字。它有一个庞大的在线支持社区和专门的软件包&#xff0c;可以为…

ubuntu下最稳定的QQ

一、安装好 Wine 1.2&#xff08;1.2 版安装好就支持中文界面的了&#xff09; 当然得有WINE 了 当然我的有 如果没有可以如下方法得到&#xff1a; 第一种方法&#xff1a;如果你已经安装过 Wine 的老版本&#xff0c;那么只要添加 Wine 1.2 的软件源&#xff0c;然后去新立得…

字体Times New Roman

Windows系统中的字体是Monotype公司为微软公司制作的Times New Roman PS&#xff08;TrueType字体&#xff09;&#xff0c;视窗系统从3.1版本开始就一直附带这个字体。而在苹果电脑公司的麦金塔系统中使用的是Linotype公司的 Times Roman (在Macintosh系统中直接简称为‘Times…

最近最久未使用页面置换算法

在一个请求分页系统中&#xff0c;采用最近最久未使用页面置换算法时&#xff0c;假如一个作业的页面走向为4、3、2、1、4、3、5、4、3、2、1、5&#xff0c;当分配给该作业的物理块数M分别为3和4时&#xff0c;试计算在访问过程中所发生的缺页次数和缺页率。请给出分析过程。 …

ffplay的数据结构分析

《ffplay分析&#xff08;从启动到读取线程的操作&#xff09;》 《ffplay分析&#xff08;视频解码线程的操作&#xff09;》 《ffplay分析&#xff08;音频解码线程的操作&#xff09;》 《ffplay 分析&#xff08;音频从Frame(解码后)队列取数据到SDL输出&#xff09;》 《f…

tolowercase_Java String toLowerCase()方法与示例

tolowercase字符串toLowerCase()方法 (String toLowerCase() Method) toLowerCase() method is a String class method, it is used to convert given string into the lowercase. toLowerCase()方法是String类方法&#xff0c;用于将给定的字符串转换为小写。 Syntax: 句法&a…

python web 服务器实时监控 websocket_python websocket网页实时显示远程服务器日志信息...

功能&#xff1a;用websocket技术&#xff0c;在运维工具的浏览器上实时显示远程服务器上的日志信息一般我们在运维工具部署环境的时候&#xff0c;需要实时展现部署过程中的信息&#xff0c;或者在浏览器中实时显示程序日志给开发人员看。你还在用ajax每隔段时间去获取服务器日…

磁盘调度算法

1&#xff0c;假设磁头当前位于第105道&#xff0c;正在向磁道序号增加的方向移动&#xff0c;现有一个磁道访问请求序列为&#xff1a;35&#xff0c;45&#xff0c;12&#xff0c;68&#xff0c;100&#xff0c;180&#xff0c;170&#xff0c;195&#xff0c;试用先来先服务…

C# Using用法三则

&#xff08;1&#xff09;引用命名空间 using作为引入命名空间指令的用法准则为&#xff1a; using Namespace; 在.NET程序中&#xff0c;最多见的代码莫过于在程序文件的开头引入System命名空间&#xff0c;其原由在于System命名空间中封装了许多最基本最常用的操作&#xff…

iOS开发 工程

一直没正儿八经的写过技术文章。今日开个小窗&#xff0c;准备写点东西。。。完了 1、传统的MVC结构需要至少M、V、C三个模块&#xff0c;在实际开发中往往需要添加额外的模块&#xff0c;添加的模块当然也大体上属于这三个模块之内。以下为较为常用的子模块。 &#xff08;1&a…