SQL Server數(shù)據(jù)庫(kù)生產(chǎn)環(huán)境DBA的7個(gè)技巧全集
此文章主要向大家講述的是適用于SQL Server數(shù)據(jù)庫(kù)生產(chǎn)環(huán)境DBA的7個(gè)技巧,我們大家都知道由于SQL Server數(shù)據(jù)庫(kù)的普及程度十分的高,隨之也出現(xiàn)了大量的相關(guān)輔助工具,讓DBA感覺(jué)眼花繚亂,為了避免在這些工具堆中不知所措。
本文將向那些管理生產(chǎn)系統(tǒng)的DBA提供一些工具選擇及使用方面的技巧,讓他們的工作變得更簡(jiǎn)單。
1、使用forfiles命令刪除陳舊的數(shù)據(jù)庫(kù)備份文件
從Windows Server 2003開(kāi)始forfiles命令就是Windows的一個(gè)自帶命令行工具,它主要用于對(duì)文件的批處理,利用SQL Server代理作業(yè),加上這個(gè)工具,可以刪除SQL Server陳舊的數(shù)據(jù)庫(kù)備份文件,以往這個(gè)工作一般都依賴于SQL Server維護(hù)計(jì)劃、xp_cmdshell擴(kuò)展存儲(chǔ)過(guò)程,或VBScript對(duì)象。下面的forfiles命令刪除了E:\sqlbackup文件夾下兩天及兩天以前的所有.bak文件。
forfiles /p "e:\sqlbackup" /m "*.bak" /c "cmd /c del /Q @path" /d -2關(guān)于forfiles的具體用法請(qǐng)查看其命令行幫助說(shuō)明。
2、使用ALTER USER WITH LOGIN修復(fù)孤兒登錄
從SQL Server 2005 SP2開(kāi)始,T-SQL的ALTER USER命令就包含了WITH LOGIN子句,這個(gè)子句通過(guò)修改數(shù)據(jù)庫(kù)用戶的SID為服務(wù)器登錄的安全標(biāo)識(shí)符修復(fù)孤兒登錄,它可以同時(shí)修復(fù)Windows和SQL Server登錄的功能。
從另一個(gè)服務(wù)器恢復(fù)數(shù)據(jù)庫(kù),登錄是獨(dú)立的創(chuàng)建的(不是從其它服務(wù)器復(fù)制過(guò)來(lái)的),這個(gè)時(shí)候創(chuàng)建的就是孤兒用戶。關(guān)于ALTER USER WITH LOGIN的詳細(xì)情況,請(qǐng)參考Laurentiu Cristofor的博客文章"SQL Server 2005:SP2中的一些新特性",或者參考SQL Server在線電子書中關(guān)于ALTER USER命令的頁(yè)面。
3、使用sp_addsrvrolemember將自己提升為sysadmin角色
在SQL Server 2005中,默認(rèn)情況下,Windows內(nèi)置的Administrators組沒(méi)有授予它sysadmin角色,作為Windows系統(tǒng)管理員,你可以講 SQL Server啟動(dòng)到單用戶模式(即維護(hù)模式),然后在Sqlcmd命令行環(huán)境中運(yùn)行sp_addsrvrolemember系統(tǒng)存儲(chǔ)過(guò)程,將你的 Windows登錄用戶添加到sysadmin角色。
更多信息請(qǐng)參考Raul Garcia的博客文章"災(zāi)難恢復(fù):SQL Server 2005中SA賬號(hào)密碼丟失時(shí)該怎么辦"
4、使用PortQryUI排除連接故障
為了解決TCP/IP連接問(wèn)題,可以選擇微軟提供的PortQryUI工具,這個(gè)工具和PortQry一樣好用,其實(shí)它就是在PortQry外面套了一層外衣,它內(nèi)置了一些服務(wù),如一組端口掃描,包括UDP 1434和TCP 1433端口。
因此,要檢查這些端口的話,只需要輸入目標(biāo)SQL Server數(shù)據(jù)庫(kù)實(shí)例的IP地址或完全限定域名(FQDN)即可,如果檢查到端口可訪問(wèn),PortQryUI就會(huì)告訴你端口正在監(jiān)聽(tīng),否則,它會(huì)告訴你端口可能被過(guò)濾掉了,或者沒(méi)有監(jiān)聽(tīng)??梢詮膆ttp://www.microsoft.com/downloads /details.aspx?FamilyID=8355e537-1ea6-4569-aabb-f248f4bd91d0& displaylang=en下載這個(gè)好用的工具。
5、在大型數(shù)據(jù)庫(kù)上運(yùn)行DBCC CHECKDB時(shí)采用不同的策略
由于數(shù)據(jù)庫(kù)越變?cè)酱?,使用諸如T-SQL的DBCC CHECKDB命令行工具檢查數(shù)據(jù)庫(kù)的完整性將會(huì)耗費(fèi)很長(zhǎng)時(shí)間。如果執(zhí)行DBCC CHECKDB時(shí)超出了分配的維護(hù)窗口周期該怎么辦?Paul S. Randal在他的博客中提供了幾種方法(博客鏈接:http://sqlskills.com/BLOGS/PAUL/post/CHECKDB- From-Every-Angle-Consistency-Checking-Options-for-a-VLDB.aspx),其中一個(gè)解決辦法就是一臺(tái)獨(dú)立的服務(wù)器上使用備份還原數(shù)據(jù)庫(kù),然后再在這個(gè)服務(wù)器上運(yùn)行DBCC CHECKDB,另一個(gè)解決辦法就是設(shè)置數(shù)據(jù)庫(kù)的頁(yè)面驗(yàn)證選項(xiàng)(從CHECKSUM改為PHYSICAL_ONLY),然后再運(yùn)行DBCC CHECKDB,這樣運(yùn)行DBCC CHECKDB的時(shí)間就大大減小了,但它仍然會(huì)影響I/O子系統(tǒng)和頁(yè)面腐化。
6、使用導(dǎo)入包選項(xiàng)將SQL Server集成服務(wù)(SSIS)部署到msdb數(shù)據(jù)庫(kù)上
SSIS有多種部署方法,最簡(jiǎn)單的方法是將SSIS部署到SQL Server的msdb數(shù)據(jù)庫(kù)下,在In SQL Server Management Studio (SSMS)中,連接到集成服務(wù),在存儲(chǔ)包下,在MSDB文件夾上點(diǎn)擊右鍵,然后選擇導(dǎo)入包,在彈出的對(duì)話框中,選擇SSIS包的當(dāng)前位置和名字,根據(jù)服務(wù)器存儲(chǔ)和訪問(wèn)控制角色設(shè)置保護(hù)級(jí)別,然后點(diǎn)擊確定按鈕。
手動(dòng)拷貝與SSIS包相關(guān)的所有XML配置文件到目標(biāo)服務(wù)器,如果這個(gè)包使用SQL Server配置,在導(dǎo)入之前,可能需要使用正確的服務(wù)器名更新連接SQL Server的連接字符串。詳細(xì)信息請(qǐng)參考SQL Server在線電子書中的"如何使用集成服務(wù)服務(wù)導(dǎo)入包"頁(yè)面。
7、使用SQL Server 2008的本地服務(wù)器組和中央管理服務(wù)器同時(shí)查詢多個(gè)服務(wù)器
在SQL Server 2008中,你可以使用本地服務(wù)器組快速連接到那些你經(jīng)常管理的服務(wù)器,也可以使用中央管理服務(wù)器來(lái)存儲(chǔ)服務(wù)器的注冊(cè)元數(shù)據(jù),這樣團(tuán)隊(duì)成員就可以使用相同的注冊(cè)信息,可以包括SQL Server 2008、SQL Server 2005和SQL Server 2000服務(wù)器。
在SSMS中,可以查詢本地服務(wù)器組或中央管理服務(wù)器中的服務(wù)器,并可以合并查詢結(jié)果,進(jìn)入SSMS已注冊(cè)服務(wù)器窗口,在本地服務(wù)器組或中央管理服務(wù)器上點(diǎn)擊右鍵,選擇新建查詢,在查詢編輯器中,輸入T-SQL命令,點(diǎn)擊執(zhí)行,將會(huì)得到一個(gè)包含兩列的結(jié)果集,第一列包括每個(gè)服務(wù)器的名字,第二列就是從該服務(wù)器的命令輸出內(nèi)容。詳細(xì)信息請(qǐng)參考SQL Server在線電子書中的"如何對(duì)多個(gè)服務(wù)器同時(shí)執(zhí)行語(yǔ)句(SQL Server數(shù)據(jù)庫(kù)管理控制臺(tái))"。
原文標(biāo)題:適用于SQL Server生產(chǎn)環(huán)境DBA的七大技巧
連接:http://www.cnblogs.com/ylqmf/archive/2010/05/24/1742854.html
【編輯推薦】