原文地址:https://dzone.com/articles/five-tips-for-sql-dbas-to-work-efficiently-in-prod
原文作者:Priyanka Chauhan
在生產(chǎn)環(huán)境中高效工作可以極大程度的提高性能影響。在本文中,我們將學(xué)習(xí)可以使DBA日常工作更順暢的5個小技巧。
在生產(chǎn)環(huán)境中高效工作,即使是很小的變化也會對性能有極深的影響,您可以通過遵循一些小貼士來確保最佳的數(shù)據(jù)庫性能。在本文中,我們將討論使SQLServer DBA在生產(chǎn)環(huán)境中的工作更輕松的5個技巧。
1. 使用維護(hù)清理任務(wù)實用程序刪除舊備份
雖然備份是高效恢復(fù)計劃的重要組成部分,如果可用的存儲空間是有限的,那么頻繁備份就可能會導(dǎo)致問題。在這種情況下,刪除舊備份可以幫助您及時清理存儲空間。維護(hù)計劃向?qū)е刑峁┑摹扒謇砭S護(hù)任務(wù)”功能(在SQLServer2005及后續(xù)版本中有)可幫助清除過時的數(shù)據(jù)庫備份文件。
使用維護(hù)清理任務(wù),可以從給定位置刪除所有類型的備份(即完全、差異和事務(wù)日志)。但是,在每個維護(hù)清理任務(wù)中只能刪除一種類型的文件。換言之,在單個任務(wù)中,您無法刪除事務(wù)日志文件(.trn)和完全備份文件、差異備份文件(.bak)。即需要創(chuàng)建2個任務(wù)來刪除文件。
如果要刪除使用“清除維護(hù)任務(wù)”創(chuàng)建的舊的SQL備份文件,請按以下步驟操作:
- 展開SQL Server Management Studio(SSMS)中的管理;
- 右鍵單擊維護(hù)計劃,然后選擇新建維護(hù)計劃。指定計劃的名稱,如“刪除舊備份”,然后單擊確定;
- 在維護(hù)計劃設(shè)計器窗口里,從工具箱中拖拽維護(hù)清理任務(wù);
- 在“清理維護(hù)任務(wù)”窗口中,選擇備份文件,指定您想要刪除的對應(yīng)文件類型的備份文件夾和文件擴(kuò)展名。例如,如果需要刪除事務(wù)日志備份,可指定后綴為“trn”的文件,同樣,也可通過指定后綴為“bak”的文件來刪除完整數(shù)據(jù)庫備份。最后,選擇要刪除備份文件的時間;
- 現(xiàn)在,刪除舊備份的任務(wù)將列在維護(hù)計劃下。右鍵點擊它,然后點擊執(zhí)行。當(dāng)您打開備份文件夾時,可以看到兩周前的備份文件已經(jīng)被刪除了。

