CouchDB如何在进行双向复制时处理冲突?
例如:假设有两个地址簿数据库(在服务器A和B中).杰克有一份文件,其中包含杰克的详细联系方式.
couchDB如何处理它?如果我们在Java程序中启动复制,有没有办法知道java程序是否有任何冲突?
有没有人知道我可以运行的查询,它会告诉我目标数据库中的哪些文章(如果有的话)与事务复制发布相关联?
我不是DBA; 我是基于企业数据库的应用程序的主要开发人员.
我目前正在推出一些新机器来升级我们现有的企业数据库.目前我们正在运行Postgres 8.4,在我们的DR站点上有一个数据库,该数据库通过前员工执行的一些自定义rsync工作定期接收更新.
我们要解决的一个主要问题是两个全球办事处之间的延迟.我们在纽约有工作人员,在伦敦有工作人员.目前,伦敦的工作人员遭受了我们VPN管道的命运.我真的无法改变这种基础设施.
我想做的是转到Postgres 9并设置流式复制.奴隶将在伦敦办公室,这将减轻用户的阅读问题.我预见到的问题是写入从机(不知道PG如何处理这个问题,我的理解是从机处于只读模式).理想情况下,写入将被发送到纽约的主人(来自伦敦的写入很少,但必要)由数据库本身发送.此外,我可以设置失败转移,使其充当热插拔备份(替换DR).同样,所有内容都包含在Postgres配置中,没有其他代码.
这是我理想化的解决方案.我有多远?这是可能吗?
我对这个主题的广度感到有些不知所措,谷歌并没有真正帮助我.我将非常感谢一些经验丰富的DBA提供的任何建议,包括轶事,相关文档或示例.
目前我们正在使用SQLAlchemy作为数据库的主要接口,如果这是相关的.这确实意味着我们与Postgres无关.
感谢大家.
我的MySql DB上有主/从复制.
我的奴隶数据库已经停机了几个小时并且又重新启动(主机一直在运行),当发出时show slave status我可以看到奴隶在主人后面X秒.
问题是,奴隶似乎没有赶上主人,主人身后的X秒似乎没有下降......
关于如何帮助奴隶赶上的任何想法?
当我有两个mysql服务器有不同的工作(持有不同的数据库),但希望能够使用其中一个在另一个失败时插入,你会建议我如何保持它们两者的数据相等"关闭实时"?
显然,不可能每x分钟进行一次完整的数据库转储.
我读过有关二进制日志的信息,这是我需要的方式吗?请问这不会减慢后备服务器的速度吗?有没有办法在二进制日志中不包含一些表 - 数据发生了变化并不重要?
我有一个运行我们的会计/库存应用程序的现有SQL Server 2005数据库.我们正在寻找使用新的在线订购框架 - 它拥有自己的数据库.
如果我们使用这个新框架,我们将需要将现有库存数据库中的在线订购数据(库存,价格,订单,客户) - 几乎是实时的 - 传输.数据传输不一定是实时的,但必须快速.两个数据库都将在SQL Server中.
所以我的问题是......在两个数据库之间来回传输数据的最佳方法是什么,具有不同的模式?
复制?SSIS?你会建议什么,为什么?
任何帮助,将不胜感激!
我试图决定在Tomcat + Apache反向代理模式下用于会话复制的更好的方法.部署中更常见的是什么?会话复制还是会话?会话复制有什么缺点吗?
谢谢
我们正在开发一个具有以下要求的系统.
换句话说,每个系统都需要将其数据复制到N个对等系统.理想情况下,这将以智能方式完成.
我考虑过调查数据库同步框架,但我担心这个问题太过分了.我认为没有任何行冲突的可能性,因为每个系统的数据完全独立于其他系统.
问题是,你知道任何可以帮助解决这个问题的框架吗?或者可能是一种表达这个问题的方法,可以帮助我找到解决方案的路径.
最后,理想情况下,此框架将使用C++(可能还有Java).
虽然昨晚将收藏品转换为封顶收藏品,但我的次要运动时间开始落后于初级.它进展缓慢,每隔几分钟几秒钟,最终落在主要的oplog窗口之外.根据这里的说明,我在次要文件上停止了mongod,删除了所有数据文件,然后重新启动它,尽管我忘了将主文件从写入锁定.辅助设备经历了初始阶段,这需要花费大量时间,最终重新开始运营,但是当我登录时,复制现在甚至更远了.
因为这是云,毕竟我创建了一个我的主映像(它应该复制所有数据),虽然我当时无法运行db.fsyncLock(),因为它正在进行一些写操作.新图像完成,我基于该图像启动一个新的服务器,将它添加到我的副本集,删除旧的二级,生活是好的,对吧?不完全 - 新的中学落后了大约一个小时,并且在一天中(和今晚)最终达到了落后14小时的程度(尽管在oplog窗口内仍然非常奇怪).
我从"重新同步一个陈旧的成员页面"迈出了下一步.关闭两台服务器上的mongod,gzip并将我的数据文件夹从主数据库复制到辅助服务器,解压缩,将它们都解压缩,db.fsyncLock()我的主服务器.令我震惊的是,即使使用相同数据,在初始化之后,我的中学也说它落后了1个小时.我将它添加回副本集中,并迅速赶上落后5分钟.
一切都好,对吗?不 - 闪现前锋,中学正在向前推进,现在落后20分钟.Mongostat次要挂钩95%锁定%,iostat -xm 2没有显示任何疯狂 - 主要目前因不接受写入而空闲,次要绝对没有做多少(.04 wMB /秒).不确定它是否值得一提,但是主要目前感觉狗慢慢反应无法登录到mongo shell等.
什么给,Mongo?为什么你不能赶上?我试图让我的二手陷入困境我做错了什么?
编辑 回答问题:
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util xvda 1.00 2564.50 243.50 282.50 8986.00 11388.00 77.47 11.32 21.46 2.36 37.93 0.50 26.50
那个以11 wMB/s的速度特别突破,实用率达到34%,7 wMB/s,72%达到52 rMB/s.所以没有饱和,但绝对是早上读取繁重的工作量.尽管有obj,但它很有趣.大小~5GB,和~1GB索引(见下文),磁盘活动太多了.难道不应该都在内存中吗?
"collections" : 21,
"objects" : 15540092,
"avgObjSize" : 325.26198326238995,
"dataSize" : 5054601144,
"storageSize" : … 反熵协议是一种八卦协议.http://en.wikipedia.org/wiki/Gossip_protocol.我想知道是否有人可以在这里解释字熵的重要性.
replication protocols distributed-system distributed-algorithm
replication ×10
mysql ×2
sql-server ×2
binary-log ×1
c++ ×1
conflict ×1
couchdb ×1
fallback ×1
java ×1
mongodb ×1
networking ×1
postgresql ×1
protocols ×1
session ×1
ssis ×1
streaming ×1
tomcat ×1