mysql replication


mysqlreplicaton环境:主:192.168.48.150 从:192.168.48.152简单的说,就是master把数据库的改变写入二进制日志,slave同步这些二进制日志,并根据这些二进制进行数据操作。mysql开发云主机域名Replicaton的用途1.failover2.backupserver3.highperformancemaster和slave上的数据是一样的,如果我们从master上进行写操作,slave上进行读操作,这就叫读写分离。配置Replicationstep1:Slave是通过MYSQL连接登陆到Master上来读取二进制日志的。因此需要在Master上给Slave配置权限。mysql>GRANTREPLICATIONSLAVEON*.*TO’repl’@’slaveip’IDENTIFIEDBY’replPass’;mysql>FLUSHPRIVILEGES;eg:在Master上受权:mysql>grantreplicationslaveon*.*torepl@192.168.48.152identifiedby’repl’;mysql>flushprivileges;在slave上测试连接:#mysql-h292.168.48.150-urepl-prepl可以连上表示没有问题。step2:在Master上要打开二进制日志,并标识server-id。server-id用于唯一标识主机,数字取值范围1-2**32-1.#vi/etc/my.cnf[mysqld]log-binbinlog-format=rowsync-binlog=1server-id=1#servicemysqldrestartstep3:制作一个Master的完整备份,并且执行prepare。#这里的原理是,将主要原有的数据备份打包到从上,从服务器直接还原,在这个基础之上再进行二进制传输同步,这样会节省资源。我们使用innobackupex这个工具,这个工具可以记录备份数据的二进制编号,这样从服务器就会从备份的基础上再进行同步,也就是增量备份。#innobackupex–user=dba–password=xxx/var/lib/backup/#innobackupex–use-memory=500m–apply-log/var/lib/backup/2014-03_16-40-05/eg:在master上的配置#innobackupex安装:http://my.oschina.net/sansom/blog/160434#mkdir/var/lib/backup/#cd/var/lib/backup/#innobackupex–user=root–password=123456/var/lib/backup/#这样目录里会生成原始文件#还要执行一步操作,就是生成innodb日志文件#innobackupex–use-memory=500m–apply-log/var/lib/backup/原始文件名/step4:将备份拷贝至slave,并放入数据文件目录。inmaster:#yuminstallopenssh-clients-y(masterandslavebothneedtoinstall)#scp-r/var/lib/backup/2016-03-11_10-26-10/192.168.48.152:/var/lib/backup/inslave:#servicemysqldstop#mv/var/lib/backup/2016-03-11_07-40-35/*/var/lib/mysql/(生产环境中不要直接覆盖)#ls(查看是否所有文件都被mv过去,如果没有,就再次复制过去)#cd/var/lib/mysql/#chown-Rmysql.*#拷贝过来的文件要改权限#servicemysqldstart(这一步我的mysql启不来了,原因是没有关闭selinux)#查看数据是否同步正确step5:在slave上配置server-id,标识服务器。#vi/etc/my.cnf[mysqld]server-id=2#servicemysqldrestartstep6:查看并记录二进制日志中的positionID.(这个是innobackupex工具为我们生成的)inslave:#cd/var/lib/mysqlcatxtrabackup_binlog_info显示:mysqld-bin.000001341positionid为341step7:配置slavereplication.inslave:mysql>changemastertomaster_host=’192.168.48.150′,–>master_user=’repl’,–>master_password=’repl’,–>master_log_file=’mysqld-bin.000001′,–>master_log_pos=341;step8:启动replication,并检查结果。inslave:mysql>startslave;mysql>showslavestatusG;结果如下:***************************1.row***************************Slave_IO_State:Waitingformastertosendevent(当前无同步事件)Master_Host:192.168.48.150(主ip)Master_User:repl(主用户)Master_Port:3306(端口)Connect_Retry:60(重试时间/s)Master_Log_File:mysqld-bin.000001(主同步二进制文件)Read_Master_Log_Pos:341(主位置号)Relay_Log_File:mysqld-relay-bin.000002(从二进制文件)Relay_Log_Pos:252(从位置号)#主从的号虽然不一样,但是是有对应关系的,逻辑上是一样的。Relay_Master_Log_File:mysqld-bin.000001Slave_IO_Running:Yes(必须为yes时才正常)Slave_SQL_Running:Yes(必须为yes时才正常)#主会启运一个进程,从会启运两个进程,我们可以执行如下语句查看:master_mysql>showprocesslistG;***************************1.row***************************Id:11User:replHost:192.168.48.152:54413db:NULLCommand:BinlogDumpTime:707State:Hassentallbinlogtoslave;waitingforbinlogtobeupdatedInfo:NULL***************************2.row***************************slave_mysql>showprocesslistG;***************************2.row***************************Id:3User:systemuserHost:db:NULLCommand:ConnectTime:680State:WaitingformastertosendeventInfo:NULL***************************3.row***************************Id:4User:systemuserHost:db:NULLCommand:ConnectTime:680State:Hasreadallrelaylog;waitingfortheslaveI/OthreadtoupdateitInfo:NULL3rowsinset(0.00sec)#从的两个进程,一个用于接收二进制,另一个用于解析二进制,执行语句。Replicate_Do_DB:Replicate_Ignore_DB:Replicate_Do_Table:Replicate_Ignore_Table:Replicate_Wild_Do_Table:Replicate_Wild_Ignore_Table:Last_Errno:0Last_Error:Skip_Counter:0Exec_Master_Log_Pos:341Relay_Log_Space:408Until_Condition:NoneUntil_Log_File:Until_Log_Pos:0Master_SSL_Allowed:NoMaster_SSL_CA_File:Master_SSL_CA_Path:Master_SSL_Cert:Master_SSL_Cipher:Master_SSL_Key:Seconds_Behind_Master:0Master_SSL_Verify_Server_Cert:NoLast_IO_Errno:0Last_IO_Error:Last_SQL_Errno:0Last_SQL_Error:1rowinset(0.00sec)这样就同步了,在主上操作的,从都会同步喽。

相关推荐: SQL Server 2017 AlwaysOn AG 自动初始化(十一)

何时不使用自动种子设定在某些情况下,自动种子设定可能不是初始化次要副本的最优选择。 自动种子设定过程中,SQL Server 通过网络执行备份以进行初始化。 如果数据库非常大或者次要副本是远程副本,此过程会很缓慢。 在备份过程中,无法截断这些数据库的事务日志,…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/09 17:52
下一篇 06/09 17:52

相关推荐