小编SQL*_*Boy的帖子

如何使数据库备份更快?

我最近参加了下一份工作的面试,并被问到:

如何在 SQL Server 中加快大小接近 1TB 或 800 GB 的数据库的备份?

我的回答:我们可以使用数据库压缩或使用 Light Speed 之类的第三方工具。

但他们期待这个我不知道的答案:

解决方案:通过添加更多目标文件来提高吞吐量

例子

我通过添加更多备份目标文件创建了这个示例脚本:

DBCC TRACEON (3605, -1) 
DBCC TRACEON (3213, -1) 

BACKUP DATABASE [AdventureWorks2008] TO 
    DISK = N'E:\ADWBackup\AdventureWorks2008-Full.bak',
    DISK = N'E:\ADWBackup\AdventureWorks2008-Full-File2.bak', 
    DISK = N'E:\ADWBackup\AdventureWorks2008-Full-File3.bak'
WITH 
    NOFORMAT, INIT, NAME = N'AdventureWorks2008-Full Database Backup', 
    SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10 

DBCC TRACEOFF(3605, -1) 
DBCC TRACEOFF(3213, -1)
Run Code Online (Sandbox Code Playgroud)

能否请您回答以下问题:

  1. 遵循这种方法而不是使用单个文件有什么用?
  2. 如果我这样做会有任何时差吗?
  3. 如何使用多个拆分文件恢复数据库?
  4. 真的会提高备份速度吗?

sql-server-2008 sql-server backup

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

由于 T-SQL 查询的注释部分,SQL 查询失败

我正在执行下面的查询,但我遇到了问题。

注意:SQL 2008 R2 和 SQL 2014 在 Win 2008 R2 和 Win 2012 R2 上使用两个差异服务帐户运行。TCP 端口、防火墙端口都与远程连接一起启用,我能够在本地机器上执行代码(例如:如果我连接到 SQL 2008 R2 机器并在 SQL 2008 R2 上执行成功,如果我连接到 SQL 2014 机器成功在 SQL 2014 上的 SSMS 上。问题仅在我连接到 SQL 2008 R2 并在 SQL 2014 上执行时出现。当我删除注释部分时,我能够使用 SQLCMD 成功执行代码。)我不知道这有任何兼容性问题案件。

Msg 121, Level 20, State 0, Line 0
从服务器接收结果时出现传输级错误。(提供者:TCP 提供者,错误:0 - 信号量超时期限已过期。)

但是当我删除注释部分并执行查询时,它在几秒钟内成功运行。请让我知道评论部分有什么问题。我在下面粘贴了 T-SQL 查询。

/********************************************************************************
* Summary: Creates source database schema for BCP Import. Only created PK on the tables
* No other constraints are replicated
* …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server-2008-r2 sql-server-2014

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

暂时停止日志传送

如何暂时停止日志传送 --> 执行任务 --> 启动日志传送?是否可以 ?

sql-server sql-server-2008-r2 log-shipping

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

聚集索引和非聚集索引创建后删除会发生什么

集群索引和非集群索引创建后,当我们删除它们时会发生什么?

根据 Clustered Index ,叶子级别的数据会发生什么?

sql-server clustered-index sql-server-2008-r2 nonclustered-index sql-server-2014

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

SQL Server 登录访问权限因每日数据库刷新而被撤销

场景:我已向开发团队授予数据库的 dbdatareader 访问权限。他们确实进行了每日数据库刷新。因此,由于此数据库刷新作业,登录(SQL 登录)的权限每天都会被撤销。

由于开发团队无法在数据库刷新后添加块来自动添加权限,作为系统管理员我应该如何处理这种情况。我每天都会收到授予该数据库只读访问权限的票证。由于安全问题,我无法授予他们 dbaccessadmin 权限。

请指教。

sql-server permissions

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

具有可用性组的 tempdb 的任何不同指南?

我在两节点 Windows Server 故障转移群集上运行的 SQL Server 2014 上设置了一个可用性组。设置由两个独立实例 + 同步自动故障转移组成。

我读过的许多 Microsoft 文章都提倡为 TempDB 使用多个文件来提高性能。似乎他们建议使用 8 个文件。

在这种配置的情况下,我应该这样做吗?它会提高性能吗?

sql-server tempdb availability-groups sql-server-2014

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

关于透明数据加密的澄清

这是我们第一次在至关重要的生产数据库上应用 TDE,我有以下问题。

当 TDE 正在进行时:

  1. 我们仍然可以使用连接字符串访问正在该数据库上运行的应用程序吗?
  2. 如果 TDE 在加密数据库时失败,是否会破坏 .mdf 文件?我将如何恢复数据库?
  3. .ldf 和 .mdf 是否仍然可以访问,我们可以读取和写入这些文件吗?
  4. TDE进行过程中哪些数据库操作会受到影响?
  5. TDE 会对磁盘使用产生影响吗?
  6. TDE对数据库备份有影响吗?如果启用 TDE,.bak、.trn 文件是否都会自动加密?
  7. 在应用TDE的过程中,我们需要重点关注哪些方面?是否需要停电?
  8. 对 SQL Server 服务包或累积更新会有影响吗?

相关平台是具有可用性组的 SQL Server 2014 SP2 GDR。

sql-server encryption availability-groups transparent-data-encryption sql-server-2014

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