我需要用 3 个节点配置 mysql 主/主复制。目前我有主/从设置,我需要将它移动到具有 3 个节点的主/主。我已经阅读了一些关于在环结构中配置它的帖子,我对此并不紧张。
如果有人在生产中有类似的设置,如果您能建议我如何实现这一点,那就太好了。
我不是 DBA,也许我无法正确解释自己。我正在寻找一些关于如何以及我需要部署什么的新想法,以获得跨大洲可用的完整 SQL Server 数据库,例如在您的私有“云”上构建 SaaS。
假设您在 LATAM、EMEA、EAST 和 EEUU 有多个办事处。每个地区的每个办公室都有自己的带有本地数据库的 SQL Server,您已经厌倦了管理数百台服务器。
解决此问题的最简单方法是将所有小型数据库融合为一个大型数据库,并将其放入数据中心。作为第一种方法,我认为基于单个区域的单个数据中心足以满足我们的要求,但由于延迟,它不会。我的意思是一个地区的本地用户不能使用位于不同地区的数据库。
下一步是什么?简单的事情。在您想要的每个区域部署一个数据中心,每个数据库都将包含具有读/写和 HA 功能的相同信息。在这一点上,我猜带有 AlwaysOn 群集的 SQL Server 将满足 HA,但是读/写呢?我是否必须对每个数据库服务使用任何类型的副本?它会起作用吗?
更进一步,假设一个地区的一个国家需要拥有自己的数据库。如何为此设置复制?如果我必须更改数据库架构怎么办?
任何帮助或澄清将不胜感激。
我们的目标是设计一个基于通过 Citrix XenApp 发布的 .net WCF 的 3 层应用程序。由于某些要求,如果客户端因延迟(WCF 与本地设备一起工作)而尝试连接到远程数据中心(即拉丁美洲到欧盟),则此应用程序将无法工作。继续这部分,我们需要在每个大洲建立 2 个 DC,以提供具有适当容错和 HA 的可靠应用层。我们的主要问题是知道我们可以在数据层做什么......
我的第一个想法是在主数据中心部署一个 SQL AlwaysOn 集群作为中心节点,N SQL Std 从这个主节点双向复制。是的,我是双向说的,因为我工作中的一些人对这种情况完全有信心,但我仍然试图了解它在 SQL Server 中的工作方式(即使可能)。我对 MySQL 和 Galera 有更多的经验并且它可以工作,但是我的 SQL Server 知识有限。
我知道你会问我,为什么不直接从应用层连接到这个中央数据库?也许这是最好的选择,因为这个 SQL 服务不会非常详尽(每天 100.000 个事务),但我们必须确保服务和应用程序功能在 99,99999。
我在全球多个地区托管一个应用程序(游戏)。性能对此应用程序至关重要,因为它是一款游戏,因此我需要在每个位置托管一个数据库实例来为本地应用程序实例提供服务。
由于我的应用程序的性质,我只能使用 MySQL。
我的主要要求是每个实例都是可写的。我知道在大多数情况下,当涉及到两台服务器修改同一条记录时,这在 MySQL 集群中是一个大问题。
然而,在我的应用程序中这实际上是不可能的;玩家在任何给定时刻只能连接到单个区域,这意味着只有该区域的数据库实例才会读取或写入该玩家的数据。一致性在这里也不重要,最终一致性可以满足我的需求。我只需要确保它最终到达那里。
我以前没有使用过复制,因此我需要一些指导。实现这一点的正确方法是什么?我将如何部署这样的集群?
我在不同的地理位置(本地站点)有几个 PostgreSQL 数据库。
每个本地站点 DB 都具有相同的架构,但具有唯一的数据。例如,以包含以下列的表为例:Site_ID、Department_ID、Department_Name。Site_ID 对于每个站点都是唯一的。
我想将本地站点数据库中的所有数据收集到充当数据仓库的集中式数据库(再次是 PostgreSQL)中。
集中式数据库上的相应示例表将具有与上述相同的列。所有本地站点数据都将进入此表。当然,每个站点数据由 Site_ID 指定。
问题:如何使用PostgreSQL 复制方法(流/多主 UDR/BDR/等)实现这一点。我看到这可以通过 SQLServer 使用Transactional Replication来完成。使用 PostgreSQL 实现此功能的最佳方法是什么?
限制:本地站点只能进行传出网络连接(即由于防火墙限制不能进行入站连接)
postgresql replication transactional-replication multi-master
我一直在使用 mysql master:master 复制,并且总是能够使用此命令检查复制的状态:
mysql > show slave status\G
我能够在 show Slave status 命令中看到这一点:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
如果我落后于我的其中一个,则 secondary_behind_master 总是让我知道服务器。
我没有使用 galera,并且不确定如何验证一切是否都是最新的。我看到这篇文章“监控集群状态”
我意识到我可以使用此命令来查看集群中有多少个节点:
SHOW GLOBAL STATUS LIKE 'wsrep_cluster_size';
但我不确定这个命令是否足以判断它们是否是最新的:
SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';
此命令当前显示已同步,但我无法判断这是否是判断我是否可以开始的最佳方法。
我有一个带有钨复制器的 mysql 主/主设置。我的服务器空间不足,在 6 小时内占用了大约 30G。我不知道如何处理这个。如果有人能帮我解决这个问题,那就太好了。
谢谢,斯瓦鲁普。
multi-master ×6
mysql ×4
replication ×4
architecture ×1
binlog ×1
galera ×1
postgresql ×1
sql-server ×1