标签: database-replication

配置热流复制时postgresql 9.0归档出错

我试图在postgresql 9.0上运行流复制.我按照链接中提到的步骤进行操作:http://brandonkonkle.com/blog/2010/oct/20/postgres-9-streaming-replication-and-django-balanc/

当我尝试在postgresql上执行归档命令时,我收到警告,要求我无休止地等待.我按以下顺序执行命令:

SELECT pg_start_backup('base_backup');

cd /var/lib/postgresql/9.0/
sudo tar -cjf ~/postgres-data.tar.bz2 main

SELECT pg_stop_backup();
Run Code Online (Sandbox Code Playgroud)

为此,我得到以下输出:

NOTICE:  pg_stop_backup cleanup done, waiting for required WAL segments to be archived
WARNING:  pg_stop_backup still waiting for all required WAL segments to be archived (60 seconds elapsed)
HINT:  Check that your archive_command is executing properly.  pg_stop_backup can be cancelled safely, but the database backup will not be usable without all the WAL segments.
WARNING:  pg_stop_backup still waiting for all required WAL segments …
Run Code Online (Sandbox Code Playgroud)

postgresql streaming scalability archiving database-replication

6
推荐指数
1
解决办法
1万
查看次数

数据库同步

最近我的客户问我是否可以远程使用他们的应用程序,与本地网络和公司服务器断开连接.

一种解决方案是将数据库放在云中,但是必须始终可以连接到数据库,云和Internet连接.并非总是如此.

所以我的问题是 - 是否有任何数据库同步系统或同步库,以便我可以与本地数据库断开工作,当我连接同步我所做的更改并接收其他人所做的更改?

更新:

该应用程序在Windows(7/xp)下(现在)

它在Delphi 2007 win32中

所有客户端都需要具有读/写访问权限

所有客户端都有Internet连接,但并不总是打开

安全性并不重要,但同步服务应加密通信

当存在公司网络时,系统应同步并使用服务器数据库而不是本地数据库.

database delphi database-replication

6
推荐指数
1
解决办法
2457
查看次数

django数据库路由与事务

在一个应用程序中参考Django文档中的多个数据库的示例,

https://docs.djangoproject.com/en/dev/topics/db/multi-db/#an-example

"它也没有考虑事务与数据库利用策略的交互."

我如何处理上述交互.

场景是这样的:

我使用postgresql作为我的数据库.我已经设置了一个副本,并希望所有对"auth"表的读取都转到副本.根据文档,我写了一个数据库路由器.现在每当我尝试登录我的应用程序时都会抛出以下错误.

DatabaseError: cannot execute UPDATE in a read-only transaction.
Run Code Online (Sandbox Code Playgroud)

当Django试图保存"last_login"时间时会发生这种情况.因为,在同一视图中,它首先从副本提取记录,然后尝试更新last_login时间.由于它发生在一个事务中,因此使用相同的数据库,即副本.

我该如何处理?

思考?

python django database-replication django-postgresql

6
推荐指数
0
解决办法
550
查看次数

过滤mysql复制(ignore-db)

mysql ignore-db根据服务器my.cnf AFAIK工作,

binlog-ignore-db                        = mysql
replicate-ignore-db                     = mysql
Run Code Online (Sandbox Code Playgroud)

我不确定,如果这也适用于客户端,任何人都可以解释这个机制,我怎样才能从master发送但不能在客户端接受.

我为什么要这样做?我有多个slave"2 slave"必须复制MySQL表,其他2不应该被覆盖.每个其他表都将被复制的位置.

阅读本文:http://dev.mysql.com/doc/refman/5.6/en/replication-rules-db-options.html并没有让我足够清楚.

mysql database-replication

6
推荐指数
1
解决办法
2万
查看次数

Rails Octopus Gem - 从站关闭时的主从复制连接行为

我正在开发Rails 4.0.2测试这个伟大的宝石八达通.

我创建了一个Slave db并配置章鱼如下(config> shards.yml):

octopus:
  environments:
    - development
  replicated: true
  fully_replicated: true 
  verify_connection: true
  development:
    slave1:
      host: 192.168.1.12
      adapter: mysql2
      username: slave_reader
      password: my_password
      database: my_server_development
      reconnect: true
Run Code Online (Sandbox Code Playgroud)

它非常好用,从Slave读取并写入Master,但是如果My Slave服务器关闭,我希望它重定向到Master db并获取内容,但是经过一段时间的尝试,它会抛出错误:

无法连接到'192.168.1.12'上的MySQL服务器(113)

如果Slave服务器关闭,我该怎么做才能使章鱼查找我的Master数据库?

提前致谢!

mysql ruby-on-rails master-slave database-replication octopus

6
推荐指数
1
解决办法
2442
查看次数

ReplicaSet中的MongoDB多个主服务器

