小编Jon*_*gel的帖子

快照代理是否应该继续在事务复制中运行?

我们在 sql server 2008 R2 2 节点主动/主动集群上为大量发布运行事务复制。我注意到快照代理作业每小时运行一次,看起来它刷新了发布(字面意思是新快照?)。在此期间,我们遇到了阻止程序作为这项工作的锁定问题。如果没有添加或更改新文章,是否应该经常刷新?

sql-server sql-server-2008-r2 snapshot transactional-replication

5
推荐指数
1
解决办法
2811
查看次数

主体“硬停机”的故障转移场景

我的公司有一对 SQL Server 2005 实例的故障转移对,它们为 UL 许可的警报/呼叫中心提供数据库可用性,其中正常运行时间和可用性对生命安全至关重要。

下面是来自其中一个关键业务应用程序的 connectionStrings 的示例行(为了我们的保护而进行了消毒):

<add name="MyCompany.MyApp.Properties.Settings.MyDbConnectionString"
 connectionString="Data Source=Principal-DB;Failover Partner=Mirror-DB;
 Initial Catalog=MyDb; Integrated Security=True; Persist Security Info=True;"
 providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)

大约半小时前,这是我们认为的场景:

  1. DBA 在指定时间向所有用户报告 Principal-DB 服务器上的硬件维护需求,并建议他们在遇到数据库连接问题时关闭并重新启动客户端应用程序。
  2. DBA 从主体数据库故障转移到镜像数据库。客户端应用程序不受影响。
  3. DBA 关闭 Principal-DB 服务器。
  4. 某些客户端应用程序开始在池连接上超时(正如预期的那样)。遇到这些错误的用户按照 DBA 的建议关闭并重新启动。
  5. 由于无法从数据库接收响应,这些客户端应用程序现在无法完全启动。
  6. 欢闹随之而来。

我们的理论是,因为主要-DB不在状态,以响应连接请求在所有的,当它通常会迅速地拒绝这样的连接,如果它是在恢复状态,客户端应用程序结束了等待整个分配连接超时(默认为 20 秒)让主服务器响应,然后返回超时错误,而无需尝试连接到列出的故障转移伙伴。

快速修复是将更新推送到包含交换数据源和故障转移伙伴实例的 App.config 的客户端应用程序,因此 Mirror-DB 现在是应用程序首先尝试连接的服务器。当我们故障恢复到 Principal-DB 时,我们将不得不使用另一个应用程序更新来撤消此更改。

我需要一个更永久的修复。这不是故障转移对的预期行为,并且不允许再次发生。必须有一种方法来配置客户端应用程序,以便它在返回错误之前在这种情况下正确尝试连接到故障转移伙伴。

sql-server-2005 sql-server mirroring failover

5
推荐指数
1
解决办法
2352
查看次数

事务复制的快照对于大型数据库来说花费的时间太长

我想建立一个大型数据库(200GB)的事务复制。但是当我创建发布者并启动快照代理时,它需要很长时间并且坚持以下消息

进程正在运行,正在等待服务器的响应

在此处输入图片说明

但问题是当我看到快照文件夹的大小时,我可以看到它正在增长!但是太慢了。

在此处输入图片说明 在此处输入图片说明

你对此有什么想法吗?或任何不同的复制方式?如何找到更详细的警告或错误消息?

PS 在我的数据库中有两个图像表,它们占我数据库大小的 98%。当我不将它们包含在我的出版物中时,一切都很好。但是当我包含它们时,我将面临这个问题。

replication sql-server transactional-replication

5
推荐指数
1
解决办法
7845
查看次数

SQL Server 2014 内存中 OLTP - 事务回滚时的垃圾收集

在 SQL Server 2014 中,内存中 OLTP,如果事务回滚并且不再需要新创建的行版本,会发生什么。垃圾收集器是否有责任删除此类行,或者在事务回滚时会在运行时收集此类垃圾?

sql-server in-memory-database sql-server-2014

5
推荐指数
1
解决办法
928
查看次数

频繁删除和插入,影响性能

在我的应用程序中,我们的更新很少。大多数数据被删除和插入。

我的问题是,这将如何影响性能?

我们使用的是 SQL Server 2012。

  1. 表统计信息(这些会更快过时吗?)
  2. 碎片化

请发表您的经验。

提前致谢!!

performance sql-server t-sql sql-server-2012

5
推荐指数
1
解决办法
1853
查看次数

SQL Server 2008 - “NT AUTHORITY\ANONYMOUS LOGON”登录是“强制性的”吗?

