ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:236.96KB ,
资源ID:17332117      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17332117.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(程序猿微信Word格式文档下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

程序猿微信Word格式文档下载.docx

1、msater是不知道有多少个slave连接上来或者哪个slave从什么时候开始更新。注:启用同步后,所有要同步的更新操作都必须在master上执行。否则,必须注意不要造成用户在master上的更新和在slave上的更新引起冲突。1、同步实现步骤步骤一:MySQL同步功能由3个线程(master上1个,slave上2个)来实现。执行START SLAVE语句后,SLAVE就创建一个I/O线程。步骤二:I/O线程连接到master上,并请求master发送二进制日志中的语句。步骤三:master创建一个线程来把日志的内容发送到slave上。这个线程在master上执行SHOW PROCESSLIS

2、T 语句后的结果中的 Binlog Dump 线程便是。步骤四:slave上的I/O线程读取master的 Binlog Dump 线程发送的语句,并且把它们拷贝到其数据目录下的中继日志(relay logs)中。步骤五:第三个是SQL线程,salve用它来读取中继日志,然后执行它们来更新数据。可参见下图图示:如上图所示:每个master/slave上都有三个进程,master有多个线程,他为每个slave连接都创建一个线程,而每个slave只有I/O和SQL线程。slave有2个线程的好处:把读日志和执行分开成2个独立的任务。执行任务如果慢的话,读日志任务不会跟着慢下来。如:slave停止了

3、一段时间,那么I/O线程可以在slave启动后很快地从master上读取全部日志,尽管SQL线程可能落后I/O线程好几的小时。如果slave在SQL线程没全部执行完就停止了,但I/O线程却已经把所有的更新日志都读取并且保存在本地的中继日志中了,因此在slave再次启动后就会继续执行它们了。这就允许在master上清除二进制日志,因为slave已经无需去master读取更新日志了。2、在master/slave查看状态在master上,执行下面的命令,可以看到运行状态Mysq SHOW PROCESSLISTG;Mysql show master statusG;在slave上,可以执行以下命令

4、 show slave statusG;3、中继日志及状态文件中继日志默认地,中继日志的名字格式为 host_name-relay-bin.nnn,host_name 是服务器的主机名,nnn 是序号,如:sumi2-relay-bin.000008。索引中继日志slave上用一个索引文件来跟踪当前正在使用的中继日志,这个文件的文件名是 host_name-relay-bin.index,如:sumi2-relay-bin.index。在下列条件中会创建一个新的中继日志:(1)slave启动后,I/O线程第一次启动(在MySQL 5.0中,每次I/O线程启动后都会新建一个中继日志,而不只是第一

5、次启动时)。(2)刷新日志时;例如,执行flush logs语句或运行mysqladmin flush-logs命令(从 MySQL 4.0.14开始才会创建新中继日志)。(3)当前的中继日志大小太大了,“太大了”是这么判断的:max_relay_log_size, 如果 max_relay_log_size 0 的话max_binlog_size, 如果 max_relay_log_size = 0 或 MySQL 低于 4.0.14状态文件状态文件,名字默认为 master.info and relay-log.info。slave关闭后,会保留他们。当下一次slave启动时,就会读取这两

6、个文件来判断从master读取到二进制日志的什么位置了,处理中继日志到什么位置了。三、MySQL同步的设置1、准备服务器准备两台服务器192.168.0.32(master)和192.168.0.25(slave)。两个MySQL的basedir目录都是/usr/local/mysql,数据存放路径/usr/local/mysq/data/。创建数据库sumi_test1为同步数据库,添加用户sum为专用同步的用户。Master的MySQL版本和Slave的版本相同或者更低,Master的版本一定不能高于Slave版本。2、设置MASTER服务器创建一个MySQL帐号为同步专用: grant

7、replication slave,reload,super, on *.* to sum192.168.0.25 identified by sum123 ; FLUSH PRIVILEGES ;修改f文件# cat /etc/f然后,将sumi_test1数据库导出,并导入slave数据库中,在启动同步之前,两边的数据要一致。3、设置Slave服务器# vi /etc/f4、查看同步状态Master服务器MysqlSlave服务器四、同步数据方法终于学会了王总的方法,进行数据同步,网上的方法是将master数据库文件拿过来,势必要终止往主数据库写入,可以参考:但是这样从数据库们也不能使用了

8、,王总的方法,可以不影响主数据库写入,从一个从数据库中将数据表拷贝到新slave服务器或问题服务器上来。环境Slave1数据库IP:211.103.156.201 hostname:CSlave2数据库IP:211.103.156.203 hostname:步骤1、先在新的slave上配置好mysql配置方法见上面章节2、停止slave 数据库 slave IP:211.103.156.201# /usr/local/mysq/bin/mysqladmin -uroot -p shutdown# cd /usr/local/mysql/var/3、只拷贝需要同步的数据库(club)及需要的日志

9、文件# tar -zcvf club.tar.gz club需要备份的日志文件# tar -zcvf daillog.tar.gz relay-log.info c2-relay-bin.index c2-relay-bin.000122 master.info4、在slave2上解压数据库club及修改日志名# tar -zxvf club.tar.gz -C /usr/local/mysql/data/# tar -zcvf daillog.tar.gz -C /usr/local/mysql/data/这里要查看一下本机的mysql配置中,relay-log的名字# cd /usr/lo

10、cal/mysql/data/# vi relay-log.info# mv c2-relay-bin.index c6-relay-bin.index# vi vi c6-relay-bin.index# mv c2-relay-bin.000122 c6-relay-bin.0001225、启动新的slave服务器即可。五、同步问题1、出现错误提示解决方法从服务器上删除掉所有的二进制日志文件,包括一个数据目录下的master.info文件和hostname-relay-bin开头的文件。master.info::记录了Mysql主服务器上的日志文件和记录位置、连接的密码。2、出现错误提示解

11、决方案:由于主服务器运行了一段时间,产生了二进制文件,而slave是从log.000001开始读取的,删除主机二进制文件,包括log.index文件。3、错误提示如下由于slave没有此table表,添加这个表,使用slave start 就可以继续同步。4、错误提示如下 Slave statusG;显示:Slave_SQL_Running 为 NO解决方法: stop slave; set global sql_slave_skip_counter =1 ; start slave;5、错误提示如下# show slave statusG;这个问题原因是,主数据库突然停止或问题终止,更改了m

12、ysql-bin.xxx日志,slave服务器找不到这个文件,需要找到同步的点和日志文件,然后chage master即可。要找到slave状态中,Relay_Master_Log_File和Exec_Master_Log_Pos的值即可。参考:问题总结mysql show slave statusG Slave_IO_Running: Yes Slave_SQL_Running:No解决办法一Slave_SQL_Running: No1、程序可能在slave上进行了写操作2、也可能是slave机器重起后,事务回滚造成的。一般是事务回滚造成的:解决办法: slave stop; set GLO

13、BAL SQL_SLAVE_SKIP_COUNTER=1; slave start;解决办法二首先停掉Slave服务:slave stop到主服务器上查看主机状态:记录File和Position对应的值进入master show master status;+-+-+-+-+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | localhost-bin.000094 | 33622483 | | | 1 row in set (0.00 sec)然后到slave服务器上执行手动同步: change master to master_hos

14、t=master_ip, master_user=user, master_password=pwd master_port=3306, master_log_file= mysql-bin.000023, master_log_pos=33622483;slave恢复正常,但数据并没有同步过来,需要手动同步。先停止master的写操作,然后在slave上使用同步命令: LOAD DATA FROM MASTER;3、通过二进制文件导入slave服务器进行数据同步当slave同步master的二进制日志文件时突然终止,master数据库重启,会新建一个二进制日志。原同步文件是mysql-bin

15、.00025,重启后出错,生成mysql-bin.00026文件,调整好后,日志名为mysql-bin.00027,但26文件中也有写入操作。Slave若要同步数据,这执行以下操作:(1)在slave先恢复到27,执行下面语句(2)在master将mysql-bin.00026二进制文件,导出为sql文件# /usr/local/mysql/bin/mysqlbinlog mysql-bin.000025 -start-position 1010663046 test25.sql/ -start-position 1010663046 可以选择起始节点,从哪个位置导出# /usr/local/

16、mysql/bin/mysqlbinlog mysql-bin.000026 test26.sql(3)在slave中,将导出的sql文件,导入到slave库中错误1201change master to master_host=IP, master_user= 用户, master_password=密码,master_log_file=mysqld-bin.000044, master_log_pos=564188871;ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log1.进入MySQL数据库默认的数据库存储目录:/usr/local/mysql/var这个目录根据实际情况而定,使用不同的安装方式,或是编译指定目录不同,这个目录也不一定相同,但只要找到数据库的存储目录就好。 2.删除以下两个文件:Master.info relay-log.info3.登陆数据库后,执行:start slave;返回如下信息:Query OK, 0 rows affected (0.00 sec)这样就说明问题已经解决了。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1