问题标签 [database-cluster]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
327 浏览

cassandra - Cassandra 聚类顺序与 OPP

我正在通过 Cassandra 学习并遇到了 OPP(非常不鼓励)和 Clustering Key 的概念

http://www.datastax.com/documentation/cql/3.0/cql/cql_reference/create_table_r.html

他们似乎做同样的工作,即按特定列对特定列族中的行进行排序。谁能区分这里的区别?

0 投票
0 回答
444 浏览

mysql - 切换数据库集群节点后的 ActiveRecord::ConnectionTimeoutError

环境

我在 2 个网络服务器之间有一个 rails 3.2.x 应用程序负载平衡:web1 和 web2。每个网络服务器都指向 mysql 数据库的集群 IP。该数据库是集群的 2 台服务器(按机架空间)。在故障转移之前,一次有 1 个数据库处于活动状态。

错误

在我们最新的故障转移中,web1 开始发送ActiveRecord::ConnectionTimeoutErrorMiddleware/Rack/ActiveRecord::QueryCache#call下面的堆栈跟踪),而 web2 没有错误。请注意,这发生在数据库稳定并且 100% 切换到另一个节点之后。

理论

我的理论是会话或缓存或连接引用了旧节点,一旦切换它就找不到所述连接。这看起来确实很奇怪,因为两个数据库节点都是集群的,在同一个集群 IP 上服务并被复制。

临时解决方案

我们的临时解决方案是重新启动 web1 rails 服务器,这很有效。

问题

1)我想知道我是否可以解释这里可能发生的事情

2)是否有配置设置可以防止将来发生这种情况。

堆栈跟踪

错误消息 ActiveRecord::ConnectionTimeoutError: could not get a database connection within 5 seconds (waited 5.000268907 seconds). 当前最大池大小为 5;考虑增加它。