注:您還可以創(chuàng)建新任務(wù),來運行每周刪除舊備份文件的維護(hù)計劃。
關(guān)于維護(hù)刪除任務(wù)的更多信息,請參考這里:微軟指南
2.將維護(hù)計劃所有者更改為SA
SQL Server中,當(dāng)維護(hù)計劃創(chuàng)建時,登錄到服務(wù)器的用戶是此計劃的所有者。如果所有者的帳戶被鎖定或刪除,那么為調(diào)度任務(wù)(如備份等)創(chuàng)建的維護(hù)計劃就會失敗。通過將維護(hù)計劃的所有者更改為其他帳戶(除了您的域帳戶),則可以確保任務(wù)繼續(xù)執(zhí)行,即使您的帳戶被鎖定或刪除也是如此。但是,當(dāng)一個任務(wù)或者維護(hù)計劃發(fā)生了改變,您可能需要手動更改此任務(wù)的所有者。如果要解決此問題,則需將維護(hù)計劃所有者設(shè)置為SA。
在更改維護(hù)計劃所有者之前,查找當(dāng)前維護(hù)計劃及其所有者尤為重要。為此,請執(zhí)行以下T-SQL查詢:
Use MSDB
GO
SELECT *FROM dbo.sysdbmaintenanceplans
現(xiàn)在運行下面的代碼,將維護(hù)計劃所有者設(shè)置為“sa”。在我們的例子中,我們將“Login_name”替換為使用上述查詢返回的所有者名稱:
Use MSDB
GO
UPDATE msdb.dbo.sysssispackages
SET OWNERSID = SUSER_SID('sa')
WHERE NAME = 'Login_name'
3.使用不同策略在大型數(shù)據(jù)庫中執(zhí)行DBCC CHECKDB命令
對大型數(shù)據(jù)庫使用基本的DBCC CHECKDB命令檢查數(shù)據(jù)庫完整性可能需要更長的時間才能完成。若要在明顯更短的時間內(nèi)運行CHECKDB命令,請嘗試使用其他策略對大型數(shù)據(jù)庫執(zhí)行該命令。
本質(zhì)上講,為了防止DBCC CHECKDB超過維護(hù)周期,可實施Paul S. Randal在博客中討論過的解決方案:即“從各個角度檢查CHECKDB:VLDB的一致性檢查選項”。該博客討論了使用備份在另一臺服務(wù)器上還原SQL數(shù)據(jù)庫,以及將DBCC CHECKDB作為一種解決方案在該服務(wù)器上執(zhí)行。此外,還可以通過使用PHYSICAL_ONLY選項來減少執(zhí)行DBCC CHECKDB的時間。
4.同時查詢多臺服務(wù)器
在生產(chǎn)環(huán)境中單獨查詢數(shù)千個數(shù)據(jù)庫服務(wù)器并不容易。但是,通過創(chuàng)建本地服務(wù)器組或中央管理服務(wù)器,甚至是一個或多個已注冊的服務(wù)器,來同時對多個服務(wù)器執(zhí)行查詢是可行的。為此,可以在SQL Server Management Studio(SSMS)中,選擇已注冊的服務(wù)器,右鍵單擊服務(wù)器組(即本地服務(wù)器組或中央管理服務(wù)器),然后選擇新建查詢。
在查詢編輯器窗口,執(zhí)行如下查詢語句:
USE master
GO
SELECT * FROM sysdatabases;
GO
您將在單個結(jié)果子窗口中得到來自所有服務(wù)器的組合查詢結(jié)果。想要了解更多細(xì)節(jié),可參閱這里:“同時對多個服務(wù)器執(zhí)行語句”。
5.使用專業(yè)的解決方案實現(xiàn)業(yè)務(wù)連續(xù)性
針對生產(chǎn)環(huán)境, DBA的主要職責(zé)是保持SQL Server運行順暢并確保數(shù)據(jù)可用性。但是,災(zāi)難可能會在您最意想不到的時候發(fā)生,并阻礙業(yè)務(wù)連續(xù)性。您可能已經(jīng)投資了災(zāi)難恢復(fù)(DR)解決方案來處理此類意料外的事件。
雖然DR是業(yè)務(wù)連續(xù)性計劃的重要組成部分,但根據(jù)Nationwide的研究:大多數(shù)小企業(yè)決策者(68%)沒有書面的DR計劃。如果DR計劃不存在,則第三方解決方案(如SQL恢復(fù)工具)可以幫助從由于硬件故障、勒索軟件攻擊、軟件錯誤等原因而損壞的數(shù)據(jù)庫中提取數(shù)據(jù)。
小結(jié)
本文討論了使對SQL Server生產(chǎn)環(huán)境進(jìn)行維護(hù)的DBA工作更輕松的五大技巧。這些提示包括刪除舊備份來釋放存儲空間、更改維護(hù)計劃所有者為“sa”來確保任務(wù)(如備份或還原)繼續(xù)進(jìn)行。這里還解釋了有關(guān)對大型數(shù)據(jù)庫執(zhí)行DBCC CHECKDB命令及同時查詢多個服務(wù)器的小貼士。最后,此博客討論了當(dāng)其他所有內(nèi)容都無法使數(shù)據(jù)庫聯(lián)機(jī)時,如何把第三方SQL恢復(fù)工具派上用場。




