暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

【译】SQLServer DBA在生产环境中高效工作的五个技巧

原创 沐言倾心 2022-04-30
1395

原文地址:https://dzone.com/articles/five-tips-for-sql-dbas-to-work-efficiently-in-prod
原文作者:Priyanka Chauhan

在生产环境中高效工作可以极大程度的提高性能影响。在本文中,我们将学习可以使DBA日常工作更顺畅的5个小技巧。

在生产环境中高效工作,即使是很小的变化也会对性能有极深的影响,您可以通过遵循一些小贴士来确保最佳的数据库性能。在本文中,我们将讨论使SQLServer DBA在生产环境中的工作更轻松的5个技巧。

1. 使用维护清理任务实用程序删除旧备份

虽然备份是高效恢复计划的重要组成部分,如果可用的存储空间是有限的,那么频繁备份就可能会导致问题。在这种情况下,删除旧备份可以帮助您及时清理存储空间。维护计划向导中提供的“清理维护任务”功能(在SQLServer2005及后续版本中有)可帮助清除过时的数据库备份文件。

使用维护清理任务,可以从给定位置删除所有类型的备份(即完全、差异和事务日志)。但是,在每个维护清理任务中只能删除一种类型的文件。换言之,在单个任务中,您无法删除事务日志文件(.trn)和完全备份文件、差异备份文件(.bak)。即需要创建2个任务来删除文件。

如果要删除使用“清除维护任务”创建的旧的SQL备份文件,请按以下步骤操作:

  • 展开SQL Server Management Studio(SSMS)中的管理
  • 右键单击维护计划,然后选择新建维护计划。指定计划的名称,如“删除旧备份”,然后单击确定
  • 在维护计划设计器窗口里,从工具箱中拖拽维护清理任务
  • 在“清理维护任务”窗口中,选择备份文件,指定您想要删除的对应文件类型的备份文件夹和文件扩展名。例如,如果需要删除事务日志备份,可指定后缀为“trn”的文件,同样,也可通过指定后缀为“bak”的文件来删除完整数据库备份。最后,选择要删除备份文件的时间;
  • 现在,删除旧备份的任务将列在维护计划下。右键点击它,然后点击执行。当您打开备份文件夹时,可以看到两周前的备份文件已经被删除了。
    图片.png

注:您还可以创建新任务,来运行每周删除旧备份文件的维护计划。

关于维护删除任务的更多信息,请参考这里:微软指南

2.将维护计划所有者更改为SA

SQL Server中,当维护计划创建时,登录到服务器的用户是此计划的所有者。如果所有者的帐户被锁定或删除,那么为调度任务(如备份等)创建的维护计划就会失败。通过将维护计划的所有者更改为其他帐户(除了您的域帐户),则可以确保任务继续执行,即使您的帐户被锁定或删除也是如此。但是,当一个任务或者维护计划发生了改变,您可能需要手动更改此任务的所有者。如果要解决此问题,则需将维护计划所有者设置为SA。

在更改维护计划所有者之前,查找当前维护计划及其所有者尤为重要。为此,请执行以下T-SQL查询:

Use MSDB

GO

SELECT *FROM dbo.sysdbmaintenanceplans

现在运行下面的代码,将维护计划所有者设置为“sa”。在我们的例子中,我们将“Login_name”替换为使用上述查询返回的所有者名称:

Use MSDB

GO

UPDATE msdb.dbo.sysssispackages

 SET OWNERSID = SUSER_SID('sa')

WHERE NAME = 'Login_name'

3.使用不同策略在大型数据库中执行DBCC CHECKDB命令

对大型数据库使用基本的DBCC CHECKDB命令检查数据库完整性可能需要更长的时间才能完成。若要在明显更短的时间内运行CHECKDB命令,请尝试使用其他策略对大型数据库执行该命令。

本质上讲,为了防止DBCC CHECKDB超过维护周期,可实施Paul S. Randal在博客中讨论过的解决方案:即“从各个角度检查CHECKDB:VLDB的一致性检查选项”。该博客讨论了使用备份在另一台服务器上还原SQL数据库,以及将DBCC CHECKDB作为一种解决方案在该服务器上执行。此外,还可以通过使用PHYSICAL_ONLY选项来减少执行DBCC CHECKDB的时间。

4.同时查询多台服务器

在生产环境中单独查询数千个数据库服务器并不容易。但是,通过创建本地服务器组或中央管理服务器,甚至是一个或多个已注册的服务器,来同时对多个服务器执行查询是可行的。为此,可以在SQL Server Management Studio(SSMS)中,选择已注册的服务器,右键单击服务器组(即本地服务器组或中央管理服务器),然后选择新建查询

在查询编辑器窗口,执行如下查询语句:

USE master  

GO  

SELECT * FROM sysdatabases;  

GO    

您将在单个结果子窗口中得到来自所有服务器的组合查询结果。想要了解更多细节,可参阅这里:“同时对多个服务器执行语句”

5.使用专业的解决方案实现业务连续性

针对生产环境, DBA的主要职责是保持SQL Server运行顺畅并确保数据可用性。但是,灾难可能会在您最意想不到的时候发生,并阻碍业务连续性。您可能已经投资了灾难恢复(DR)解决方案来处理此类意料外的事件。

虽然DR是业务连续性计划的重要组成部分,但根据Nationwide的研究:大多数小企业决策者(68%)没有书面的DR计划。如果DR计划不存在,则第三方解决方案(如SQL恢复工具)可以帮助从由于硬件故障、勒索软件攻击、软件错误等原因而损坏的数据库中提取数据。

小结

本文讨论了使对SQL Server生产环境进行维护的DBA工作更轻松的五大技巧。这些提示包括删除旧备份来释放存储空间、更改维护计划所有者为“sa”来确保任务(如备份或还原)继续进行。这里还解释了有关对大型数据库执行DBCC CHECKDB命令及同时查询多个服务器的小贴士。最后,此博客讨论了当其他所有内容都无法使数据库联机时,如何把第三方SQL恢复工具派上用场。

最后修改时间:2022-05-21 16:07:56
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
2人已赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论