版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Mysql5.6.24的主从复制及用atlas实现读写分离在实际企业应用环境当中,单台mysql数据库是不足以满足日后业务需求的。譬如服务器发生故障,没有备份服务器来提供服务的话,业务就得停止。使用mysql主从复制的好处有:1、采用主从服务器这种架构,稳定性得以提升。如果主服务器发生故障,我们可以使用从服务器来提供服务。2、在主从服务器上分开处理用户的请求,可以提升数据处理效率。3、将主服务器上的数据复制到从服务器上,保护数据免受意外的损失。环境描述:新企业要搭建架构为主从复制的mysql数据库。主服务器(mysql-master):IP地址:80,mysql已安装,没有用户数据。从服务器(mysql-slave):IP地址:81,mysql已安装,没有用户数据。主从服务器均可正常提供服务。主从复制配置如下:在主服务器上操作:1)、确保/etc/f中有如下参数,没有的话需手工添加,并重启mysql服务。[mysqld]log-bin=/usr/local/mysql/data/mysql/mysql-bin启动二进制文件server-id=1服务器ID2)、登录mysql,在mysql中添加一个repl的账号,并授权给从服务器。[root@localhost~]#mysql-uroot–p123456登录mysqlmysql>grantreplicationslaveon*.*to'repl'@'81'identifiedby'123';创建repl用户,并授权给81使用。3)、查询主数据库状态,并记下FILE及Position的值,这个在后面配置从服务器的时候要用到。mysql>showmasterstatus;在从服务器上操作:1)、确保/etc/f中有log-bin=mysql-bin和server-id=1参数,并把server-id=1修改为server-id=10。修改之后如下所示:[mysqld]log-bin=/usr/local/mysql/data/mysql/mysql-bin启动二进制文件server-id=10服务器ID、重启mysql服务。3)、登录mysql,执行如下语句[root@localhost~]#mysql-uroot–p123456mysql>changemastertomaster_host='80',master_user='repl',master_password='123',master_log_file='mysql-bin.000001',master_log_pos=330;4)、启动slave同步。mysql>startslave;5)、检查主从同步,如果您看到Slave_IO_Running和Slave_SQL_Running均为Yes,则主从复制连接正常。mysql>showslavestatus\G验证配置是否正常,mysql主从能否正常复制。在主数据库上新建一个库,并且在库中写一个表和一些数据。[root@localhost~]#mysql-uroot–p123456mysql>createdatabasemysqltest;mysql>usemysqltest;mysql>createtableuser(idint(5),namechar(10));mysql>insertintouservalues(00001,'zhangsan');在从数据库中验证一下,是否正常复制到数据。[root@localhost~]#mysql-uroot–p123456mysql>showdatabases;mysql>select*frommysqltest.user;从上图中的结果,我们可以看到mysql主从复制已经在起作用了,我们在主数据库中写入的数据已经复制到我们的从数据库中了。环境如下:单台数据库存有数据,要升级为主从复制的架构。主数据库:mysql-master:IP80,数据库正常提供服务,有数据。从数据库:mysql-slave:IP81,数据库正常提供服务,无数据。升级大致步骤如下:1、修改主数据库配置文件,开启主从复制必要的功能。2、在主数据库中创建一个账号并授权给从数据库使用。3、导出主数据库中的数据。4、修改从数据库配置文件,开启主从复制必要的功能。5、把刚才主数据库中导出的数据导入到从数据库。6、在从数据库中配置连接主数据库要用到的账户、密码等。7、启动主从复制功能,并检查是否正常复制。开始升级:在主数据库上操作:1)、确保/etc/f中有如下参数,没有的话需手工添加,并重启mysql服务。[mysqld]log-bin=/usr/local/mysql/data/mysql/mysql-bin启动二进制文件server-id=1服务器ID2)、登录mysql,在mysql中添加一个repl的账号,并授权给从服务器。[root@localhost~]#mysql-uroot–p123456登录mysqlmysql>grantreplicationslaveon*.*to'repl'@'81'identifiedby'123';创建repl用户,并授权给81使用。3)、查看已有的数据库有哪些;mysql>showdatabases;4)、进行锁表操作,不让数据进行写入动作,这么做是为了防止从数据库的原始数据和主数据库的原始数据不一致。mysql>flushtableswithreadlock;5)、查询主数据库状态,并记下FILE及Position的值,这个在后面配置从服务器的时候要用到。mysql>showmasterstatus;6)、切换一个终端,使用mysqldump命令将刚才查询到的两个库导出来。mysql>mysqldump–uroot–p123456mysqltest>mysqltest.sqlmysql>mysqldump–uroot–p123456test1234>test1234.sql7)、将导出来的库文件传送到从数据库的/root目录下。[root@localhost~]#scpmysqltest.sqltest1234.sqlroot@81:/root/这中间需要输入一次验证口令。见下图8)、切换回之前的终端,进行表解锁操作。mysql>unlocktables;主数据库服务器上的操作告一段落。在从数据库上操作:1)、确保/etc/f中有log-bin=mysql-bin和server-id=1参数,并把server-id=1修改为server-id=10。修改之后如下所示:[mysqld]log-bin=/usr/local/mysql/data/mysql/mysql-bin启动二进制文件server-id=10服务器ID2)、重启mysql服务。3)、登录数据库,确认要同步的库名是否存在。[root@localhost~]#mysql-uroot–p123456mysql>showdatabases;4)、创建名为mysqltest和test1234的库。mysql>createdatabasemysqltest;mysql>createdatabasetest1234;5)、切换一个终端,将传过来的两个数据文件分别导入对应的数据库下。[root@localhost~]#mysql-uroot–p123456mysqltest<mysqltest.sql[root@localhost~]#mysql-uroot–p123456test1234<test1234.sql6)、切换回之前的终端,执行如下语句mysql>changemastertomaster_host='80',master_user='repl',master_password='123',master_log_file='mysql-bin.000003',master_log_pos=1650;7)、启动主从复制功能。mysql>startslave;8)、检查主从同步,如果您看到Slave_IO_Running和Slave_SQL_Running均为Yes,则主从复制连接正常。mysql>showslavestatus\G验证主从是否正常配置:在主数据库上插入数据:mysql>showdatabases;mysql>showtables;mysql>usemysqltest;mysql>select*fromuser;mysql>insertintouservalues(4,'ergou');mysql>insertintouservalues(5,'sanwazi');在从数据库上查看是否正常同步:mysql>showdatabases;mysql>usemysqltest;mysql>select*fromuser;上图可以看出,主从之间已经可以正常复制了。Atlas安装和配置:Atlas是由Qihoo360,Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。目前该项目在360公司内部得到了广泛应用,很多MySQL业务已经接入了Atlas平台,每天承载的读写请求数达几十亿条。主要功能:*读写分离*从库负载均衡*IP过滤*SQL语句黑白名单*自动分表一、环境OS:CentOS-6.5x86_64AtlasIP:82MySQLMasterIP:80MySQLSlaveIP:81二、MySQL授权MySQL主从已经配置好之后,主从对Atlas进行授权mysql>grantallon*.*toatlas@'82'identifiedby'123456';Atlas安装#rpm-ivhAtlas-2.2.1.el6.x86_64.rpmAtlas安装后的文件路径/usr/local/mysql-proxy/Atlas配置加密MySQL用户密码,获取的加密串填写到配置文件的pwds参数中。#/usr/local/mysql-proxy/bin/encrypt123456/iZxz+0GRoA=vim/usr/local/mysql_proxy/conf/test.conf[mysql-proxy]#带#号的为非必需的配置项目#管理接口的用户名admin-username=user#管理接口的密码admin-password=pwd#Atlas后端连接的MySQL主库的IP和端口,可设置多项,用逗号分隔proxy-backend-addresses=80:3306#Atlas后端连接的MySQL从库的IP和端口,@后面的数字代表权重,用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔proxy-read-only-backend-addresses=81:3306@1#用户名与其对应的加密过的MySQL密码,密码使用PREFIX/bin目录下的加密程序encrypt加密,下行的user1和user2为示例,将其替换为你的MySQL的用户名和加密密码!pwds=atlas:/iZxz+0GRoA=#设置Atlas的运行方式,设为true时为守护进程方式,设为false时为前台方式,一般开发调试时设为false,线上运行时设为true,true后面不能有空格。daemon=true#设置Atlas的运行方式,设为true时Atlas会启动两个进程,一个为monitor,一个为worker,monitor在worker意外退出后会自动将其重启,设为false时只有worker,没有monitor,一般开发调试时设为false,线上运行时设为true,true后面不能有空格。keepalive=true#工作线程数,对Atlas的性能有很大影响,可根据情况适当设置event-threads=8#日志级别,分为message、warning、critical、error、debug五个级别log-level=message#日志存放的路径log-path=/usr/local/mysql-proxy/log#SQL日志的开关,可设置为OFF、ON、REALTIME,OFF代表不记录SQL日志,ON代表记录SQL日志,REALTIME代表记录SQL日志且实时写入磁盘,默认为OFF#sql-log=OFF#慢日志输出设置。当设置了该参数时,则日志只输出执行时间超过sql-log-slow(单位:ms)的日志记录。不设置该参数则输出全部日志。#sql-log-slow=10#实例名称,用于同一台机器上多个Atlas实例间的区分#instance=test#Atlas监听的工作接口IP和端口proxy-address=:1234#Atlas监听的管理接口IP和端口admin-address=:2345#分表设置,此例中person为库名,mt为表名,id为分表字段,3为子表数量,可设置多项,以逗号分隔,若不分表则不需要设置该项#tables=person.mt.id.3#默认字符集,设置该项后客户端不再需要执行SETNAMES语句#charset=utf8#允许连接Atlas的客户端的IP,可以是精确IP,也可以是IP段,以逗号分隔,若不设置该项则允许所有IP连接,否则只允许列表中的IP连接#client-ips=,192.168.1#Atlas前面挂接的LVS的物理网卡的IP(注意不是虚IP),若有LVS且设置了client-ips则此项必须设置,否则可以不设置#lvs-ips=启动/usr/local/mysql-proxy/bin/mysql-proxydteststart关闭/usr/local/mysql-proxy/bin/mysql-proxydteststop五、Atlas参数备注instance参数同一台机器上的多个Atlas实例,使用不同的端口,对应不同数据库,使用各自的配置文件默认的黑白名单不带where的delete会屏蔽,"sleep"会屏蔽备注:1.03版本已经支持setautocommit语句,另外对于python来说需要在连接上后执行一句conn.autocommit(True)pwds参数配置MySQL用户名和对应的加密过的MySQL密码,密码使用/usr/local/mysql-proxy/bin/encrypt程序进行加密,用户名和密码用冒号分开,可以使用多个用户,用逗号空格
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天然气发电技术与市场分析考核试卷
- 高中课件矛盾教学课件
- 厨房新员工入职培训计划方案
- 服装新员工入职培训方案
- 小班春节课件教学课件
- 人教版八年级下册地理期末复习提纲
- DJ音标课件教学课件
- 淮阴工学院《工程项目管理2》2022-2023学年第一学期期末试卷
- 餐厨垃圾处理相关行业投资规划报告范本
- 精细药液过滤器相关项目投资计划书范本
- 婚博会活动方案
- 项目管理培训之沟通管理课件
- 《软件项目质量管理》课件
- 《清洁能源的应用》课件
- 《人大复印资料》课件
- 管理经济学课后答案
- 2024年西南油气田分公司招聘笔试参考题库含答案解析
- 医生经纪人服务合同
- 学术规范与学术道德课件
- 中考数学复习《圆》专题训练-附带有答案
- 宾馆治安管理制度范文
评论
0/150
提交评论