Questions tagged «sql-server-2008»

SQL Server 2008(主要版本10.00.xxxx)。请同时用sql-server标记。


6
尝试在数据库2中获取逻辑页(5:65424)失败
SqlException在调用存储过程时,我得到以下信息: 尝试在数据库2中获取逻辑页(5:65424)失败。它属于分配单元7349876362857938944,而不属于4899918190390149120。 发生System.Data.SqlClient.SqlException Message =“试图在数据库2中获取逻辑页面(5:65424)失败。它属于分配单元7349876362857938944,而不是属于4899918190390149120。 Source =“。Net SqlClient数据提供程序” ErrorCode = -2146232060 类= 21 LineNumber = 257 Number = 605 过程=“ ispDisplayCount” Server =“ 10.10.1.1” State = 3 此异常是什么意思?上述问题有解决方案吗? 尽管上面的错误中引用的数据库指示tempdb,但使用以下答案可以修复引用消息605的类似错误。 消息605,级别21,状态3,行1 尝试获取数据库7中的逻辑页(1:8687634)失败。它属于分配单元72057594364821504,而不是72057594052476928。

5
备份->恢复操作后混乱的用户权限
我不得不将几个SQL Server 2008数据库移动到我们的新数据库服务器,因此我将它们全部备份(到.bak文件),将这些文件复制到新框中并还原它们(所有操作都使用SQL Management Studio完成)。 一切正常,但是现在我发现我无法使用继续在旧RDBMS上运行的SQL Server帐户登录任何数据库。我的Windows身份验证登录仍然可以正常工作。 我有这样的想法,用户和权限都可以无缝地复制到新的数据库服务器上,但是似乎某个地方出了问题。我将不胜感激/建议/建议;-)


1
为什么suser_name()无法反映AD帐户名称的更改?
我们的用户名之一已合法更改,因此我们将其Active Directory用户名更改为匹配-从domain \ oldname更改为domain \ newname。但是,当此用户在存储过程中调用suser_sname()时,它将返回旧名称,而不是新名称。 Googling将我引向了KB 946358,这表明它们的名称已在服务器上缓存并且未更新,大概是因为suser_name()正在调用LsaLookupSids。但是,该文章中的解决方法涉及重新启动服务器,即使是这样,我仍然想了解问题所在。 如果我将上下文更改为他们的上下文,则会返回正确的名称: EXECUTE AS LOGIN = 'domain\newname' GO SELECT suser_name() --returns 'domain\newname' ...我以为这也将调用LsaLookupSids,因此将返回错误的名称。我似乎不太了解此处的工作机制。 一些可能重要的观察结果: 该用户在服务器上没有显式登录。但是他们是这样做的AD组的成员。更改后的名称(domain \ newname)出现在的结果集中exec xp_logininfo 'domain\ADGroupName', 'members';域\旧名称没有。 用户正在从存储过程中调用suser_name(),该过程是从Access 2003 MDB中的直通查询调用的。 过去,我们已经更改了许多用户的帐户名,但是仅在上周才发现此问题(上周进行了两项更改,似乎都显示了该问题)。 该服务器正在Windows 2008 R2 Datacenter版上运行Sql Server 2008 SP3 x64。 这是怎么回事?作为DBA,我该怎么办?或者我打算在哪里解决这个问题?

2
可以默认配置/使用sp_executesql吗?
我正在寻找对SQL Server使用高度动态sql查询的应用程序。查看以非常奇怪和复杂的方式构造的查询,但这是一个不同的故事,我告诉它有一个很好的理由使我无法(太愚蠢)自己发现问题……我看不到查询用换行的任何代码sp_executesql。 但是,当我跟踪时,可以看到很多查询都用包裹了sp_executesql。整个应用程序解决方案甚至根本不包含命令sp_executesql。 因此,我想知道是否存在某种我不知道的配置,该配置默认情况下会强制软件使用sp_executesql包装查询? 什么可能导致这种行为?


2
为什么会出现async_network_io等待类型?
上周,我们的数据库发生了一些奇怪的事情。突然,该应用程序对无法保存新实体等的用户阻止了。在查看了SQL Server的活动监视器(带有兼容模式2005的2008)之后,我看到了以下三个条目: 一段时间后,用户获得连接超时。当我杀死进程64时,它们可以再次正常保存。 问题在于,即使有代码可以防止这种情况发生,他们试图在块中保存的实体也多次插入数据库(最多3次)(数字列必须唯一但没有约束) ...检查发生在代码中)。 我们使用实体框架6.0。 你们谁知道为什么和何时出现这些ASYNC_NETWORK_IO等待类型,以及如何避免它们? 它们到底是什么意思?

6
估计预计的数据库增长
我最近开始以DBA培训生的身份使用SQL Server 2008。我需要计算数据库的大小,还需要估计数据库在最近几个月的增长以及未来12个月的预测增长。 我可以使用sp_spaceused语句来计算实际大小,但是如何计算其他所有内容?

