有选择地分发数据有哪些可能性?
我用一个例子来解释我的问题.考虑一个包含所有数据的中央数据库.该数据库位于特定的地理位置.
应用程序A需要中央数据库中存在的信息的子集.此外,应用程序A可以位于与中央数据库所在的地理位置不同(并且可能远)的地理位置.
因此,我考虑在应用程序A的同一位置创建一个新数据库,该数据库将包含中央数据库的一部分信息.
哪种技术/产品允许我部署这样的配置?
谢谢
我有一个关于MongoDB副本集中多个主人的问题.我有以下布局:
服务器A - >使用MongoDB和几个应用程序
服务器B - >使用MongoDB和几个应用程序
MongoDB的两个实例都组织在同一副本集中(服务器A作为主服务器,服务器B作为辅助服务器).但现在有问题了.两个数据库都应包含服务器上应用程序的数据.
是否可以部署具有两个主服务器的副本集,以便服务器A的数据在服务器B的MongoDB中可用,反之亦然?
非常感谢你提前
当Mongo数据库(版本3.0.5)从主数据库服务器复制到从服务器时,我得到套接字错误110(连接超时),更准确地说,在提交该数据库的复制时(从服务器的日志在下面).我想可能原因就是数据库很大并且发送操作提交需要花费太多时间.
如何为mongo服务器指定不同的套接字超时?如果不可能,有没有其他方法来修复复制?
我发现这样的选项只适用于mongo客户端(连接字符串选项socketTimeoutMS),但它对Mongo服务器没有帮助.
2016-04-26T13:36:34.693+0100 I INDEX [rsSync] done building bottom layer, going to commit
2016-04-26T13:36:34.693+0100 I INDEX [rsSync] build index done. scanned 30980334 total records. 4072 secs
2016-04-26T13:36:34.772+0100 I REPL [rsSync] initial sync cloning db: {skipped db name}
2016-04-26T13:36:34.823+0100 I NETWORK [rsSync] Socket say send() errno:110 Connection timed out {skipped ip}:27017
2016-04-26T13:36:34.828+0100 E REPL [rsSync] 9001 socket exception [SEND_ERROR] server [{skipped ip}:27017]
2016-04-26T13:36:34.828+0100 E REPL [rsSync] initial sync attempt failed, 9 attempts remaining
Run Code Online (Sandbox Code Playgroud)
更新.我在评论中被要求输出rs.status():
{ "set" : "<skippedsetname>",
"date" …Run Code Online (Sandbox Code Playgroud) 出于测试目的,我试图通过设置 slaveDelay=n 的从站来模拟 mongodb 集群中的复制延迟。事实证明,这神奇地导致奴隶被隐藏,所以我的测试无法访问它。
在MongoDB的文档状态“一般来说,我们不希望被用于slaveOkay延迟成员读取因此,设置slaveDelay还隐藏应用程序中的成员,就好像您还可以设置隐藏:。真正的”
有没有办法为我的“非典型”用例进行配置?或者有没有更好的方法来模拟从具有不同时间延迟的不同从站读取?
我尝试使用 TaggedReadPreference 强制测试代码连接到延迟的从站,但这导致
com.mongodb.MongoException: Could not find any valid secondaries with the supplied tags ('{ "delayed" : "true"}'
Run Code Online (Sandbox Code Playgroud)
显然,Java 驱动程序看不到辅助驱动程序。当我删除“slaveDelay”设置时,它连接正常。
这是我的集群配置:
rs.reconfig({
"_id" : "rs0",
"version" : 4,
"members" : [
{ "_id" : 0,
"host" : "localhost:27017",
"priority" : 0,
slaveDelay: 10,
tags: { delayed: "true" }
},
{ "_id" : 1,
"host" : "localhost:27018"
},
{ "_id" : 2,
"host" : "localhost:27019",
"arbiterOnly" : true
}
]
})
Run Code Online (Sandbox Code Playgroud) 我有一个包含两个数据库的 Redis 实例。现在我想设置第二个实例并复制第一个实例,但第二个实例应该只有一个数据库并且只从第一个实例复制 db 0。当我尝试这样做(slaveof ...为第二个实例设置)时,我在 Redis 日志文件中收到以下错误消息:
FATAL: Data file was created with a Redis server configured to handle more than 1 databases. Exiting
Run Code Online (Sandbox Code Playgroud)
我尝试使用redis-dump,但是当我尝试将生成的转储导入新实例时出现错误。(我认为与 2 dbs 和 1 db 无关,而是 redis-dump 中的一个错误,它仍处于 alpha 阶段。
该怎么办?
在主/从数据库复制中,所有写入都将转到主计算机.所有读取都转到从机.主机将数据复制到从机.当主设备将数据复制到从设备时,从设备必须执行写操作以锁定该行.从奴隶机器读取速度更快,但为什么呢?
我有一个 amazon rds 实例数据库,我正在使用只读副本进行分析。但是,每周左右,只读副本都会因复制错误而崩溃。
我已经尝试根据此帮助文章查看从属状态并跳过复制错误,但是,我只能通过摆弄并创建新的只读副本来恢复它。
由于外部服务依赖于初始只读副本,这有多种原因。
主数据库没问题,但似乎某些完整性错误会导致只读副本崩溃且无法恢复。
目前,我的只读副本具有以下参数:
Replication State: Error
Replication Error: Error 'Cannot add or update a child row: a foreign key constraint fails.....
Run Code Online (Sandbox Code Playgroud)
有没有办法配置这个只读副本来跳过所有错误?我只是想弄清楚如何使它更稳定。谢谢!
我在不同的地理位置(本地站点)有几个 PostgreSQL 数据库。
问题:如何使用 PostgreSQL 复制方法实现这一点?(流媒体/多主 UDR/BDR/等)
限制:本地站点只能进行传出网络连接(即由于防火墙限制不能进行入站连接)
postgresql replication database-replication transactional-replication
我已经设置了一个带有 3 个节点(虚拟机运行 CentOS)的 MongoDB 副本集。一个节点成为主节点,其他 2 个节点卡在启动中。当这 2 个节点将其状态从启动更改为辅助时。
aryabhata:PRIMARY> rs.status()
{
"set" : "aryabhata",
"date" : ISODate("2016-04-30T08:10:45.173Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "localhost.localdomain:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 69091,
"optime" : Timestamp(1461935462, 1),
"optimeDate" : ISODate("2016-04-29T13:11:02Z"),
"electionTime" : Timestamp(1461934754, 1),
"electionDate" : ISODate("2016-04-29T12:59:14Z"),
"configVersion" : 459192,
"self" : true
},
{
"_id" : 1,
"name" : "repset1.com:27017",
"health" : 1,
"state" : 0,
"stateStr" : …Run Code Online (Sandbox Code Playgroud) 有时我们会观察到下一种情况:
w: 1通过mongos写入分片primaryA 副本的路由器向 MongoDB 插入一个带有写入问题的文档。local通过mongos应该从分片primaryA 的副本读取的路由器使用默认读取关注从 MongoDB 读取此文档。findOne返回null。pymongo - find_one(),它返回None)。我们发现:
db.oplog.rs,没有fromMigrate标志。为什么会发生?如何正确处理?
这些误报“未找到”-s 可能会导致错误的原子查找或创建通过$setOnInsert?
sharding database-migration mongodb database-replication pymongo
mongodb ×5
replicaset ×3
replication ×3
database ×2
amazon-rds ×1
java ×1
master ×1
mysql ×1
postgresql ×1
pymongo ×1
redis ×1
sharding ×1
sockets ×1