标签: mirroring

数据库镜像事件警报

我正在寻找必须采取的措施来导致包含多个镜像数据库的 SQL Server 2008 实例上的单个镜像数据库发生阈值警报。

仅供参考:这已经发布在ServerFault.com 上,并作为Microsoft Connect上的错误提交。

sql-server-2008 mirroring

7
推荐指数
1
解决办法
919
查看次数

SQL Server 数据库镜像:故障转移时奇怪的客户端应用程序行为

我正在建立一个基于三台 SQL Server 2008 R2 机器和数据库镜像的 HA SQL 服务器环境。

我会命名它们:

  • 委托人.company.intra
  • mirror.company.intra
  • 证人.company.intra

“company.intra”域是控股公司的域。

两个数据库引擎都在侦听静态 52002 端口,因此客户端应用程序可以通过以下方式访问它们:

principal.company.intra,52002 & mirror.company.intra,52002
Run Code Online (Sandbox Code Playgroud)

端点EP_Mirroring在主体和镜像、EP_Witness见证和侦听主体的 5022 端口、镜像的 5023 和见证的 5024 端口上调用。

服务帐户已正确配置并被授予对彼此端点的连接权限。

镜像功能工作正常,并且在 TSQL 手动故障转移或模拟系统故障的情况下,数据库可以正确进行故障转移。

问题在于应用程序在故障转移时行为异常。

应用程序测试上下文如下:

一个包含两个文本框和一个按钮的小型 .NET 应用程序:

单击按钮时,它会进行存储过程调用,并使用 sp 的输出填充 Textbox1,使用 my 的数据源属性填充 Textbox2 SqlConnection

连接字符串如下所示:

Data source=principal.company.intra,52002;failover partner=mirror.company.intra,52002;
initial catalog = TEST_FAILOVER;user ID=user;password=pass;Connection Timeout=30
Run Code Online (Sandbox Code Playgroud)

我从我的笔记本电脑启动了这个应用程序,位于另一个域: laptop.childcompany.com

场景一

  1. 我启动应用程序
  2. 按下按钮,TB1:sp 输出/TB2:principal.company.intra,52002
  3. 数据库故障转移
  4. 按钮按下,连接超时
  5. 按钮按下,连接超时
  6. 镜像中的数据库故障转移(返回主体)
  7. 按下按钮,TB1:sp 输出/TB2:principal.company.intra,52002

场景二

  1. 数据库故障转移
  2. 启动应用程序
  3. 按下按钮,TB1:sp 输出/TB2:mirror.company.intra,52002
  4. 镜像中的数据库故障转移(回到主体)
  5. 按下按钮,连接错误 …

sql-server mirroring sql-server-2008-r2 high-availability

7
推荐指数
1
解决办法
1469
查看次数

用于异地复制的 SQL Server 复制

我们内部拥有主 SQL Server(目前有 15 个主服务器(总共约 500 个数据库),大多数服务器具有十六进制核心处理器)。

这些被镜像到附近建筑物中的其他备份服务器(通过专用的 0ms 光纤链路)。

我们想要做的是在数英里外的异地数据中心维护我们数据的实时副本(作为更大的 DR 项目的一部分 - 即如果我们所在地区存在通信问题)。

目前我们使用 SQL Server 2008 R2 - 标准版。

显然,使用 SQL Server 2008 R2 的“标准版”将我们限制为同步镜像,因为异步是“企业版”功能。

我们已经完成了异地同步镜像的测试,但延迟使它成为不可能。

我很想升级到 SQL Server 2012 Enterprise 并实施 AlwaysOn 可用性组,但该公司不愿意花费 100,000 英镑以上来升级 SQL 许可(2012 年的每核许可 + 我们的六核处理器 = 史诗般的失败)-他们甚至不愿意花钱升级到 2008 Enterprise,所以这也是窗口之外的异步镜像。

因此,由于这些财务限制,我的手被束缚在 2008 R2 标准版上。

留给我的唯一选择是日志传送和复制(如果我遗漏了什么,请纠正我)——日志传送很粗糙——但是如果管理得当是可行的——所以我们现在把它放在次要位置。

我的问题:

  1. SQL Server 2008 R2 Standard 是否具有我们进行异地复制所需的所有复制功能?
  2. 在不以任何方式影响主服务器性能的情况下,将内部服务器复制到异地数据中心(20-30 毫秒延迟)是否可行(我们是否可以在“原则”服务器上设置复制分发服务器)?
  3. 鉴于复制不是实例级复制解决方案 - 这是否会超过 1 个 DBA 可以处理的管理?(鉴于我已经在管理 15 台 Principle 服务器及其镜像服务器 - 诚然有很多自动化)
  4. 是否可以在不影响现有镜像配置的情况下从我们的主复制 - 我的理解是最佳实践是镜像订阅服务器而不是发布服务器 - 这是正确的吗? …

replication sql-server mirroring sql-server-2008-r2 high-availability

7
推荐指数
1
解决办法
2180
查看次数

我们是否应该定期“刷新”SQL Server 数据库的镜像副本?

当您设置了 SQL Server 镜像时,您是否相信您的镜像数据库会与主数据库保持相同,即使经过数月的镜像?我知道我们都在检查状态,当然它数据库已同步……但我担心镜像可能会因网络故障、软件错误等而失去同步,并且无法检测到故障。然后有一天我们需要镜子,我们惊恐地发现它已经损坏了。

