數(shù)據(jù)庫(kù)日常維護(hù)常用的腳本概述及部分測(cè)試
有些數(shù)據(jù)庫(kù)語(yǔ)句可能平時(shí)用得不多,所以使用的時(shí)候總是難免上網(wǎng)查詢,略嫌麻煩,今日在CSDN論壇看到有貼收錄這些語(yǔ)句,就順手牽羊copy了一份,本想copy了就結(jié)束了,但和部分朋友一樣,真正用到它們的時(shí)候有時(shí)會(huì)發(fā)現(xiàn)難免會(huì)出錯(cuò),于是,擇日不如撞日,就在今天花點(diǎn)時(shí)間在SQL SERVER 2008中運(yùn)行試試。之前并沒(méi)怎么注意SQL2008的語(yǔ)法與之前版本的不同,因?yàn)槌S玫膕elect等語(yǔ)句都一樣,一直以為2008應(yīng)該與2005的版本幾乎無(wú)差。不料這一試,果然試出了問(wèn)題,這才發(fā)現(xiàn),以前從書本上見過(guò)的backup語(yǔ)句和dump語(yǔ)句已經(jīng)在2008里面消失了……
廢話不多說(shuō),把收錄的語(yǔ)句及備注貼上來(lái),便于以后查詢使用~~
1、 數(shù)據(jù)庫(kù)備份操作:
declare @sql varchar(8000)
set @sql='backup database smallerp to disk=''d:\'+RTRIM(CONVERT(varchar,getdate(),112))+'.bak'''
exec(@sql);
(備注:引號(hào)不可缺少任意一個(gè),否則會(huì)報(bào)錯(cuò))
2、 刪除5天前的備份文件:
declare @sql varchar(8000)
set @sql='del d:\'+RTRIM(CONVERT(varchar,getdate()-5,112))+'.bak'''
exec master..xp_cmdshell @sql;
(備注:xp_cndshell默認(rèn)該組件會(huì)被阻止,需要先啟用它才可正常操作:使用如下語(yǔ)句將其啟用EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;)
3、 收縮數(shù)據(jù)庫(kù)語(yǔ)句:
dump transaction smallerp with no_log;
(備注:這句話中會(huì)提示transaction附近有語(yǔ)法錯(cuò)誤,原來(lái)在SQL2008中已經(jīng)不再使用此法來(lái)收縮數(shù)據(jù)庫(kù)了。而使用:alter,使用方法如下:
alter database smallerp set recovery simple
dbcc shrinkdatabase(smallerp,0);)
backup log smallerp with no_log;
(備注:這句話執(zhí)行的時(shí)候會(huì)報(bào)錯(cuò):此語(yǔ)句不支持一個(gè)或多個(gè)選項(xiàng)(no_log),原因也是因?yàn)镾QL2008已經(jīng)不再支持這種寫法了。)
4、 查看數(shù)據(jù)庫(kù)里活動(dòng)用戶和進(jìn)程信息:
sp_who 'active';
(備注:如果只是這么寫的話會(huì)提示sp_who附近有語(yǔ)法錯(cuò)誤,但執(zhí)行的時(shí)候可以查到數(shù)據(jù),如果在前面加一個(gè)exec,則不再提示錯(cuò)誤。且1—50的進(jìn)程號(hào)
為SQL SERVER系統(tǒng)內(nèi)部用的,只有大于50的進(jìn)程號(hào)才是用戶的連接進(jìn)程。spid是進(jìn)程號(hào),dbid是數(shù)據(jù)庫(kù)編號(hào),objid是數(shù)據(jù)對(duì)象編號(hào))
5、 查看數(shù)據(jù)庫(kù)里用戶和進(jìn)程信息:
Exec sp_who;
6、 查看數(shù)據(jù)庫(kù)里的鎖情況:
Exec sp_lock;
7、 分析SQL SERVER里sql語(yǔ)句的方法:
set statistics time {on | off}(寫語(yǔ)句的時(shí)候只需要寫明是on或者off即可)
set statistics io {on | off}
8、 文本方式顯示查詢執(zhí)行計(jì)劃:
set showplan_all {on | off}
set showplan_text { on | off }
set statistics profile { on | off }
9、 差異備份:
declare @str varchar(100)
set @str='D:\'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.diff'
BACKUP DATABASE smallerp TO DISK=@str
WITH DIFFERENTIAL,RETAINDAYS=8,NOFORMAT,NOINIT,
NAME=N'Demo差異備份',SKIP,NOREWIND,
NOUNLOAD,STATS=10
GO
10、 刪除過(guò)期的備份文件,并設(shè)定每天兩次:
declare @str varchar(100),@dir varchar(100),@fileName varchar(30)
set @dir='del D:\ '
set @filename=left(replace(replace(replace(convert(varchar,getdate()-15,20),'-',''),' ',''),':',''),8)
set @str=@dir+'fullbak'+@filename+'*.bak'
exec xp_cmdshell @str
set @filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),' ',''),':',''),8)
set @str=@dir+'diffbak'+@filename+'*.diff'
exec xp_cmdshell @str
set @filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),' ',''),':',''),8)
set @str=@dir+'logbak'+@filename+'*.trn'
exec xp_cmdshell @str
先這些吧,貌似一般不用又相對(duì)比較常用~
相關(guān)文章
SQL Server 2008 安裝和配置圖解教程(附官方下載地址)
最近很多朋友選用sqlserver2008,據(jù)說(shuō)SQL Server 2008的性能與功能上比2005更好,這里就將sql server 2008的安裝與配置分享下,希望能幫到需要的朋友2012-05-05SQL Server 2008網(wǎng)絡(luò)協(xié)議深入理解
可以通過(guò)展開SQL Server 2008網(wǎng)絡(luò)配置節(jié)點(diǎn)進(jìn)行服務(wù)器協(xié)議的配置,需要了解更多的朋友可以參考本文2012-11-11windows系統(tǒng)下SQL?Server?2008超詳細(xì)安裝教程
有很多同學(xué)不知道怎么安裝SQL Server 2008,今天我就在這里教大家怎么安裝SQL Server 2008,下面這篇文章主要給大家介紹了關(guān)于windows系統(tǒng)下SQL?Server?2008超詳細(xì)安裝教程的相關(guān)資料,需要的朋友可以參考下2022-12-12SQL Server Native Client下載 SQL Server Native Client安裝方法
在安裝 SQL Server 2008 或 SQL Server 工具時(shí),將同時(shí)安裝 Microsoft SQL Server Native Client 10.0。如果計(jì)算機(jī)上還安裝了 SQL Server Native Client 的 SQL Server 2005 版本,則 SQL Server Native Client 10.0 將與早期版本并行安裝2013-08-08java實(shí)現(xiàn)整數(shù)轉(zhuǎn)化為中文大寫金額的方法
這篇文章主要介紹了java實(shí)現(xiàn)整數(shù)轉(zhuǎn)化為中文大寫金額的方法,感興趣的小伙伴們可以參考一下2015-12-12SQL Server 2008每天自動(dòng)備份數(shù)據(jù)庫(kù)的圖文教程
本文通過(guò)圖文并茂的形式給大家介紹了SQL Server 2008每天自動(dòng)備份數(shù)據(jù)庫(kù)的操作方法,感興趣的朋友跟隨小編一起看看吧2023-07-07SQL2008 附加數(shù)據(jù)庫(kù)提示5120錯(cuò)誤解決方法
有些朋友在操作sql2008數(shù)據(jù)庫(kù)時(shí)會(huì)提示5120錯(cuò)誤,本文將介紹詳細(xì)的解決方法,有需要的朋友可以參考下2012-12-12SQL Server 2008 R2數(shù)據(jù)庫(kù)鏡像部署圖文教程
數(shù)據(jù)庫(kù)鏡像是一種針對(duì)數(shù)據(jù)庫(kù)高可用性的基于軟件的解決方案。其維護(hù)著一個(gè)數(shù)據(jù)庫(kù)的兩個(gè)相同的副本,這兩個(gè)副本分別放置在不同的SQL Server數(shù)據(jù)庫(kù)實(shí)例中2013-06-06SQL Server 2008中的代碼安全(六) 對(duì)稱密鑰加密
證書和非對(duì)稱密鑰使用數(shù)據(jù)庫(kù)級(jí)的內(nèi)部公鑰加密數(shù)據(jù),并且使用數(shù)據(jù)庫(kù)級(jí)內(nèi)部私鑰解密數(shù)據(jù)。而對(duì)稱密鑰相對(duì)簡(jiǎn)單,它們包含一個(gè)同時(shí)用來(lái)加密和解密的密鑰。2011-06-06