...record/connection_adapters/abstract/connection_pool.rb: 258:in block (2 levels) in checkout' …record/connection_adapters/abstract/connection_pool.rb: 242:inloop' ...record/connection_adapters/abstract/connection_pool.rb: 242:in block in checkout' /usr/local/lib/ruby/1.9.1/monitor.rb: 211:inmon_synchronize' ...record/connection_adapters/abstract/connection_pool.rb: 239:in checkout' …record/connection_adapters/abstract/connection_pool.rb: 102:inblock in connection' /usr/local/lib/ruby/1.9.1/monitor.rb: 211:in mon_synchronize' …record/connection_adapters/abstract/connection_pool.rb: 101:inconnection' …record/connection_adapters/abstract/connection_pool.rb: 410:in retrieve_connection' …nnection_adapters/abstract/connection_specification.rb: 171:inretrieve_connection' …nnection_adapters/abstract/connection_specification.rb: 145:inconnection' …s/activerecord-3.2.19/lib/active_record/query_cache.rb: 67:in通话中救援' ...s/activerecord-3.2.19/lib/active_record/query_cache.rb: 61:in call' …record/connection_adapters/abstract/connection_pool.rb: 479:incall' ...ack-3.2.19/lib/action_dispatch/middleware/callbacks.rb: 28:in block in call' …s/activesupport-3.2.19/lib/active_support/callbacks.rb: 405:in_run__862588711471957735__call__1324336831638990183__callbacks' ...s /activesupport-3.2.19/lib/active_support/callbacks.rb:405:在__run_callback' …s/activesupport-3.2.19/lib/active_support/callbacks.rb: 385:in_run_call_callbacks' ...s/activesupport-3.2.19/lib/active_support/callbacks.rb: 81:in run_callbacks' …ack-3.2.19/lib/action_dispatch/middleware/callbacks.rb: 27:incall' ...ack-3.2.19/lib/action_dispatch/middleware/remote_ip.rb: 31:in call' …/gems/airbrake-3.1.14/lib/airbrake/rails/middleware.rb: 13:incall' ....19/ lib/action_dispatch/middleware/debug_exceptions.rb: 16:in call' …2.19/lib/action_dispatch/middleware/show_exceptions.rb: 56:incall' ...by/1.9.1/gems/railties-3.2.19/lib/rails/rack/logger.rb: 32:in call_app' …by/1.9.1/gems/railties-3.2.19/lib/rails/rack/logger.rb: 16:inblock in call' ...ivesupport- 3.2.19/lib/active_support/tagged_logging.rb: 22:in tagged' …by/1.9.1/gems/railties-3.2.19/lib/rails/rack/logger.rb: 16:incall' ...ck-3.2.19/lib/action_dispatch/middleware/request_id.rb: 22:in call' …/ruby/1.9.1/gems/rack-1.4.5/lib/rack/methodoverride.rb: 21:incall' .../bundle/ruby/1.9.1/gems /rack-1.4.5/lib/rack/runtime.rb: 17:in call' …9.1/gems/airbrake-3.1.14/lib/airbrake/user_informer.rb: 16:in_call' ...9.1/gems/airbrake-3.1.14/lib/airbrake/user_informer.rb: 12:in call' …le/ruby/1.9.1/gems/railties-3.2.19/lib/rails/engine.rb: 484:incall' ...by/1.9.1 /gems/railties-3.2.19/lib/rails/application.rb: 231:incall' …gems/railties-3.2.19/lib/rails/railtie/configurable.rb: 30:inmethod_missing' ...r-3.0.13/lib/phusion_passenger/rack/request_handler.rb: 96:in `process_request'

0 投票
1 回答
95 浏览

sql-server - MS SQL Server 镜像/集群/复制

我有一个需要注册网页的客户端。一旦客户加入场地的 wifi,该网页就会显示。所有注册信息都将被推送到 MS SQL Server。

这里的重点是这个客户有两个地点,在两个不同的国家。每个国家都有自己的数据库,它们应该有完全相同的数据。此外,如果其中一个 MSSQL 服务器出现故障,另一个应该接受请求。

镜像似乎不是答案,因为一次只有一台服务器处于活动状态。我也不了解集群,因为两台服务器都必须共享相同的存储。我是否应该单独创建这两个数据库并实施复制服务(两种方式),以便将一个数据库中的任何数据发送到另一个数据库?

谢谢并恭祝安康,

0 投票
1 回答
1390 浏览

database-replication - 连接并使用 RethinkDB 集群

我似乎找不到很多关于 RethinkDB 中的集群如何实际工作的文档。

  1. 在 Cassandra 中,我通过定义一个或多个主机连接到集群,因此如果其中一个主机关闭,甚至已被删除,我仍然可以连接到整个集群,然后代码/配置将被更新,以反映更改我的主机 IP 地址。

据我了解,RethinkDB 没有这样的逻辑,我需要自己实现它,但我仍然会一直连接到整个集群,对吗?

  1. 创建数据库时,它是为整个集群创建的“某种”,没有办法也不需要指定负责处理它的确切服务器。当创建表并且我没有指定主副本标签时,哪个服务器将是主副本?如果我指定一个分配给多个服务器的标签 - 同样的问题适用。如何选择将成为主要副本的最终服务器?
0 投票
2 回答
1234 浏览

mariadb - Galera复制忽略表

使用正常的 Mysql 复制,我们可以忽略表:replicate_ignore_table

我找不到有关是否可以使用 Galera 集群复制来执行此操作的任何信息。

我想忽略一个不重要的表,以便在对数据库执行操作时不必获取集群范围的锁。

0 投票
2 回答
25 浏览

redis - Redis pre GET 事件

如果搜索的键不存在,我如何覆盖方法 GET 或编写将在服务器端执行的新函数返回另一个键值?

例子:

如果关键字“word_1 word_2 word_3 word_4”不存在搜索此关键字“word_1 word_2 word_3”,如果关键字“word_1 word_2 word_3”不存在搜索此关键字“word_1 word_2”,如果关键字“word_1 word_2”不存在搜索此关键字“word_1” . 这种递归搜索必须在服务器端(为了速度)。

0 投票
1 回答
148 浏览

percona - Percona XtraDB Cluster (PXC) 节点/没有数据的实例(用于仲裁)

我需要在 2 个数据中心之间构建 2 个 PXC 节点。在这两个数据中心中,有一个公共节点(更重要)和一个私有节点(有时由于网络问题而离线)。如果只有 2 个节点,当一个节点离线时,整个集群将无法访问。

为了防止脑裂,最好建奇数节点。我想建立一个额外的节点作为主持人来防止这个问题。但是我无法构建一个完整的功能节点。

有没有什么方法可以在没有数据的情况下搭建 PXC 节点?或者任何包都可以让一个节点只代表仲裁?

谢谢!

0 投票
2 回答
9389 浏览

database - 什么时候更喜欢主从,什么时候集群?

我知道有很多关于数据库复制的文章。相信我,我花了一些时间阅读这些文章,包括这篇解释复制优缺点的 SO 文章。这篇SO 文章深入探讨了单独的复制和集群,但没有回答我的这些简单问题:

  1. 什么时候复制你的数据库,什么时候集群?
  2. 两者可以同时进行吗?如果是,每个人的灵感是什么?

提前致谢。

0 投票
3 回答
4703 浏览

mysql - MySQL 负载均衡

我们有 6 台服务器(4 台应用服务器和 2 台数据库服务器)

我们正在使用 HAProxy 在应用程序和 API 服务器之间进行负载平衡 (2/2)

现在我遇到的问题是系统管理员在 MySQL 上设置了主/从,但它总是失败,直到现在我们无法使用从属,因为大多数数据总是被损坏,我们总是需要修复它,每次我们都是得到不同的错误。

我们尝试对读/写进行某种负载平衡(在主设备上写入,在从设备上读取),但我们无法使用它,因为从设备数据并不总是正确的。

我想知道的是,在处理高负载服务器时,你总是需要数据准确并且不能冒任何风险,大佬们是如何进行的?

谁能告诉我他自己的经历和他用的什么?

我发现了什么:Percona XtraDB Cluster,但在进入这个方向之前需要输入......

谢谢 !!

0 投票
1 回答
79 浏览

powershell - 如何在 NosDB 开源中添加第二个节点?

我正在尝试NosDB,在单个节点上创建了数据库集群,然后在我的数据库集群中添加了第二个节点,但我失败并显示错误消息“Add-Shard : Login 'asif_mehmood' does not exist”。
我执行的步骤:

  • 在两个盒子上安装了 NosDb OpenSource。
  • 使用 New-DatabseCluster powershell cmmdlet 在第一个盒子上创建了一个带有一个分片的集群。
  • 使用 Add-shard powershell cmdlet 添加了另一个以第二个框为节点的分片。
  • 失败并显示以下错误消息

Add-Shard:登录 'asif_mehmood' 不存在
在行:1 char:1
+ Add-Shard -Name shard2 -Server 192.168.0.15 -Port 2250