我可以做的一件事是定期从主数据库刷新镜像,因为我们的数据库不是特别大。但也许我过于偏执了。

我想听听 SQL Server 或任何其他平台的 DBA 的意见,了解您是否对镜像 DB 的完整性存在这种担忧,如果是,您会采取哪些措施来减轻这种担忧。您是否偶尔将主数据库重新复制到镜像?您是否采取其他措施来确保两者之间的一致性?感谢您提供的任何建议。

sql-server mirroring

7
推荐指数
1
解决办法
606
查看次数

在不破坏现有镜像的情况下启用 TDE

我一直在尝试在镜像的 SQL Server 2008 R2 配置中启用 TDE。启用 TDE 并不是那么困难,但是当我在主体上启用 TDE 时,镜像数据库会进入挂起状态。

这里这里有一些不错的文章以及许多其他文章,但它们都演示了在镜像配置上启用 TDE,并启用加密之前将数据库导入镜像。我还没有找到在现有镜像系统中简单地打开 TDE 的方法。

我已经从 Principal 导出服务主密钥和服务密钥并将它们导入到镜像中。我尝试过 transact-sql'ing 镜像,希望我在 GUI 中看到的内容是错误的,因为一些高级镜像正在发生,但没有成功。

是否可以跨现有镜像 SQL Server 设置启用 TDE?

sql-server mirroring sql-server-2008-r2 transparent-data-encryption

7
推荐指数
1
解决办法
1728
查看次数

在镜像主体上增长的事务日志

我有一对 SQL Server 2008 R2 服务器托管一个没有见证的同步镜像数据库。这个周末,我们不得不做一些网络维护,所以我暂停了镜像。恢复后,委托人的状态恢复为通常的委托人,已同步。然而,镜像现在显示为镜像、同步/恢复......我不记得恢复......部分通常在那里。

尽管每小时进行日志备份,但主体上的事务日志也开始增长。这向我表明同步过程没有释放事务日志空间。

这里发生了什么,我该如何解决?

sql-server-2008 sql-server mirroring sql-server-2008-r2

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

MySQL 中的数据库镜像

有没有办法在MySQL中镜像数据库?在 SQL Server 中,您可以以主对主关系链接 2 个数据库。一个数据库将接受事务,并且事务将同时在两个数据库上提交。MySQL中有类似的概念吗?

mysql mirroring

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

带有手动故障转移的 SQL Server 2008 镜像数据库,需要报告数据库

我们当前的设置是生产中使用的主要数据库,带有用于 HA 的手动故障转移镜像数据库。

我还需要设置一个报告数据库。最好的方法是什么?我应该设置一个 SQL 作业来删除和创建镜像数据库的快照并每晚刷新吗?

有没有人有其他建议?

谢谢

sql-server-2008 mirroring snapshot reporting

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

带有数据库镜像的 Ola Hallengren

我即将设置Ola Hallengrens数据库维护计划。我们有我们的数据库镜像,我只是想知道我是否需要在我的两个 Sql Server 实例上运行脚本还是只在主实例上运行脚本?

sql-server-2008 sql-server maintenance mirroring ola-hallengren

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

SQL Server 2008 R2 可读镜像

我知道 SQL Server 2012 和 2014 提供了提供此功能的AlwaysOn 可用性组,但我仍然停留在 SQL Server 2008 R2 上一段时间。

我最近看到了这个 AWS 白皮书:http : //media.amazonwebservices.com/AWS_RDBMS_MS_SQLServer.pdf

我对第 11 页的这张图表感到困惑: 在此处输入图片说明这似乎表明镜像数据库可以用于读取(检查“可读副本”功能列),就像使用日志传送时一样,因为根据我的经验,镜像数据库根本无法使用--它的唯一目的是用于故障转移。

这个问题的答案:数据库镜像仅限于原始数据库似乎证实了我的怀疑,即镜像数据库不可读,尽管只是顺便说一句。

这份白皮书是错误的,还是 SQL Server 2008 R2 镜像数据库确实可读?

如果是,需要做什么,因为尝试在 SSMS 中连接会导致一个窗口连接到主数据库,并且运行USE [database]会出现以下错误:

Msg 954, Level 14, State 1, Line 1
The database "database" cannot be opened. It is acting as a mirror database.
Run Code Online (Sandbox Code Playgroud)

更新:我知道有一些方法可以解决这个问题,并从镜像和延时中获取一些可读的东西,我想有人可以争论快照是“可读副本”,但那是与您通过日志传送或事务复制获得的可读副本类型非常不同,因为这两者都会自动更新,即使稍微过时(也许快照也可能是 - 我坚持标准Edition,所以我对Enterprise Edition功能集不太熟悉)。除此之外,一个真正可读的同步镜像(比如使用AlwaysOn Availability Groups在 2012+ 中)将提供一个完美同步的可读版本——这更有用,因为镜像可用于分配读取查询负载并避免返回过时数据的所有问题。我的主要目的(如上面的问题所述)实际上是获得关于镜像本身可读性的明确答案(不是快照或它的副本)。虽然提供的答案与我自己的经验一致,但所提供的确定来源的唯一链接是实现类似结果的可能方法——它们都没有明确说明镜像不可读。我将接受提供此类链接的第一个答案。

sql-server mirroring sql-server-2008-r2

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