版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一个完整的mysql读写分离环境包括以下几个部分: 应用程序client database proxy database集群在本次实战中,应用程序client基于c3p0连接后端的database proxy。database proxy负责管理client实际访问database的路由策略,采用开源框架amoeba。database集群采用mysql的master-slave的replication方案。整个环境的结构图如下所示:实战步骤与详解一.搭建mysql的master-slave环境 1)分别在host1(10)和host2(11)上安装m
2、ysql(5.0.45),具体安装方法可见官方文档2)配置master首先编辑/etc/f,添加以下配置:log-bin=mysql-bin #slave会基于此log-bin来做replicationserver-id=1 #master的标示binlog-do-db = amoeba_study #用于master-slave的具体数据库然后添加专门用于replication的用户:mysql GRANT REPLICATION SLAVE ON *.* TO repl11 IDENTIFIED BY 111111;重启mysql,使得配置生效:/etc/init.d
3、/mysqld restart最后查看master状态:3)配置slave首先编辑/etc/f,添加以下配置:server-id=2 #slave的标示配置生效后,配置与master的连接:mysql CHANGE MASTER TO - MASTER_HOST=10, - MASTER_USER=repl, - MASTER_PASSWORD=111111, - MASTER_LOG_FILE=mysql-bin.000003, - MASTER_LOG_POS=161261;其中MASTER_HOST是master机的ip,MASTER_USER和MASTER_PAS
4、SWORD就是我们刚才在master上添加的用户,MASTER_LOG_FILE和MASTER_LOG_POS对应与master status里的信息最后启动slave:mysql start slave;4)验证master-slave搭建生效通过查看slave机的log(/var/log/mysqld.log):100703 10:51:42 Note Slave I/O thread: connected to master repl10:3306, replication started in log mysql-bin.000003 at position 16
5、1261如看到以上信息则证明搭建成功,如果有问题也可通过此log找原因二.搭建database proxy 此次实战中database proxy采用amoeba ,它的相关信息可以查阅官方文档,不在此详述1)安装amoeba下载amoeba(1.2.0-GA)后解压到本地(D:/openSource/amoeba-mysql-1.2.0-GA),即完成安装2)配置amoeba先配置proxy连接和与各后端mysql服务器连接信息(D:/openSource/amoeba-mysql-1.2.0-GA/conf/amoeba.xml):xhtml view plaincopyprint?1.
6、2. 3. 80664. 5. 6. !-7. 8. -9. 10. 2011. 12. 13. 3014. 15. 16. 3017. 18. 19. 12820. 21. 22. true23. 24. 25. root26. 27. 28. root29. 以上是proxy提供给client的连接配置xhtml view plaincopyprint?1. 2. 3. 4. 5. defaultManager6. 7. 8. 33069. 10. 11. 1012. amoeba_study13. 14. 15. root16. 17. 18. 1
7、9. 20. 21. 22. 23. 24. 20025. 20026. 1027. 60000028. 60000029. true30. true31. 32. 33. 34. 35. 36. 37. defaultManager38. 39. 40. 330641. 42. 43. 1144. amoeba_study45. 46. 47. root48. 49. 50. 51. 52. 53. 54. 55. 56. 20057. 20058. 1059. 60000060. 60000061. true62. true63. 64. 65. 以上是proxy与后
8、端各mysql数据库服务器配置信息,具体配置见注释很明白了最后配置读写分离策略:xhtml view plaincopyprint?1. 2. 15003. server14. server15. server26. true7. 从以上配置不然发现,写操作路由到server1(master),读操作路由到server2(slave)3)启动amoeba在命令行里运行D:/openSource/amoeba-mysql-1.2.0-GA/amoeba.bat即可:log4j:WARN log4j config load completed from file:D:/openSource/amo
9、eba-mysql-1.2.0-GA/conf/log4j.xmllog4j:WARN ip access config load completed from file:D:/openSource/amoeba-mysql-1.2.0-GA/conf/access_list.conf2010-07-03 09:55:33,821 INFO net.ServerableConnectionManager - Server listening on /:8066.三.client端调用与测试 1)编写client调用程序具体程序细节就不详述了,只是一个最普通的基于my
10、sql driver的jdbc的数据库操作程序2)配置数据库连接本client基于c3p0,具体数据源配置如下:xhtml view plaincopyprint?1. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 值得注意是,client端只需连到proxy,与实际的数据库没有任何关系,因此jdbcUrl、user、password配置都对应于amoeba暴露出来的配置信息3)调用与测试首先插入一条数据:insert into zone_by_id(id,name) values(20003,name_20003)通
11、过查看master机上的日志/var/lib/mysql/mysql_log.log:100703 11:58:42 1 Query set names latin1 1 Query SET NAMES latin1 1 Query SET character_set_results = NULL 1 Query SHOW VARIABLES 1 Query SHOW COLLATION 1 Query SET autocommit=1 1 Query SET sql_mode=STRICT_TRANS_TABLES 1 Query SHOW VARIABLES LIKE tx_isolati
12、on 1 Query SHOW FULL TABLES FROM amoeba_study LIKE PROBABLYNOT 1 Prepare 1 insert into zone_by_id(id,name) values(?,?) 1 Prepare 2 insert into zone_by_id(id,name) values(?,?) 1 Execute 2 insert into zone_by_id(id,name) values(20003,name_20003) 得知写操作发生在master机上通过查看slave机上的日志/var/lib/mysql/mysql_log.l
13、og:100703 11:58:42 2 Query insert into zone_by_id(id,name) values(20003,name_20003) 得知slave同步执行了这条语句然后查一条数据:select from zone_by_id t where t.id = 20003通过查看slave机上的日志/var/lib/mysql/mysql_log.log:100703 12:02:00 33 Query set names latin1 33 Prepare 1 select from zone_by_id t where t.id = ? 33 Prepare 2 select
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商业综合体开发桥涵施工合同
- 天津市医疗用房买卖合同
- 2025版股权转让合同:某创业公司股东之间关于股权转让及股权激励的具体条款协议2篇
- 机电安装工程项目合作协议
- 水土保持生态公益林管理措施
- 城市供水人工打水井施工合同
- 养鸡场租赁合同:环保可持续发展
- 碳排放权交易法律援助合同
- 2025年度数字货币交易与结算平台开发合同3篇
- 2025版劳动工伤赔偿协议范本及赔偿范围界定详解3篇
- word 公章 模板
- T∕ZSQX 008-2020 建设工程全过程质量行为导则
- ISO-IEC17025-2017实验室管理体系全套程序文件
- 业务员手册内容
- pH值的测定方法
- 输出轴的机械加工工艺规程及夹具设计
- 元旦文艺汇演校长致辞
- 国家开放大学电大本科《管理案例分析》2023-2024期末试题及答案试卷编号:1304
- 离合器接合叉机械工艺说明书
- PWM脉宽直流调速系统设计及 matlab仿真验证
- 蜂窝煤成型机设计方案.doc
评论
0/150
提交评论