问题标签 [database-mirroring]
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.
sql-server - 确认 SQL Server 2008 镜像中的数据
我有一个为镜像设置的 SQL Server 2008 数据库,我想知道是否有任何方法可以生成审计报告,以显示数据已正确镜像并且故障转移不会导致任何数据丢失。我可以使用数据库镜像监视器显示正在传输数据,但需要一种方法来验证数据是否匹配(最好不必破坏镜像)。
sql-server - Windows Azure VM 之间的数据库镜像
我有两个运行 SQL Server 标准 2012 的 Windows Server 2012 数据中心 R2 虚拟机。我在每个虚拟机上都安装了我的应用程序和数据库服务器。两个虚拟机都驻留在同一个云服务中。
我还通过端口:80 在两个虚拟机之间设置负载平衡。现在是镜像数据库的问题。我尝试设置 SQL 镜像,但到目前为止没有运气。我不确定这两个虚拟机如何通过同一个端口 5022 相互通信。
我也做了一些阅读,但我仍然不确定这样做的可能方法是什么。我现在肯定需要帮助。
问题: a) 我是否需要设置虚拟网络才能镜像数据库?b) 我可以镜像数据库驻留在同一个虚拟网络中吗?c)如果我的上述假设不正确,那么最好的方法是什么?
提前致谢!!
更新:我设法在 VM1 中设置了 Principle 服务器,在 VM2 中设置了 Mirror & Witness 服务器(如果您有资源,最好将它们放在单独的 VM 中)。两个虚拟机都驻留在同一个虚拟网络和同一个云服务中。
所以当 Principle 不可用时,Witness 会自动将 Mirror 设置为 Principle,不再处于恢复状态。
如果您计划在同一服务器中同时拥有见证和镜像 SQL 实例,请确保为见证服务器使用不同的端口。例如。
sql-server-2012 - SQL Server 2012 镜像故障转移后,加密表列的解密不再可解密
我想知道是否有人可以帮助我?
我们有 sql server 2012 标准版。
在其中一个数据库(所有镜像)中,我们有一个带有加密列的表。
此表的解密工作正常,直到镜像故障转移后,加密表列的解密不再可解密?
我对此进行了研究,建议的解决方案似乎是实施透明数据加密?
我碰到
但是 2012 标准版不允许 TDE。
有谁知道除了 TDE 之外是否还有其他方法可以解决此问题,因为我对镜像不是很有经验。
当前原则设置为:-
任何建议都非常感谢。
sql-server - SQL Server 镜像 IP 更改
我们在两个不同服务器上的两个 SQL Server 2012 Standard 实例上的数据库之间建立了 SQL Server 镜像。见证人位于运行快速版的第三台服务器上。使用 SSMS 创建镜像时,镜像配置中提到了主服务器、镜像服务器和见证服务器的 IP 地址(不是主机名)。现在的问题是需要更改镜像的 IP 地址。这背后有一个适当的推理,这是无法避免的。系统处于活动状态,应最大限度地避免中断。新 IP 可从主服务器和见证服务器访问。当我们取出镜像服务器时,镜像会受到影响,但是一旦服务器恢复到相同的旧 IP,镜像就会适当地恢复。然而,如何更改端点 IP 地址而无需删除然后重新创建镜像。如果不删除/重新创建,是否有可能或没有办法实现?
如果这里绝对需要执行此删除/重新创建,如何确保我们不会复制完整的数据库及其日志并从头开始重做该过程。如果在此期间阻止所有客户端对主节点的访问以确保没有事务发生,这是否足够?
没有删除/重新创建的解决方案将是首选解决方案。
谢谢。
sql - 用于镜像的 SQL Server HA-DR,如何在...时恢复镜像?
在主服务器关闭并且主数据库的模式处于恢复填充或模式不同步后,恢复数据库镜像的最快方法是什么?
c++ - 当主体发生故障时,自动故障转移多个镜像数据库连接
我有一个主体数据库 (server_A)、镜像数据库 (server_B) 和一个见证数据库 (server_C)。数据库设置为自动故障转移,也就是说,当 server_A 出现故障或故障转移时,server_B 承担新主体数据库的角色。据我所知,数据库仲裁设置正确。
我用 C++ 编写了一个应用程序来连接到数据库并获取一个值以确保真正的连接。应用程序检测 GetValue 调用何时发生故障,并在发生错误时尝试重新连接。
问题是这样的:当我与数据库有多个连接时(连接了两个线程,一旦连接,它将在循环中获取一个值),当发生故障转移时(停止服务器 A 上的 sql 服务器,因此服务器 B 将接管为主体),我检测到连接失败并破坏我的连接并尝试使用相同的连接字符串重新连接:
“驱动程序={SQL Native Client};服务器=tcp:Server_A;Failover_Partner=tcp:Server_B;Database=SomeDatabase;Uid=SomeUser;Pwd=SomePassword;”
** 注意 ** 我已经通过监控数据库验证了故障转移已经发生。
即使与数据库的连接已正确处理,我也无法重新连接到数据库,直到我重新启动应用程序,或者如果我将 server_A 重新联机(现在充当镜像数据库)然后故障转移 server_B(关闭 sql server ) 使服务器 A 再次成为主体数据库,应用程序可以重新连接而无需完全关闭。
虽然我可以操纵连接字符串以使 server_B 成为新的主体,而 server_A 成为新的 Failover_Partner,但这并不是一个理想的解决方案,因为将使用更多的连接。
请记住,这只发生在与数据库的多个连接时。如果我只使用一个连接运行应用程序,一切都很好,并且在发生故障转移时我可以重新连接。
编辑:如果我一开始用多个线程连接,一切都很好。当我关闭 SQL Server 并因此发生故障转移时,我只能在通过并删除所有对象并重新实例化新对象时重新连接。另外,我使用的是 SQL Native Client 11.0 (ODBC)。想法?
c++ - 修改 sys.database_mirroring 中的 mirroring_partner_instance 名称
我在正确故障转移到镜像数据库时遇到问题。当我连接到主体数据库 (dbx)(启用并设置了镜像)并且我对主体数据库进行故障转移(关闭 SQL Server 以模拟崩溃)时,我无法再发送查询而不会失败。这是意料之中的,因为之前的连接现在丢失了。
我想简单地关闭我的连接和句柄并使用相同的连接字符串重新建立一个新连接,然后重新连接到镜像数据库(dby,现在是主体数据库)。
我的连接字符串如下:
Driver={SQL Native Client};Server=dbx;Failover_Partner=dby;Database=db;Uid=uid;Pwd=pwd;Network=DBMSSOCN;
通过研究,我了解到连接中的 Failover_Partner 参数几乎毫无价值。它仅在主体服务器关闭并且第一次建立新连接时使用。出于某种原因,当与主体建立连接时,Failover_Partner 在内部被覆盖,而使用 sys.database_mirroring 表中的 mirroring_partner_instance。因此,当我将 Failover_Partner 指定为 dby 时,在建立连接后,我会查询它认为的故障转移伙伴是什么,它会返回故障转移伙伴的实例名称,而不是 DNS 名称 (dby)。
这是问题所在,我不能使用实例名称作为故障转移伙伴。我需要使用 DNS 名称作为故障转移伙伴。
所以我的问题是/是这样的:
- 有没有办法修改 sys.database_mirroring 条目并更改 mirroring_partner_instance?
- 这个字段从哪里得到它的值?
- 有没有其他方法可以强制 SQL Server 使用 DNS 名称而不是 INSTANCE 名称?
sql-server - SQL server semi-database mirroring
We have the following problem:Our customer has a the life database.Sometimes,we face bugs that are due to data in life,those bugs doesn't appear in our staging and development databases because they are usually related to the actual data. So, for accurate debugging,we need to have the same copy of life data in another database.This database should be synchronized with the life database (either automatically or in-demand),so that we can replicate the erroneous scenarios without impacting the actual data.How can we perform that?Is it better to create this "semi-mirror" in the staging itself? As a final note,I don't want the changes from the "semi-mirror" database to be reflected one the life, Only from the life to the "semi-mirror".
sql - SQL 镜像 - 查询以确认运行状况并检查回溯日志
我正在寻找任何可能存在的 sql 查询,以便能够确认镜像的运行状况,即工作或失败。此外,如果有查询,您可以在其中查看当前积压。
首先十分感谢。
sql-server-2005 - 如何在异步镜像(SQL Server 2005)上找到上次接收事务的确切时间?
我需要为用户提供准确的数据完整性时间,以防强制服务可能导致数据丢失。
我想我可以使用以下方法找到最后一个 LSN:
但这不会给我确切的时间。