标签: sql-server

为什么在将文件组设置从 RESTRICTED_USER 更改为 MULTI_USER 后,我的数据库镜像会崩溃?

我的环境如下: VMWare 5.5激活服务器MS Windows Server 2008R2 Enterprise域和SQL Server 2008 R2 Enterprise。具有光纤通道连接的集中存储。

我的SQL Server DB. 我有 2 个file groups:一个带有实时数据 (FG1),第二个带有历史数据 (HDG)

第二个文件组是read-only. 每个月我都会在分区中移动 - 我将新数据(来自上个月)添加到历史数据中。这个过程是自动的

我们将数据库移至新服务器。最初,我必须手动完成该过程。在此操作期间,我的镜像出现故障(在操作 3 之后 - 请参阅下面的流程流程)并出现以下错误:

在主服务器上:

日志中的第 0 行:

Date        15.6.2015 20:54:11
Log     SQL Server (Current - 16.6.2015 07:55:00)

Source      spid84

Message
Setting database option MULTI_USER to ON for database MYDB.
Run Code Online (Sandbox Code Playgroud)

日志中的第 1 行:

Date        15.6.2015 20:54:11 …
Run Code Online (Sandbox Code Playgroud)

sql-server mirroring partitioning vmware

9
推荐指数
1
解决办法
1066
查看次数

SQL Server DB 一夜之间变得无法使用

昨天,我的 SQL Server 数据库很好。今天它几乎无法使用 - 它的速度减慢了五到二十倍,具体取决于我何时击中它。

一些数据是在夜间加载过程中添加到服务器的,但没有什么能比得上对数据库产生如此大影响的卷。大约 50,000 条纯文本记录(没有 XML 或其他花哨的东西)。

在我们重新启动服务器之前,今天早上打了补丁。但是,我们其他也打过补丁的数据库服务器的行为都没有不同。

资源监视器似乎表明它的磁盘 IO 有问题。它始终以接近 100% 的容量运行 .mdf 文件,即使数据库中实际发生的事情不多。对 Templog.ldf 的访问也非常频繁。

这里没有专家 DBA(我们都是具有不同 SQL 技能的开发人员),我们都对发生的事情感到困惑。我们尝试运行 sp_updatestats 并将一些大索引移动到不同的磁盘,但无济于事。

我认为这一定与补丁有关 - 这似乎太巧合了。一位同事确信是数据负载导致 mdf 的大小增加到导致执行计划效率低下的程度。

这到底是什么造成的?我们如何才能找到,我们可以做些什么来解决它?

编辑:

使用sp_WhoIsActive没有发现任何异常。它记录了我自己对 sproc 的使用以及来自当前正在尝试移动另一个索引的同事的一些命令。这可能现在阻止了数据库,但它之前的运行情况一样糟糕。

它是 SQL Server 2008 R2 的标准版本。SELECT @@VERSION给出:

Microsoft SQL Server 2008 R2 (SP2) - 10.50.4033.0 (X64)
2014 年 7 月 9 日 16:04:25
版权所有 (c) Microsoft Corporation 标准版(64 位),Windows NT 6.1(内部版本 7601:Service Pack 1)(管理程序) )

该服务器具有 72GB 的 RAM …

sql-server sql-server-2008-r2

9
推荐指数
1
解决办法
377
查看次数

我想在不切换数据库的情况下将用户/登录名添加到另一个数据库中的角色

我有一个“新”的数据库角色/登录mynewdb与角色"emailsender"。我已经编写了一个配置文件,sp_send_dbmail现在正在尝试编写将登录名添加到DatabaseMailUserRolein 的脚本,msdb并且似乎在绕圈子。重要的是,我想在mynewdb. 我知道我可以SSMS用来做到这一点。问题是:

如何编写脚本将用户T-SQLmynewdb数据库添加到角色中而不切换到msdb

sql-server role t-sql

9
推荐指数
1
解决办法
137
查看次数

sql server 最大内存包括 SSIS?

我在以下服务器上安装了 2 个 sql server 和 SSIS 实例。

请注意 RAM 量接近 384 GB