我有一个关于MongoDB副本集中多个主人的问题.我有以下布局:

服务器A - >使用MongoDB和几个应用程序

服务器B - >使用MongoDB和几个应用程序

MongoDB的两个实例都组织在同一副本集中(服务器A作为主服务器,服务器B作为辅助服务器).但现在有问题了.两个数据库都应包含服务器上应用程序的数据.

是否可以部署具有两个主服务器的副本集,以便服务器A的数据在服务器B的MongoDB中可用,反之亦然?

非常感谢你提前

replication master mongodb database-replication replicaset

6
推荐指数
1
解决办法
1万
查看次数

备用节点上的逻辑解码

PostgreSQL 9.4引入了逻辑解码:http: //www.postgresql.org/docs/9.4/static/logicaldecoding.html

它还具有Cascade Streaming Replication:http: //www.postgresql.org/docs/9.4/static/warm-standby.html#CASCADING-REPLICATION

逻辑解码似乎基于流复制.但是,PostgreSQL服务器将拒绝在热备用服务器上启动逻辑复制插槽.它只允许主节点上的逻辑解码.

什么阻止热备用节点使用逻辑解码以级联方式复制自身?

postgresql database-replication

6
推荐指数
1
解决办法
804
查看次数

在MongoDB中添加副本会引发错误

我正在尝试使用一个节点添加到副本集 rs.add("developer-ViratualBox:30103"),我收到以下错误消息:

{
"ok" : 0,
"errmsg" : "Quorum check failed because not enough voting nodes responded; required 2 but only the following 1 voting nodes responded: developer-VirtualBox:30101; the following nodes did not respond affirmatively: developer-ViratualBox:30103 failed with Failed attempt to connect to developer-ViratualBox:30103; couldn't initialize connection to host developer-ViratualBox, address is invalid",
"code" : 74
}
Run Code Online (Sandbox Code Playgroud)

该节点已在运行,我使用mongoshell 连接到它.可能是什么问题?

replication mongodb database-replication

6
推荐指数
1
解决办法
1万
查看次数

如何为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)

sockets mongodb database-replication replicaset

6
推荐指数
1
解决办法
1908
查看次数

面向服务架构中的业务数据查询/报告

在去年的大部分时间里,我的公司一直在根据(微)服务架构的原则切割整体并构建新产品.这一切都很好,并为我们提供了很大的灵活性,可以保持UI和后端逻辑的分离,并降低依赖性.

但!

由于这一点,我们的业务中有一个重要的部分,即报告.

由于我们确保服务之间没有数据复制(和业务逻辑共享),因此每个服务都知道自己的数据,如果另一个服务确实需要保留对该数据的引用,那么它们通过ID来实现(实体链接,基本上).虽然它很棒,但报道并不好.

我们的业务通常需要创建关于客户发生的特定实例的临时报告.在"过去的日子"中,您创建了一个简单的SQL查询,它连接了几个数据库表并查询了您需要的任何内容,但是对于解耦服务是不可能的.这是业务所看到的问题.

我个人并不是后端报告用途的数据复制的粉丝,因为这可能有另一种趋势,即成长为一场噩梦(它甚至已经存在于我们的传统巨石中).所以这个问题实际上不是关于传统的单块与现代微服务,而是关于数据依赖性.

您是否遇到过这样的问题,如果是,那么您是如何解决的?

编辑:

我们一直在内部讨论如何解决这个问题的几个潜在解决方案,但它们都没有实际上是好的,我没有得到我正在寻找的答案,但它解决了大规模的问题.

  1. 很好的旧复制 - 一切 - 让我们 - 人们 - 想出它是今天仍然习惯的东西.从旧的整体时代开始,BI /数据仓库团队制作了所有数据库的副本,但是同样的做法更加不方便,但到目前为止仍然使用数据库的所有微服务都做了.由于各种原因,这并不好,并伴随着你可以期待的共享沙盒癌症.

  2. 构建一个单独的微服务或一组用于获取特定报告的微服务.它们中的每一个都连接到设置微服务,其中包含相关数据并按预期构建报告.然而,这会引入更紧密的耦合,并且对于大型数据集而言可能非常复杂且速度慢.

  3. 构建一个单独的微服务或一组微服务,每个服务都有从后台其他数据库复制的数据库.这是有问题的,因为团队数据库正在耦合,数据被直接复制,并且强烈依赖于正在使用的数据库技术.

  4. 让每个服务向RabbitMQ发送BI服务可以接收的事件,然后根据需要获取其他数据.这听起来对我来说是最好的,但到目前为止最复杂的实现,因为所有服务都需要开始发布相关数据.这是我个人现在所选择的,从一个非常抽象的层面,就是这样.

database soa reporting database-replication microservices

6
推荐指数
1
解决办法
427
查看次数