问题标签 [database-replication]

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 投票
1 回答
106 浏览

.net - 在服务器之间复制具有特定复制要求的多台服务器

考虑两个表AB,如下所示(让我为丑陋的 ASCII 表道歉):

我想让位置 α 的服务器能够对 具有特定权限PNID 0,并使位置 β 的服务器能够对 具有特定访问权限PNID 1,但由于它是相同类型的数据(只是不同的所有者),我不认为数据本身应该是分开的。

无论如何,我想确定如果 β 想要访问为 分配一个序列号PNID 0,它必须首先与 α 通信,然后才能这样做。这意味着如果它们之间的网络出现故障,α 可以生产PNID 0但不能生产PNID 1,β 可以生产PNID 1但不能生产PNID 0。然而,当两个实体重新开始相互通信时,α 创建的任何序列号PNID 0都将复制到 β,并且来自 β 的序列号PNID 1将合并到 α 的数据库中。

更一般地说,我真的希望它设置一个“中间人”位置,Ω,它做出关于 α 是否能够在未经 β 许可的情况下添加新序列号的所有决定。

我目前正在使用 SQL Server Express (2008 r2) 和 Visual Basic .NET Express (2010) 来实现服务器,但我愿意接受任何其他可能让我解决当前遇到的问题的选项。老实说,我不确定我的要求是否合理,但如果是的话,我会非常有兴趣实施它。