当我在 SQL Server 登录中发现这个“NT AUTHORITY\ANONYMOUS LOGON”帐户时,我的蜘蛛感觉很刺痛。我试图研究这个问题,我什至有一本关于 SQL Server 管理的书。此外,我所做的所有网络搜索似乎都只与登录问题有关。该帐户不在我拥有的本地 SQL express 安装上,所以我真的不知道是否有人在那里添加了它,如果是,为什么。

无论如何,我对此的看法如下:此帐户似乎允许我域中的每个人登录。这似乎是错误的,我想关闭它。我担心的是,如果我关闭此帐户,应用程序是否会开始无法登录?在这方面,用户/密码登录是否被视为“匿名”?换句话说,除了 AD 帐户之外,是否需要此登录才能正常工作?

我希望我可以测试它,但它可能会在生产环境中造成一些损害。

security sql-server

4
推荐指数
1
解决办法
5111
查看次数

跨多个表的 SQL 唯一性

我有两个 SQL 表:用户和客户。

users 表中的每一行在clients 表中都有一组clients,由users 表id字段和clients 表user_id字段链接。

用户表有一个username唯一的字段。

客户表有一个user_id字段 ANDclientname字段,它们一起是唯一的(即clientnames可以存在多次,但必须有不同的user_ids

我的问题是:如何添加强制username用户表中的clientname字段和客户表中的字段之间的唯一性的规则?甚至有可能吗?

即 nousername可以与 a 相同clientname,noclientname可以与 a 相同username

mysql innodb database-design unique-constraint

4
推荐指数
1
解决办法
2535
查看次数

如何修复“尚未注册 OLE DB 提供程序“MSOLAP”?

这是我用来将链接服务器注册到 SSAS 的代码:

USE [master];
GO

EXEC master.dbo.sp_addlinkedserver
    @server = N'ServerAlias',
    @srvproduct = N'',
    @provider= N'MSOLAP',
    @datasrc= N'ActualServerName',
    @catalog = N'DatabaseName';
Run Code Online (Sandbox Code Playgroud)

当我尝试使用 运行 MDX 查询时OPENQUERY,或者如果我在运行上述代码后在 Management Studio 中使用测试连接命令,我会收到错误消息:

消息 7403,级别 16,状态 1,第 1 行
OLE DB 提供程序“MSOLAP”尚未注册。

这很奇怪,因为此提供程序是作为 SQL Server 的一部分安装的。

  • 它也在同一台机器上的所有其他实例上失败——2008 R2 RTM 和 2008 R2 SP1 的总共 5 个实例。我不太记得了,但问题框中的 1 或 2 个实例可能在某个时候从 2008 升级到了 2008 R2。
  • 它在使用 2008 R2 的其他几个盒子上取得了成功,其中一个盒子有大约 12 个 2005、2008 R2 和 2012 的实例。我尝试了 32 位和 64 位都成功了。

我查看了这篇 Microsoft KB …

sql-server sql-server-2008-r2 linked-server

4
推荐指数
1
解决办法
3万
查看次数

CREATE DATABASE 权限在数据库“master”中被拒绝

我已经使用 WPF 和实体框架代码优先开发了一个桌面应用程序。

在我的应用程序中,用户可以在运行时创建多个数据库。

但是如果用户在他的机器上不是管理员,则实体框架无法创建数据库。

我需要找到一个可以通过编码完成的解决方案。Management Studio 未安装在用户的计算机上。

你有什么建议?

sql-server sql-server-2008-r2

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

这两个索引声明之间有什么区别,我是否都需要?

我正在检查一个带有“显示估计执行计划”的脚本,它为添加到数据库的索引提出了一些建议。我添加了它们,脚本确实运行得更快了。现在我正在考虑将这些放入我们的标准表单中以包含在我们的常规升级脚本中,我注意到可能存在冗余:

CREATE NONCLUSTERED INDEX [TableA_ColA]
ON [dbo].[TableA] ([ColA])
INCLUDE ([ColB])
GO

CREATE NONCLUSTERED INDEX [TableA_ColB_ColA]
ON [dbo].[TableA] ([ColB],[ColA])
GO
Run Code Online (Sandbox Code Playgroud)

我可以从文档中看到就空间使用而言,两个索引之间存在一些差异,但在这种情况下ColAisintColBis nvarchar(255),远远低于 900 字节的限制,所以我不确定INCLUDE第一个索引中的是必要的。

那么这只是执行计划分析器的任意结果吗?在我看来,如果我有第二个索引,第一个索引是多余的吗?

index sql-server index-tuning

4
推荐指数
1
解决办法
144
查看次数