在实际情况中,可能会通过分库来解决单台服务器压力问题,但是这样会给统计带来很大的麻烦,对于统计业务,最好的就是把所有数据集中到一块,然后做统计,对于这样的应用,我想可能就需要多台主对应一台slave了。
对于mysql的来说,他并不支持多主一从,通过网上查询,发现http://denniswwh.itpub.net/post/15174/483254这方法
【大型的系统,数据库往往会根据业务逻辑分隔放在多台机上,但统计的时候又经常需要互相关联,MySQL理论上是不支持多个主库同步到一个从库上的,那么如果实现多主一从以方便统计查询呢?我试着利用MyISAM的简单文件存储的特点来实现,过程如下:
1设置主库,启用Binlog,建议复制帐号。具体过程跟一主多从设置一样。
2设置从库,在从库使用mysqld_multi启动多库实例,每个实例对应一个主库,并分别设置好主从复制。需要注意的是,1、从库只安装MyISAM引擎,这样不管主库是用什么引擎,从库都使用MyISAM。2、从库的几个实例的数据目录使用同一个,这样每个实例都可以访问其他实例的表。3、使用Crontab在从库每分钟执行一次Flush tables;以便每个实例都能看到其他实例对期数据的修改变化。】
个人感觉这个解决方案还是不错,就测试了下,
废话不说了,mysqld_multi的配置请参照:http://hi.baidu.com/ytjwt/blog/item/7302a81037fe7ecda7ef3f99.html
我的配置如下:
[mysqld2]
datadir=/usr/local/mysql/data2/
basedir=/usr/local/mysql
port = 3307
socket = /tmp/mysql1.sock
pid-file=/usr/local/mysql/data2/mysql2.pid
default-storage-engine=myisam
skip-innodb
relay-log=relay-bin-myisam1
relay-log-index=relay-bin-myisam1.index
relay-log-info-file=relay-log-myisam1.info
log_error=log-myisam1.err
log_bin=bin-myisam1
server-id=20
master-host=10.50.21.16
master-user=yangting
master-password=yangting
master-port=3306
master-connect-retry=60
[mysqld3]
datadir=/usr/local/mysql/data2/
basedir=/usr/local/mysql
port = 3308
socket = /tmp/mysql3.sock
pid-file=/usr/local/mysql/data2/mysql3.pid
default-storage-engine=myisam
skip-innodb
relay-log=relay-bin-myisam2
relay-log-index=relay-bin-myisam2.index
relay-log-info-file=relay-log-myisam2.info
log_error=log-myisam2.err
log_bin=bin-myisam2
server-id=23
master-host=10.50.21.17
master-user=yangting
master-password=yangting
master-port=3306
master-connect-retry=60
启动服务器:
mysqld_multi start 2,3
测试:
测试内容就不贴了。步骤很简单
1:在16 17上分别新建不同的库与表,然后插入的数据
2:分别用不同的客户端登录查看
mysql -u root -S /tmp/mysql1.sock
mysql -u root -S /tmp/mysql3.sock
这样就会得到你想要的结果
开始还在想在slave上能不能用分表空间的innodb呢,后来一想,答案是肯定不行。在手册上有这样一句话
You cannot freely move .ibd files between database directories as you can with MyISAM table files. This is because the table definition that is stored in the myisam shared tablespace includes the database name, and because myisam must preserve the consistency of transaction IDs and log sequence numbers.
后经测试也发现,虽然show tables 能看到表名,但是是不能使用该表的。
报这个错误
mysql--root@localhost:yangting_mult 11:07:03>>select * from dsn_db;
ERROR 1146 (42S02): Table 'yangting_mult.dsn_db' doesn't exist
以上就是多主一从的一种实施方案测试了。
还有一种解决方案来解决多主一从的问题:tungsten replicator,这个我还没有测试,具体方法可以参照:
http://www.chinaunix.net/jh/17/1487796.html
分享到:
相关推荐
不对称NAT穿透原理与一种简单的NAT穿透解决方案的讲述
总体而言,方案的作用在于提供一种有序、有计划的方法,以解决问题、实现目标,并在实施过程中最大化资源利用和风险管理。 方案是为解决特定问题或达成特定目标而制定的一系列计划或步骤。它的作用是提供一种...
一种实现WebRTC和IMS之间视频会议的解决方案,宋洋,双锴,WebRTC技术是一项在浏览器内部进行实时视频和音频通信的技术。通过该项技术,开发Web的实时通信技术只需要调用简单的JavaScr&
数字万用表设计的一种方案,继电器可换做跳线处理
同时,每套模板都提供了多种配色和布局方案,您可以根据自己的喜好和演示的主题来选择最适合的一种样式。 在使用这些模板时,您还可以享受到专业的技术支持,为您提供更好的帮助和指导。无论您是需要制作工作汇报、...
为了减小P2P VOD系统中的时延和拒绝率,提出了一种新的多描述编码方案,定义了 “最多丢失描述数”和“期望概率”的概念。该编码和具有伸缩性的信源编码一起,能够为P2P VOD 系统中的数据分发提供合理的解决方案。理论...
JSP报表打印的一种简单解决方案.htm
使用RS485总线,一对双绞线就能实现多站联网,构成分布式系统。它的设备简单、价格低廉、能进行长距离通信,故在工程项目中得到了广泛...文章设计了一种微功耗的RS485中继器,经实地测试,通信距离可达原来的1.8倍。
SolveFlashingAndRedraw框架是MFC解决窗口保存及重绘闪烁问题的一种比较好的方案(Win32解决方法类似)。 版本历史: v1.0.1 20091126 第一版本 v1.0.2 20091212 第二版本 1. 修改了部分变量的名字使其更符合其...
方案将多天线采集的信号进行简单组合,从而构建出一种与噪声方差无关的判决统计量。理论公式表明,方案的检测概率和虚警概率是与噪声方差无关的。仿真结果显示,当天线的数量大于3时,方案的检测性能优于传统的能量...
软件加密保护是软件开发过程中的重要环节。这篇文章提出了一套基于网络的中小型工程计算软件版权保护的完整解决方案...此方案软件加密速度快,用户注册简单,完全不增加软件开发的成本,是一种简单实用的软件保护方案。
做过性能优化,超越JavaScriptSerializer与Newtonsoft.Json
一种改进型Wilkinson功分器的设计方案范文全文共2页,当前为第1页。一种改进型Wilkinson功分器的设计方案范文全文共2页,当前为第1页。一种改进型Wilkinson功分器的设计方案范文 一种改进型Wilkinson功分器的设计...
applink,一种基于android方案的简单路由器.zip
鉴于无证书密码体制的优点,结合代理签名和环签名的优点,提出了一种新的高效的无证书的代理环签名方案。该方案没有密钥的托管问题,也不需要管理证书,并且满足代理环签名方案所有的安全性要求。与现有方案相比,新...
本文提出了一种全新的适合于单载波频域均衡系统信道估计的导频方案,并分析了其性能. 方案通过 哈达玛变换和交织实现导频插入,使得导频部分与数据部分即使在多径信道中也无相互间的串扰,从而便于用简便的 方法获得...
一种简单有效的android组件化方案,支持组件的单独调试、集成调试、组件交互以及组件之间的完全隔离