




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 Mysql主从服务器设置MySQL的复制集群:通过传 库同步Master: 会产生一个同步线程,负责与从服务器建立连接,传输二进制日志文件记录Slave: 会产生两个线程。slave_IO: 负责与Master服务器建立连接,从Master那里获得二进制日志文件记录。slave_SQL: 负责把下载回来的二进制日志文件记录解析并应用。复制的核心原理:master -> 全备份,备份之后,数据库都是一直在变化slave -> 通过全备份恢复,恢复之后就会达到master过去备份时候的数据状态,为了保持和master一致的数据状态,获得备份后最近数据,需要通过获取master的二进制
2、日志文件和相应pos,提取相应的记录实现数据同步复制集群的作用:1、高可用2、负载均衡:实现读请求的负载均衡3、数据库的接近实时的数据冗余4、通过复制集群实现数据的备份(可以把从服务器停止接受服务,离线做备份)复制集群的拓扑:一般master可以接受读写请求,slave仅仅只让它接受读请求(如果slave服务器接受了写请求,那么复制集群就会失败,再也不能自动实现复制同步)Master -> slaveMaster -> slave1 -> slave2/-> slave1Master -> slave2Master1 <-> Master2 互为主从例
3、子1: 实现mysql的双机热备(AB复制)db1(Master) <-> db2(slave) eth001/24gweth002/24gw实验中的两台机器都必须相互绑定主机到/etc/hosts# cat /etc/hosts.0102核心步骤归纳:1、master必须启动二进制和使用唯一的server-id2、master要授权从服务器连接3、对master做一个完整备份4、配置slave服务器:打开中继日志,使用唯一的s
4、erver-id,可选打开二进制日志5、使用master的完整备份去恢复到slave的数据库6、在slave上启动复制(从正确binlog和pos开始提取记录)一、先在master上部署数据库,并且导出一些必要的数据# yum install mysql mysql-server -y为了让master能够支持复制集群,有些参数是必须二进制日志文件参数必须打开,否则不支持复制必须让集群中每个数据库节点有一个唯一的server-id# vim /etc/f mysqlddatadir=/datasocket=/var/lib/mysql/mysql.sockuser=mysqlskip-name
5、-resolvelog-bin=/data/mysqld-bin 必须启用二进制日志,而且强烈建议固定文件名字log-bin-index=/data/mysqld-binserver-id=1mysqld_safelog-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid# mkdir /data# mysql_install_db -defaults-file=/etc/f # service mysqld start# mysql_secure_installation 新建一些库和表,并且插入数据mysql> c
6、reate database uplooking default charset utf8;mysql> use uplooking;mysql> create table user ( id int unsigned primary key auto_increment, name varchar(32) ) engine=innodb;mysql> insert into user values (null,'tom'),(null,'mary'),(null,'bean');mysql> create table p
7、et ( id int unsigned primary key auto_increment, name varchar(32) ) engine=myisam;mysql> insert into pet values (null,'lucky'),(null,'bobo'),(null,'kity');二、在master1上创建用于复制使用的帐号该帐号是给slave服务连接master的时候使用。mysql> grant replication slave on *.* to slave'192.168.110.%
8、9; identified by '123'可以马上去slave服务器使用该帐号测试是否有效三、对master实现一个完整备份如果master之前已经由一个完整备份了,可以直接使用之前的备份,但是这个备份必须要和当初对应的二进制日志信息匹配。如何选择备份的手段:如果master的数据量较少的情况下,可以使用mysqldump,否则建议使用meb或者extabackup在本例子中,使用mysqldump# mysqldump -u root -p123 -all-databases -lock-all-tables -master-data=2 > /tmp/master-
9、all.sql留意备份出来的文件中:- CHANGE MASTER TO MASTER_LOG_FILE='mysqld-bin.000003', MASTER_LOG_POS=1837;<<<<<<<<<<<<模拟数据库备份之后,数据会一直在变化<<<<<<<<<<<<<<<<<<<<<mysql> insert into pet values (null,'goog
10、le');mysql> insert into user values (null,'roy');<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<四、在slave服务器上部署一个全新的数据库为什么要全新的?因为前面使用是mysqldump做的全库的完整备份所以恢复的时候需要先启动一个权限的数据库,然后导入备份slave服务器的配置,必须打开relay-
11、log(中继日志):所有从master上下载回来的二进制日志记录都会首先保存到relay-log.relay-log记录的是从master上下载回来的二进制日志记录(从别的机器下载的,日志记录的操作是发生在别的机器,不是自己本机主动产生的操作。)从服务器可以有自己的二进制日志文件,但默认情况下,二进制日志文件仅仅会记录自己主动产生的变更操作(客户直接连接到本机,然后对数据作出变更,才会记录到二进制日志文件)# yum install mysql mysql-server -y# vim /etc/fmysqlddatadir=/datasocket=/var/lib/mysql/mysql.s
12、ockuser=mysqllog-bin=/data/mysqld-bin 为了能够让slave服务器以后方便做备份,让备份可以恢复到最新状态log-bin-index=/data/mysqldrelay-log=/data/relay-log 强烈建议固定日志文件名字relay-log-index=/data/relay-logserver-id=2 必须是唯一的mysqld_safelog-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid# mkdir /data# mysql_install_db -defaults
13、-file=/etc/f# service mysqld start五、使用master的完整备份,恢复到slave数据库里由于前面采用的备份工具是mysqldump,所以恢复的方式使用导入备份文件的sql语句slave# scp :/tmp/master-all.sql /tmp/master-all.sqlmysql> set session sql_log_bin=0; 暂停二进制日志的记录mysql> source /tmp/master-all.sql;mysql> set session sql_log_bin=1; 恢复二进制日志的记录# service mys
14、qld restart 恢复完毕直接重启可以做验证,发证恢复后的slave的数据是落后于master六、在slave上启用复制在slave上执行mysql> change master to -> master_host='01', -> master_user='slave', -> master_password='123', -> master_log_file='mysqld-bin.000003', -> master_log_pos=1837 ; 关于二进制
15、日志的名字和pos必须是看恢复的时候使用的备份文件记录的信息mysql> start slave; 启动复制mysql> show slave status G;* 1. row * Slave_IO_State: Waiting for master to send event Master_Host: 01 Master_User: slave Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysqld-bin.000003 Read_Master_Log_Pos: 2203 Relay_Lo
16、g_File: relay-log.000002 Relay_Log_Pos: 618 Relay_Master_Log_File: mysqld-bin.000003 Slave_IO_Running: Yes <-代表连接master成功,而且成功下载二进制记录 Slave_SQL_Running: Yes <-代表执行下载回来的二进制日志文件的SQL语句成功. Exec_Master_Log_Pos: 2203 . Seconds_Behind_Master: 0 说明本机的数据和master数据一致只要启动了复制(start slave)之后,相关配置会保存在slave数据
17、目录下的文件中:# cat /data/ 动态更新的文件15mysqld-bin.000003229801slave.可以随时stop slave什么时候stop slave?1、在slave上做备份的时候2、复制配置失败、错误,那么你必须先stop slave ,然后重新change master .,修正配置之后再start slave七、让db1成为db2的从1、获得db2当前数据库的二进制日志文件状态db2-mysql> show master status;+-+-+-+-+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+-+-+-+-+| mysqld-bin.000004 | 106 | | |+-+-+-+-+互为主从的架构中,只要db1一切正常,db2是不允许接受任何写请求,所以db2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 今天幼师面试题及答案
- 司法助理考试题及答案
- 广西模拟地理试题及答案
- 2024年纺织材料研发方向试题及答案
- 瑞众保险笔试题及答案
- 广告拓展市场的成功案例试题及答案
- 定西医院招聘试题及答案
- 助理广告师考试学习路径试题及答案
- 深度解读纺织品行业的重要指标试题及答案
- 广告设计师创新设计方向试题及答案
- 贺兰山东麓干红葡萄酒多酚组分与其抗氧化、抗癌活性的关联性研究
- 第15课+十月革命的胜利与苏联的社会主义实践【高效备课精研 + 知识精讲提升】 高一历史 课件(中外历史纲要下)
- 灭火器维修与报废规程
- (4.3.1)-3.3我国储粮生态区的分布
- 辽宁盘锦浩业化工“1.15”泄漏爆炸着火事故警示教育
- 2023年衡阳市水务投资集团有限公司招聘笔试题库及答案解析
- 110~750kV架空输电线路设计规范方案
- 北师大版五年级数学下册公开课《包装的学问》课件
- 车辆采购、维修服务投标方案
- 北师大版英语八年级下册 Unit 4 Lesson 11 Online Time 课件(30张PPT)
- 浅析商业综合体的消防疏散
评论
0/150
提交评论