小编Han*_*non的帖子

SQL Server 2012 故障转移群集是否需要 MSDTC?

我正在制作一个 2 节点 SQL Server 2012 故障转移群集;我需要安装 MSDTC 组件吗?

如果是,两者都可以安装在单个共享磁盘上吗?

sql-server clustering sql-server-2012 failover msdtc

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

将 SQL Server 2008 数据库从机器 A 移动到 B 而不停机

我有点问题。我在框 A 中有一个 SQL Server 数据库,其中包含大约 60GB 的数据。我需要把它移到一台新机器上,但我根本没有停机时间。数据库中每一秒都有新数据,所以我们不能在半夜的某个随机时间进行。

有没有办法实现这一目标?我几乎可以做任何我想做的事情,所以任何建议都会有用。

sql-server-2008 sql-server migration

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

SQL Server 的 FILETABLE 是否适合存储大文件(大于 10 GB)?

有一个实验室项目。需要为研究保存实验室数据(原始数据相关信息)多年。

所以数据必须保存多年,但是数据这么大,每一个原始数据都超过10GB。如果我们将原始数据存储在 SQL Server 中FILETABLE,并将相关信息存储在标准 SQL Server 表中,几个月或几年后,数据库大小将如此之大,以至于我们必须将一些历史数据移出数据库。

也许我们可以使用将文件(在不同的硬盘上)添加到FILESTREAMfiletable的文件组(存储原始数据),但我觉得这不适合维护SQL Server。我们必须保持原始数据和相关信息的一致性。

我们考虑过使用磁带来保存历史原始数据。我们想用硬盘来保存最新的原始数据,用磁带来保存历史的原始数据。当我们将历史数据移动到磁带上时,我们将移动记录在日志表中,这样我们就可以知道历史数据移动到哪里并尽快提取。

有没有好的建议:

  1. 如何存储原始数据和相关信息?
  2. filetable适合这种情况?
  3. 这种情况有更好的解决方案吗?

sql-server backup architecture filetable

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

SQL Server 全文搜索 - .rtf 文件被 rtf 标签错误地索引

我已经在我的 SQL Server DB 上的一varbinary(max)列上设置了全文索引。我指定了一个类型列,其中包含文件的扩展名,例如“.doc”、“.pdf”等。

但是,我注意到当任何 .rtf 文件被索引时,SQL 将包含文件中的所有元信息(例如 RTF 标记“listoverridecount0”)。

这使索引膨胀很多,也意味着搜索将匹配这些标签(即我可以搜索“listoverridecount0”并返回每个 .rtf)。

.rtf 的 iFilter 是否有任何理由不会删除 RTF 标签?

当我运行这个:

SELECT * FROM sys.fulltext_document_types WHERE document_type = '.rtf';
Run Code Online (Sandbox Code Playgroud)

我明白了:

document_type  .rtf                                     
class_id       C7310720-AC80-11D1-8DF3-00C04FB6EF4F 
path       c:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn\msfte.dll
version        12.0.6828.0
manufacturer   Microsoft Corporation
Run Code Online (Sandbox Code Playgroud)

我已提交Microsoft Connect 错误,因为我似乎无法找到任何解决方法。据推测,这是 a) RTF iFilter 未删除标签的错误,或 b) 全文索引问题。

我的 SQL Server 版本是:

Microsoft SQL Server 2012 (SP1) - 11.0.3393.0 (X64) 
2013 年 10 月 25 日 19:04:40 
版权所有 (c) 微软公司 …

sql-server full-text-search sql-server-2012

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

SQL Server 2008 R2 从文件还原数据库 - “失败:38(无法检索此错误的文本。原因:15105)”

我在客户端服务器上创建的备份文件上运行数据库还原,备份文件已移动到我们的服务器(相同的 SQL 版本 2008 R2),并且在 T-SQL 之后我收到以下错误运行了将近7分钟:

TSQL:

RESTORE DATABASE [Charms_OrangeGrove]   
FROM    DISK = N'S:\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\Charms_OrangeGrove_290114.bak'   
    WITH  MOVE N'CharmsData_dat'   
          TO N'S:\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Charms_OrangeGrove.mdf',    
          MOVE N'CharmsData_log' 
          TO N'S:\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Charms_OrangeGrove_Log.ldf'
Run Code Online (Sandbox Code Playgroud)

错误:

Msg 3203, Level 16, State 1, Line 1
Read on "S:\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\Charms_OrangeGrove_290114.bak" 
    failed: 38(failed to retrieve text for this error. Reason: 15105)
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.
Run Code Online (Sandbox Code Playgroud)

sql-server-2008-r2

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

带有数据库镜像的 Ola Hallengren

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

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

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

SQL Server:为现有索引创建新的 GUID 值

我有一个大约有 600 万行的现有表。相关栏目有:

ID int not null PK
Key uniqueidentifier not null
Run Code Online (Sandbox Code Playgroud)

通过Key查找对该表的读/写可能类似于 100 比 1。

现有的行都是使用创建的,newid()所以它们没有顺序。存在一个索引Key

CREATE NONCLUSTERED INDEX [idx_Robert] ON [dbo].[Aleksander]
(
    [Key] ASC
) WITH (PAD_INDEX = OFF
    , STATISTICS_NORECOMPUTE = OFF
    , SORT_IN_TEMPDB = OFF
    , DROP_EXISTING = OFF
    , ONLINE = OFF
    , ALLOW_ROW_LOCKS = ON
    , ALLOW_PAGE_LOCKS = ON
    , FILLFACTOR = 80
    ) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

鉴于表中已经有数百万行,将 GUID 生成更改为顺序使用有什么好处newsequentialid()