在此处输入图片说明

在此处输入图片说明

这是我应用于 2 个实例的最大和最小内存设置。我假设两个实例将使用相同数量的资源,如果真的是这样,184,320 MB 也就是 180 GB 是设置内存的一个很好的起始数字?

我会为 SSIS 分配多少内存?

sql-server memory ssis sql-server-2014 ssis-2014

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

SQL Server 配置中的 SQL Server 服务为空

当我从 Windows 8.1 升级到 Windows 10 时,我注意到 SQL Server 配置管理器中的 SQL Server 服务是空的。目前,SQL Server 仍然运行良好。SQL Server 2014 安装在本地计算机上。

我读过博客 - https://www.mssqltips.com/sqlservertip/2492/why-is-sql-server-configuration-manager-missing-services/http://www.sqlservercentral.com/Forums/Topic1469391- 1292-1.aspx仍然无法解决问题。

我备份了数据库,卸载并重新安装,但节点仍然是空的。我该怎么办?

更新了屏幕截图

在此处输入图片说明

SQL Server 配置管理器屏幕

在此处输入图片说明

sql-server sql-server-2014 windows-10

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

dm_exec_describe_first_result_set_for_object 用于多个结果集

是否存在为存储过程中的所有结果集返回元数据的过程?

类似于sys.dm_exec_describe_first_result_set_for_object,但对于所有结果集?

最终,我想发现数据库中每个存储过程中每个结果集的元数据。现在,我只会满足于sys.dm_exec_describe_first_result_set_for_object无法描述的结果集。即第 2、第 3 和第 N 个结果集。

现在考虑使用 SQLCLR 来执行此操作:

如何保存具有多个结果集的过程的结果
tSQLt - SQL Server 的 DB 单元测试 - ResultSetFilter.cs

sql-server metadata sql-clr

9
推荐指数
1
解决办法
1592
查看次数

零或一到零或一

如何以最自然的方式在 Sql Server 中建模零或一到零或一的关系?

有一个“危害”表,列出了现场的危害。有一个“任务”表用于需要在站点上完成的工作。有些任务是为了修复一个危险,没有一个任务可以处理多个危险。有些危害有修复它们的任务。任何危险都不能有两项相关的任务。

以下是我能想到的最好的:

CREATE TABLE [dbo].[Hazard](
  [HazardId] [int] IDENTITY(1,1) NOT NULL,
  [TaskId] [int] NULL,
  [Details] [varchar](max) NULL,
 CONSTRAINT [PK_Hazard] PRIMARY KEY CLUSTERED 
(
  [HazardId] ASC
))

GO

ALTER TABLE [dbo].[Hazard]  WITH CHECK ADD  CONSTRAINT [FK_Hazard_Task] FOREIGN KEY([TaskId])
REFERENCES [dbo].[Task] ([TaskId])
GO


CREATE TABLE [dbo].[Task](
  [TaskId] [int] IDENTITY(1,1) NOT NULL,
  [HazardId] [int] NULL,
  [Details] [varchar](max) NULL,
 CONSTRAINT [PK_Task] PRIMARY KEY CLUSTERED 
(
  [TaskId] ASC
))

GO

ALTER TABLE [dbo].[Task]  WITH CHECK ADD  CONSTRAINT [FK_Task_Hazard] FOREIGN KEY([HazardId])
REFERENCES [dbo].[Hazard] …
Run Code Online (Sandbox Code Playgroud)

foreign-key sql-server sql-server-2008-r2

9
推荐指数
1
解决办法
1759
查看次数

无法在扩展事件会话中观看实时数据

我在我的 PC 上运行 SQL Server 2014 Developer Edition。我正在尝试查看 system_health 会话中的数据。在SSMS中,我已经连接到数据库,扩展了服务器/管理/扩展事件/会话。我看到 AlwaysON_health(停止)和 system_health(运行)。

当我右键单击 system_health 会话时,出现以下错误:

使用提供的参数初始化存储失败。(Microsoft.SqlServer.XEventStorage) 找不到名为“system_health”的扩展事件会话。确保会话存在并已启动。(Microsoft SQL Server,错误:25728)