几乎立即,我能想到的第一件事就是在表B中添加另一个表示位置的列,但我认为这不是“正确”的方法。尤其是关于与其他服务器通信的部分(老实说,我什至不知道我是否可以用数据库做到这一点,所以我猜这可能必须在.NET 中完成。

0 投票
3 回答
2941 浏览

sql-server - 如何从代码中获取复制状态

我已经在我的 SQL Server 2005 数据库上完成了复制。现在我想从我的 GUI 中显示状态。(可以是 C# 或其他)

是否有任何方法或 API 可以监控复制状态。这是为了让客户端确认复制正在运行。

谢谢

像这样的方式。 http://www.sqlmonster.com/Uwe/Forum.aspx/sql-server-replication/11698/How-to-get-the-replication-status-using-RMO-in

0 投票
1 回答
144 浏览

sql-server-2008 - 带截止的 SQL Server 同步

我有一个生产数据库(在 SQL Server 2008 上运行),其中包含一些不断增长的表(订单等)。这些表很大,而且还在不断增长,所以我想在某个时候做一个截止,但自然,我不想完全失去历史。所以,我的思路是:

一次:将整个数据库备份到另一台服务器

定期:

  1. 差异备份/从生产数据库同步到备份数据库
  2. 在生产数据库中,删除截止期之前的所有行

当然,这不会取代生产服务器的常规备份计划,而是允许缩小其大小,同时保持异地可用的历史数据,我可以将其用于统计等。

这有意义吗?如果确实如此,您能否向我指出一些允许这样做的解决方案/工具,而不是为每个不断增长的表手动编写代码。

任何建议将被认真考虑。

米奇

0 投票
3 回答
5324 浏览

mysql - Mysql - 从“显示主状态”查询中选择值

嗨,我怎样才能从“SHOW MASTER STATUS”查询exp中只选择位置值,例如

感谢您的时间和帮助

0 投票
2 回答
3133 浏览

mysql - 共享主机中的 MySQL 复制

我需要做一些mysql复制。一些信息:

  • 我有两个数据库实例,在共享主机中,所以我不能使用 Mysql 复制(我无权访问配置文件)。
  • 这是一个非营利项目(教育),所以我们买不起自己的服务器。
  • 如果主服务器宕机了几分钟,这通常并没有那么糟糕,但是在某些特定的日子里,我们真的需要一个备份解决方案,与主服务器同步(网站的时间限制事件)。

现在系统在每个表的每一行都使用一个修订号,我们定期检查这些数字的修改(并更新相应的行)。这很慢。

我在想的是每个 SELECT/INSERT/UPDATE 查询都记录在一个特定的表中,并且“从服务器”会定期向“主服务器”询问该表的内容并应用相应的查询。

你对这个想法有什么看法?

我知道这并不完美,在传播所有查询之前服务器可能已关闭,但我想尽量减少可能的问题,尽可能少的代码行。

实现它的最佳方法是什么?

  • 在 php 代码中,在每个 SELECT/INSERT/UPDATE 上,我都可以在特定表中进行其他插入(我只是插入查询)
  • 带触发器?
0 投票
2 回答
1507 浏览

mysql - 什么实际上被复制到 MySQL 从站?

我在多主复制设置中配置了两台 MySQL 服务器。每个人都是对方的奴隶和主人。我的应用程序要求在后台运行一些大型查询,这些查询的结果将用于填充表。我想,我可以让这些大型查询在一台服务器上运行,而应用程序前端使用另一台服务器。这样,当服务器运行这些查询时,应用程序就不会变慢。

这些查询非常大INSERT .... SELECT。使用我的复制设置,似乎当一台服务器完成查询时,它不仅仅是将 INSERT 发送到从属服务器,而是让从属服务器运行原始的大型 INSERT/SELECT。

这真的发生了吗?或者有没有办法查看从主机发送到从机的命令来验证这是行为?我能说的唯一方法是从 CPU 负载。

有没有办法让奴隶只从一个 INSERT... SELECT 得到结果 INSERT 在主人身上运行?

0 投票
1 回答
228 浏览

mysql - Mysql 复制问题

目前我有这种情况,

  1. 在他们的 Windows 机器上安装了 mysql db 的多个桌面客户端。
  2. 需要同步到一台托管在网络上的服务器以进行报告。
  3. 只需要做一种方式同步(客户端到网络)。
  4. 客户端 ip 总是在变化,因为他们使用没有修复 ip 的标准 adsl。
  5. 每个客户端数据库将同步到服务器上的一个独立数据库(托管在网络上)。
  6. 这个同步可以在调度程序上运行吗?就像每 3 小时一次一样。

我正在考虑使用 mysql 复制,但我对如何设置它有一些疑问?我应该将其设置为主从吗?还是高手对高手?我假设客户端将是主服务器,服务器将是从属服务器,因为服务器仅用于报告目的,但检查大量 mysql 复制,似乎复制是从从属初始的?(我看到从服务器设置上有类似 master-host=ip 的设置)这违背了目的,因为服务器不确定客户端 ip ...

0 投票
1 回答
1543 浏览

database-design - 事务数据库中的快照设计以及参考数据的版本控制

免责声明:我已经阅读了有关堆栈溢出和 Internet 上的快照和版本控制主题的所有内容。我的要求不是审计跟踪或数据库级快照的版本跟踪。我花了超过 1 周的时间自行研究并考虑可能的选择。抱歉,我可能错过了一些链接 - 如果我的问题的解决方案已经在其他线程中讨论过,请指出我那里。

有点长;请多多包涵。

情况如下:我们正在尝试创建一个通用设计,以将事务数据的快照存储在我们的事务数据库中,并保留参考数据的修订历史。

作为业务流程的一部分,用户可以按下按钮发布特定对象。为了说明的目的,假设用户可以在谈判开始之前发布来自供应商的提案。然后,通过协商过程,在不同的时间点,用户可以发布提案数据。该提案包含预算、销售目标和许多其他项目。对提案进行快照时,必须对所有链接实体进行快照。最后,经过谈判,签订合同。此时,必须创建合约的完整快照。并非合同中的所有实体都存在于提案中——有很多重叠的实体,但提案和合同都有独特的实体。

我们必须保留这些已发布的版本和最新的活动版本。已发布的版本可在网站上获得,供供应商和管理团队参考。并非所有已发布的版本都在网站上提供,但最后发布的提案和最新发布的合同始终在网站上可用。该网站也必须从同一数据库中填充。

此外,财务用户可以决定仅对预算进行快照,而销售经理可以对销售目标进行快照。因此,快照可在多个粒度上使用。

我们还需要跟踪主数据的版本。随着时间的推移跟踪对关键主数据列的所有更改是一项业务需求。例如,我们有与销售目标相关的区域信息。区域的名称可以更改,我们希望跟踪这些更改。让我们假设在提案时,区域的名称是 R1,并创建了一个快照。然后,区域名称更改为 R2,然后创建另外 2 个快照。我们希望能够在这些时间点将销售目标链接到正确的区域名称,而不一定要链接到最新的区域名称。

我们在建模方面具有一定的灵活性,因为我们同时拥有事务数据库和数据仓库数据库,我们可以决定将其中一些信息存储在事务数据库或数据仓库数据库中。

这是我们的设计。我们有一个发布表,它捕获有关已发布数据的基本信息——发布者和发布日期、原因和发布对象的类型(提案或预算或销售目标)。

我们将快照存储在与原始数据相同的表中。因此,提案快照将与提案表中的实时提案一起存储。我们在每个必须发布的表中都有一个名为 Publication ID 的列。此列是 Publication 表的 FK。如果发布 ID 为空,则该记录是活动版本。

我意识到这篇文章很长。因此,我没有列出场景细节,而是想在思维导图中快速总结设计注意事项。 快照设计注意事项

现在我们倾向于两种解决方案 - 两者都将存储所有数据的快照,无论它是否已更改。在保持表结构完整的同时仅维护增量将需要一个非常复杂的存储过程,该存储过程必须在任何快照对象的每次插入/更新时运行。我不想走这条路,因为这会花费更长的时间,而且数量也不会那么大。

解决方案 1:每次发布对象(如提案或预算)时,我们将填充 XML 树并将其保存在数据库中。网站上只需要提供最新版本,很少需要旧版本。鉴于此,由于使用 XML,我会遇到很大的性能问题吗?我们使用 SQL Server。数据量不是很大。

解决方案 2:所有事务表都有一个发布 ID,参考数据有开始和结束日期。每当发布对象时,我们都会复制所有事务记录并将发布 ID 放在那里,我们将复制所有参考数据记录并将快照日期作为结束日期。这将允许我们在发布过程之外对参考数据进行正常版本控制。

我需要有经验的人就这两种方法的缺点以及是否还有其他更好的方案提出意见。

0 投票
1 回答
14086 浏览

database-replication - 从 H2 数据库生成构建脚本的任何简单方法?

让我们想象一下,一个人创建了一个带有表、索引等的 H2 数据库... 有没有一种简单的方法可以提取 SQL 脚本以在另一个 H2 数据库中重新创建该数据库的结构?

我不是指表、索引等的内容……我只是对数据库的一般结构感兴趣,以便在其他地方复制它。谢谢。

0 投票
3 回答
14084 浏览

mysql - 如何找到 mysql DB 是从站?

如何通过查询不使用“显示从属状态”来查找 mysql DB 是从属?