適用於SQL Server生產環境DBA的七大技巧

weixin_30488085發表於2020-04-06
原文轉自:http://database.ctocio.com.cn/452/8976452.shtml
由於SQL Server的普及程度非常高,也出現了大量的輔助工具,讓DBA感覺眼花繚亂,為了避免在這些工具堆中不知所措,本文將向那些管理生產系統的DBA提供一些工具選擇及使用方面的技巧,讓他們的工作變得更簡單。

  1、使用forfiles命令刪除陳舊的資料庫備份檔案

  從Windows Server 2003開始forfiles命令就是Windows的一個自帶命令列工具,它主要用於對檔案的批處理,利用SQL Server代理作業,加上這個工具,可以刪除SQL Server陳舊的資料庫備份檔案,以往這個工作一般都依賴於SQL Server維護計劃、xp_cmdshell擴充套件儲存過程,或VBScript物件。下面的forfiles命令刪除了E:\sqlbackup資料夾下兩天及兩天以前的所有.bak檔案。

  forfiles /p "e:\sqlbackup" /m "*.bak" /c "cmd /c del /Q @path" /d -2

  關於forfiles的具體用法請檢視其命令列幫助說明,或參考微軟的官方文件:http://technet2.microsoft.com/WindowsServer/en/Library/9660fea1-65c7-48cf- b466-204ba159381e1033.mspx。

  2、使用ALTER USER WITH LOGIN修復孤兒登入

  從SQL Server 2005 SP2開始,T-SQL的ALTER USER命令就包含了WITH LOGIN子句,這個子句通過修改資料庫使用者的SID為伺服器登入的安全識別符號修復孤兒登入,它可以同時修復Windows和SQL Server登入的功能。從另一個伺服器恢復資料庫,登入是獨立的建立的(不是從其它伺服器複製過來的),這個時候建立的就是孤兒使用者。關於ALTER USER WITH LOGIN的詳細情況,請參考Laurentiu Cristofor的部落格文章"SQL Server 2005:SP2中的一些新特性",或者參考SQL Server線上電子書中關於ALTER USER命令的頁面。

  3、使用sp_addsrvrolemember將自己提升為sysadmin角色

  在SQL Server 2005中,預設情況下,Windows內建的Administrators組沒有授予它sysadmin角色,作為Windows系統管理員,你可以講 SQL Server啟動到單使用者模式(即維護模式),然後在Sqlcmd命令列環境中執行sp_addsrvrolemember系統儲存過程,將你的 Windows登入使用者新增到sysadmin角色。更多資訊請參考Raul Garcia的部落格文章"災難恢復:SQL Server 2005中SA賬號密碼丟失時該怎麼辦"

  4、使用PortQryUI排除連線故障

  為了解決TCP/IP連線問題,可以選擇微軟提供的PortQryUI工具,這個工具和PortQry一樣好用,其實它就是在PortQry外面套了一層外衣,它內建了一些服務,如一組埠掃描,包括UDP 1434和TCP 1433埠。因此,要檢查這些埠的話,只需要輸入目標SQL Server例項的IP地址或完全限定名(FQDN)即可,如果檢查到埠可訪問,PortQryUI就會告訴你埠正在監聽,否則,它會告訴你埠可能被過濾掉了,或者沒有監聽。可以從http://www.microsoft.com/downloads /details.aspx?FamilyID=8355e537-1ea6-4569-aabb-f248f4bd91d0& displaylang=en下載這個好用的工具。

  5、在大型資料庫上執行DBCC CHECKDB時採用不同的策略

  由於資料庫越變越大,使用諸如T-SQL的DBCC CHECKDB命令列工具檢查資料庫的完整性將會耗費很長時間。如果執行DBCC CHECKDB時超出了分配的維護視窗週期該怎麼辦?Paul S. Randal在他的部落格中提供了幾種方法(部落格連結:http://sqlskills.com/BLOGS/PAUL/post/CHECKDB- From-Every-Angle-Consistency-Checking-Options-for-a-VLDB.aspx),其中一個解決辦法就是一臺獨立的伺服器上使用備份還原資料庫,然後再在這個伺服器上執行DBCC CHECKDB,另一個解決辦法就是設定資料庫的頁面驗證選項(從CHECKSUM改為PHYSICAL_ONLY),然後再執行DBCC CHECKDB,這樣執行DBCC CHECKDB的時間就大大減小了,但它仍然會影響I/O子系統和頁面腐化。

6、使用匯入包選項將SQL Server整合服務(SSIS)部署到msdb資料庫上

  SSIS有多種部署方法,最簡單的方法是將SSIS部署到SQL Server的msdb資料庫下,在In SQL Server Management Studio (SSMS)中,連線到整合服務,在儲存包下,在MSDB資料夾上點選右鍵,然後選擇匯入包,在彈出的對話方塊中,選擇SSIS包的當前位置和名字,根據伺服器儲存和訪問控制角色設定保護級別,然後點選確定按鈕。手動拷貝與SSIS包相關的所有XML配置檔案到目標伺服器,如果這個包使用SQL Server配置,在匯入之前,可能需要使用正確的伺服器名更新連線SQL Server的連線字串。詳細資訊請參考SQL Server線上電子書中的"如何使用整合服務服務匯入包"頁面。

  7、使用SQL Server 2008的本地伺服器組和中央管理伺服器同時查詢多個伺服器

  在SQL Server 2008中,你可以使用本地伺服器組快速連線到那些你經常管理的伺服器,也可以使用中央管理伺服器來儲存伺服器的註冊後設資料,這樣團隊成員就可以使用相同的註冊資訊,可以包括SQL Server 2008、SQL Server 2005和SQL Server 2000伺服器。在SSMS中,可以查詢本地伺服器組或中央管理伺服器中的伺服器,並可以合併查詢結果,進入SSMS已註冊伺服器視窗,在本地伺服器組或中央管理伺服器上點選右鍵,選擇新建查詢,在查詢編輯器中,輸入T-SQL命令,點選執行,將會得到一個包含兩列的結果集,第一列包括每個伺服器的名字,第二列就是從該伺服器的命令輸出內容。詳細資訊請參考SQL Server線上電子書中的"如何對多個伺服器同時執行語句(SQL Server管理控制檯)"。

轉載於:https://www.cnblogs.com/ylqmf/archive/2010/05/24/1742854.html

相關文章