我展开 system_health 并看到目标 package0.event_file 和 package0.ring_buffer。如果我右键单击任一目标并选择“查看目标数据”,则会出现此错误:

使用提供的参数初始化存储失败。(Microsoft.SqlServer.XEventStorage) 无法查看函数“fn_MSXe_read_event_stream”,因为它不存在或您没有权限。(Microsoft SQL Server,错误:15151)

该功能确实存在。我可以运行它:

select * from fn_MSXe_read_event_stream('system_health', 0);
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到此错误:

Msg 25728, Level 16, State 10, Line 6
The Extended Events session named "system_health" could not be found. Make  sure the session exists and is started.
Run Code Online (Sandbox Code Playgroud)

我知道 system_health 会话在那里。我在会议列表中看到:

select * from sys.dm_xe_sessions

address name       name
------------------ ------------- 
0x00000001FF6510C1 system_health
Run Code Online (Sandbox Code Playgroud)

我已经用我自己的自定义事件会话尝试过这个。我也看不到他们的实时数据。

我可以从sys.dm_xe_session_targets. …

sql-server extended-events sql-server-2014

9
推荐指数
1
解决办法
3698
查看次数

NoSQL:什么是非结构化数据?

我们目前正在使用基于 mssql 服务器的解决方案在资源边缘运行。

我们现在有许多关于下一步处理负载的传统选择:

  • 购买更快的 CPU 和 IO
  • 将一些客户拆分为单独的服务器
  • 将数据库移动到集群

在许可和硬件或时间方面,所有这些都是昂贵的。因此,我想通过将整个系统移动到 nosql 引擎 cassandra 承诺的可扩展解决方案来添加另一个选项。

然而,我不确定也没有使用 noSQL 数据库的经验,所以我需要了解“非结构化”数据的结构。

在我们的应用程序中,我们基本上将用户以各种方式输入的数据存储为“键值”列表。有一个父表,其中包含头元素(如 Order),还有一个子表,其中包含包含订单内容的键值对(如 Order_Lines)。

在业务方面,Order 和 OrderLines 是一个单元。但是由于 RDBMS,它们存储在表中并且必须一直连接。

在操作过程中,我们有时会选择只加载顶部,但大多数时候,我们加载头部行+一些KVP来显示一些有用的信息。

例如,在概览列表中,我们在每行的列中显示头部标识符 + 一些值。

更新:我们存储任何形式的表格。所以,基本上我们存储“文件”。然而,我们必须准备并通过任何值、排序等来搜索这些表单。数据访问控制为数据库增加了另一层复杂性。

您可能会猜到,某些 KVP 的数量和可用性因对象而异。没有为每种对象创建单个表的有效可能性,因为我们必须为不同的数据组合创建数千个表。

这种“字典”之类的数据集会更好地存储在 noSQL 数据库中吗?我们会从中获得性能优势吗?cassandra 会将这些 head+KVP 建模为一个数据集吗?查看 cassandra 网页和一些教程,我的印象是,我们的 RDBMS 和 cassandra 在数据组织方面没有太大区别——如果您想选择 5 个 KVP,那么我们的连接数量也相同对于每一行的列表。

欢迎启蒙,也可以提供解释问题的论文的指针。

nosql database-design sql-server cassandra

9
推荐指数
2
解决办法
1952
查看次数

查询 DMV sys.dm_os_performance_counters 时返回零行

我有一个用户SQL Server 2014 Standard Edition (RTM)具有SYSADMIN与服务器视图状态权限的角色,但是当我执行DMVsys.dm_os_performance_counters返回没有记录。

知道权限有什么问题吗?

在此处输入图片说明

@@Version 的输出:

Microsoft SQL Server 2014 - 12.0.2000.8 (X64) 2014 年 2 月 20 日 20:04:26 版权所有 (c) Microsoft Corporation Standard Edition(64 位)在 Windows NT 6.3(Build 9600:)(Hypervisor)上

sql-server dmv sql-server-2014

9
推荐指数
1
解决办法
1222
查看次数