1
在80M行索引表上运行插入查询时,MSG 666
奇怪的是,我的存储过程开始收到某些输入数据的消息666。 当存储过程尝试将行插入具有以下结构的表中时,存储过程在最后一步失败: Columns: A_Id: PK, int B_Id: PK, FK, int C_Id: PK, FK, int D_Id: PK, smallint 这实际上是一个将所有引用的实体连接在一起的表。 Indexes: IX_TableName_D_id - Clustered index on D_id column PK_TableName - Unique non-clustered index on all columns (A_Id, B_Id, C_Id, D_Id) 两个索引的碎片率都很​​低(<25%)。但是,由于对表的操作量非常大,PK_TableName碎片迅速增加。 桌子尺寸: Row count: ~80,000,000 rows 因此,当我尝试运行简单的查询时,对于某些D_Id,我会收到以下消息: 消息666。对于分区ID为422223771074560的索引,超出了复制组的最大系统生成的唯一值。删除并重新创建索引可能会解决此问题;否则,请使用另一个群集密钥。 查询示例: INSERT INTO TableName …

5
查询而无需指定表的架构
我从SQL Server 2000导入了一堆表到我的2008数据库。所有导入的表都以我的用户名作为前缀,例如:erpadmin.tablename。 在表属性中,它将“ erpadmin”列为数据库架构。当我编写查询时,我现在必须包含“ erpadmin”。在所有表名前面,这令人困惑。 当前结果: select * from erpadmin.tablename 所需结果: select * from tablename

5
安装SQL Server RAID 10与RAID 5
我是设置SQL Server和Vms的新手。我的前任将Raid 5用于SQL安装所在的C驱动器,并将RAID 10用于数据库文件和数据库日志。 我想知道这是否正确,还是应该将RAID 5用于SQL数据库文件? 有什么帮助吗?

3
链接服务器风险
我正在实现一项新功能,该功能需要来自多台服务器上数据库的数据。我只需要合并所有这些服务器中的数据并对其进行排序。我想到的两个选择是: 使用链接的服务器并编写一个简单的查询,以对将在一台服务器上运行的数据进行合并和排序,并从另一台服务器收集数据。 使用应用程序从所有服务器收集数据,然后将其发送回SQL Server进行排序(不想在应用程序中实现排序)。 我们在SQL Server 2008 r2的活动/活动群集中运行服务器。所有数据库都具有相同的权限,如果您有权访问一个数据库/服务器,则对它们全部都具有权限。这是一个面向公众的应用程序(需要用户登录)。 使用链接服务器有哪些风险?我应该关注任何安全漏洞吗?在主动/主动群集中运行链接服务器是否有任何问题?与替代方案相比,会不会有任何重大的性能问题? 关于链接服务器,似乎普遍存在负面的“嗡嗡声”,但是我找不到任何具体的东西可以使我相信那里确实存在任何问题。

1
SSIS 2008程序包配置被忽略
与2008年相比,与2005年(当我在命令行上指定/ ConfigFile something.dtsConfig)相比,程序包配置发生了变化,程序包中定义的变量将保留其设计时值,而不是使用config文件中的设置。 我不太确定我是否了解如何获取要使用的外部配置文件。我读过的文章说只有设置的设计时配置会覆盖外部文件的负载。这是否意味着我可以将变量更改为空白字符串,然后将其覆盖?我无法完全删除变量!整数呢? 我看过一些文章提到使用软件包中的软件包配置关闭。 我可以使用SSIS包编辑器或XML编辑器来更改包中的配置文件路径,然后它将使用该文件的设置“ last”(无论使用外部/ ConfigFile选项如何),但是我不想成为更换包装。我想要一个带有Test.dtsConfig和Production.dtsConfig的程序包,并且能够在不更改程序包的情况下来回交换。 现在推荐的方法是什么?

2
镜像数据库上的事务日志维护
SQL Server版本:2008 R2 Enterprise SP2 我试图解决我们的SQL Server维护问题,遇到了一些我认为不正确的问题。我们有一个生产实例,其中有3个数据库都异地镜像到DR实例。 在查看DR实例时,我注意到LDF文件非常庞大,对于频繁使用的数据库,该文件超过35GB。 我知道这可能是由于镜像数据库处于完全恢复模式,并且从未备份过日志,它们只会继续增长直到驱动器空间用尽。 我们正在主体数据库上进行日志备份,而我的问题是在镜像上进行日志备份的陷阱是什么? 在进行日志备份之前,至少必须完成一次从镜像的完整数据库备份,在这种情况下,由于镜像是镜像,是否需要使用特殊选项? 同样,这是MIRROR数据库上的事务日志维护建议。 感谢您的输入

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.