展望未来,它将生成更好的数据,但由于不知道新的顺序 GUID 系列将在索引中的哪个位置,它会更快地破坏索引吗?将 GUID 生成保留为非顺序是否会更好,以便索引中的剩余页面空间更均匀地填充?

就表的增长率而言,它代表了大约3年的数据。

Year …
Run Code Online (Sandbox Code Playgroud)

index sql-server uniqueidentifier sql-server-2012 uuid

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

在多台服务器上共享服务帐户有哪些风险(如果有)?

我将域帐户用于 SQL Server 服务帐户。有时,当我有多个在逻辑上或主题上相关的服务器时,我会为所有服务器上的服务帐户使用相同的域帐户集。每个服务器上的用户帐户权限可能不同,但通常有很多重叠。

我的问题的要点是:有权访问一个实例而不是另一个实例的用户可以利用共享服务帐户来访问另一台服务器吗?

这是我试图解决的具体情况:

  • 我有两台带有默认 SQL 实例的服务器,分别称为 org-sql-1 和 org-sql-2。
  • 我为每个服务使用一个域帐户,所以我有 mydomain\orgDBService、mydomain\orgAgentService 等(虽然我不确定这是否严格相关——我想如果我使用单个帐户所有服务)。
  • 但是我在两台服务器上重复使用这些域帐户,因此 org-sql-1 和 org-sql-2 上的数据库服务都在 mydomain\orgDBService 下运行,例如。

迄今为止,我从未特别质疑安全隐患,因为这些服务器具有共同的用途和用户群,即使特定的用户权限可能不同。

现在,我们要添加第三个实例,我们称之为 org-sql-rpt。这个主题与其他主题非常契合,但有一个关键区别:我们将允许外部合作伙伴(即不是我们组织的员工)访问此服务器,如下所示:

  • 他们的凭据将拥有(属于 db_owner)几个数据库。
  • 但它们不属于任何服务器角色(当然,公共角色除外)。
  • 在启用此服务器之前,他们可能在有限的时间内拥有对操作系统桌面的管理员访问权限。
  • 他们不会知道服务帐户的密码。

鉴于此,我是否应该担心将域帐户重用作此新实例的服务帐户?此人是否有任何风险可以使用他们在 org-sql-rpt 上的合法凭据来访问 org-sql-1 或 org-sql-2?(即可以通过使用不同的服务帐户凭据来减轻任何风险?)

还是出于其他原因,这只是一个普遍的坏主意?

编辑

新实例将托管数据库、集成和报告服务(至少目前是这样)。没有分析服务。

外部用户将拥有提升的数据库权限,但没有明确的实例权限。例如,他们将无法创建登录名、作业或报告。

security sql-server sql-server-2008-r2

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

备份中缺少 CDC 系统表

我正在将使用 CDC 的数据库从 SQL Server 2008 R2 迁移到 SQL Server 2012。

对象资源管理器的“系统表”分支下有CDC相关的表:

cdc.ddl_history
cdc.lsn_time_mapping
cdc.captured_columns
cdc.index_columns
cdc.change_tables
Run Code Online (Sandbox Code Playgroud)

备份数据库并在不同的服务器上恢复后,CDC 相关的表不存在。

我尝试使用 SSIS 复制它们,但它们在“导出数据”向导 GUI 中不可见。似乎实际复制它们的唯一方法是手动导出它们或将SELECT * FROM...结果输出到文件。

如何确保正确恢复变更数据捕获相关表?

sql-server-2008 sql-server sql-server-2012 change-data-capture

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

SELECT xyz INTO #Temp from SSMS 在一种环境中比另一种环境长 5 倍

第一次发帖,希望我做对了。

我是一个“偶然的 dba”,他正在学习很多东西,但不可否认还有很多东西要学。这是我的大脑转储:

  1. Prod 服务器有 500 万行。我将这些行复制到测试服务器。
  2. 使用 SNAPSHOT 或 READ UNCOMMITTED 会产生不同的经过时间,但 Prod 和 Test 之间的比率始终约为 5:1(SNAPSHOT 为 14 分钟:3 分钟,READ UNCOMMITTED 为 4 分钟:sub-1)
  3. 使用 STATISTICS IO ON 显示 Prod 上的大多数读取是逻辑的(~90%),而 Test 上的读取都不是逻辑的。我这应该意味着 Prod 会更快。
  4. 大多数时间似乎将等待“PAGEIOLATCH_SH”类型。
  5. 我不认为不同的统计数据无关紧要,因为不应在未过滤、未连接、未排序的查询上使用任何索引。
  6. 选择两台服务器上的前 n 行显示了一个非常线性的比例……比例总是 ~5:1。
  7. 比较不是一一对应,但我认为唯一相关的区别是活动和存储。
  8. 我在几乎没有活动时进行了比较,并看到了相同的结果。
  9. 我发现 autogrowth 设置为 1MB(呃),我已经改变了,但我想知道这是否导致文件系统级别的存储碎片化。
  10. 该数据库位于与 Windows 安装不同的卷上,但它确实与 tempdb 和 FILESTREAM 存储共享一个卷,我认为这也可能导致存储碎片化。
  11. “优化驱动器”Windows 实用程序表示该卷“正常(98% 空间效率)”,这似乎表明文件系统碎片可能不是问题。

问题:

  • 我上面的想法假设是否正确?
  • 在我的思考过程中有什么我公然忽视的吗?
  • 在此故障排除过程的后续步骤中,哪些是合适的候选者?
  • 我可以/应该提供哪些其他信息?
  • 感谢您的关注和帮助!

    编辑:在第二条语句中添加了剩余时间信息。

    performance sql-server latch

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