以下的文章主要描述的是SQL Server 數(shù)據(jù)庫(kù)操作的實(shí)用6技巧,其中包括安裝時(shí)提示有掛起的相關(guān)操作、收縮指定數(shù)據(jù)庫(kù)與壓縮數(shù)據(jù)庫(kù)以及轉(zhuǎn)移數(shù)據(jù)庫(kù)給新用戶以已存在德實(shí)際用戶權(quán)限、檢查備份集、修復(fù)數(shù)據(jù)庫(kù)等。
1. 安裝掛起操作
在安裝Sql或sp補(bǔ)丁的時(shí)候系統(tǒng)提示之前有掛起的安裝操作,要求重啟,這里往往重啟無(wú)用,解決辦法:
到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager
刪除PendingFileRenameOperations
SQL Server 數(shù)據(jù)庫(kù)操作實(shí)用技巧
2.收縮數(shù)據(jù)庫(kù)
重建索引 代碼片段:
DBCC REINDEX
DBCC INDEXDEFRAG
收縮數(shù)據(jù)和日志 代碼片段:
DBCC SHRINKDB
DBCC SHRINKFILE
3.壓縮數(shù)據(jù)庫(kù) 代碼片段:
dbcc shrinkdatabase(dbname)
4.轉(zhuǎn)移數(shù)據(jù)庫(kù)給新用戶以已存在用戶權(quán)限 代碼片段:
exec sp_change_users_login ‘update_one’,'newname’,'oldname’
go
5.檢查備份集碼 代碼片段:
RESTORE VERIFYONLY from disk=’E:dvbbs.bak’
6.修復(fù)數(shù)據(jù)庫(kù) 代碼片段:
ALTER DATABASE [dvbbs] SET SINGLE_USER
GO
DBCC CHECKDB(’dvbbs’,repair_allow_data_loss) WITH TABLOCK
GO
ALTER DATABASE [dvbbs] SET MULTI_USER
GO
CHECKDB 有3個(gè)參數(shù):代碼片段:
REPAIR_ALLOW_DATA_LOSS
執(zhí)行由 REPAIR_REBUILD 完成的所有修復(fù),包括對(duì)行和頁(yè)進(jìn)行分配和取消分配以改正分配錯(cuò)誤、結(jié)構(gòu)行或頁(yè)的錯(cuò)誤,以及刪除已損壞的文本對(duì)象。這些修復(fù)可能會(huì)導(dǎo)致一些數(shù)據(jù)丟失。修復(fù)操作可以在用戶事務(wù)下完成以允許用戶回滾所做的更改。
如果回滾修復(fù),則數(shù)據(jù)庫(kù)仍會(huì)含有錯(cuò)誤,應(yīng)該從備份進(jìn)行恢復(fù)。如果由于所提供修復(fù)等級(jí)的緣故遺漏某個(gè)錯(cuò)誤的修復(fù),則將遺漏任何取決于該修復(fù)的修復(fù)。修復(fù)完成后,備份數(shù)據(jù)庫(kù)。
REPAIR_FAST 進(jìn)行小的、不耗時(shí)的修復(fù)操作,如修復(fù)非聚集索引中的附加鍵。這些修復(fù)可以很快完成,并且不會(huì)有丟失數(shù)據(jù)的危險(xiǎn)。
REPAIR_REBUILD 執(zhí)行由 REPAIR_FAST 完成的所有修復(fù),包括需要較長(zhǎng)時(shí)間的修復(fù)(如重建索引)。執(zhí)行這些修復(fù)時(shí)不會(huì)有丟失數(shù)據(jù)的危險(xiǎn)。
代碼片段:
DBCC CHECKDB(’dvbbs’) with NO_INFOMSGS,PHYSICAL_ONLY