數(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),以前從書(shū)本上見(jià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)不再支持這種寫(xiě)法了。)
4、 查看數(shù)據(jù)庫(kù)里活動(dòng)用戶和進(jìn)程信息:
sp_who 'active';
(備注:如果只是這么寫(xiě)的話會(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}(寫(xiě)語(yǔ)句的時(shí)候只需要寫(xiě)明是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 64位系統(tǒng)無(wú)法導(dǎo)入ACCESS/EXCEL怎么辦
操作系統(tǒng)Windows Server 2008 X64,數(shù)據(jù)庫(kù)SQL Server 2008 X64,Office 2007(好像只有32位),在存儲(chǔ)過(guò)程執(zhí)行OpenDatasource導(dǎo)入Access數(shù)據(jù)的時(shí)候遇到問(wèn)題了,Oledb 4.0已經(jīng)不被支持,該怎么辦呢?本文給大家分享我的解決辦法,需要的朋友可以參考下2015-11-11
SQLServer 2008中的代碼安全(五) 非對(duì)稱密鑰加密
非對(duì)稱密鑰包含數(shù)據(jù)庫(kù)級(jí)的內(nèi)部公鑰和私鑰,它可以用來(lái)加密和解密SQL Server數(shù)據(jù)庫(kù)中的數(shù)據(jù),它可以從外部文件或程序集中導(dǎo)入,也可以在SQL Server數(shù)據(jù)庫(kù)中生成。2011-06-06
SQL Server 2008中的數(shù)據(jù)表壓縮功能詳細(xì)介紹
這篇文章主要介紹了SQL Server 2008中的數(shù)據(jù)表壓縮功能詳細(xì)介紹,介紹了為何使用數(shù)據(jù)壓縮、數(shù)據(jù)壓縮的原理、數(shù)據(jù)壓縮注意事項(xiàng)等,需要的朋友可以參考下2014-08-08
SQL Server 2008存儲(chǔ)結(jié)構(gòu)之GAM、SGAM介紹
談到GAM和SGAM,我們不得不從數(shù)據(jù)庫(kù)的頁(yè)和區(qū)說(shuō)起。一個(gè)數(shù)據(jù)庫(kù)由用戶定義的空間構(gòu)成,這些空間用來(lái)永久存儲(chǔ)用戶對(duì)象,例如數(shù)據(jù)庫(kù)管理信息、表和索引。這些空間被分配在一個(gè)或多個(gè)操作系統(tǒng)文件中2012-08-08
SQL Server2008 R2 數(shù)據(jù)庫(kù)鏡像實(shí)施手冊(cè)(雙機(jī))SQL Server2014同樣適用
這篇文章主要介紹了SQL Server2008 R2 數(shù)據(jù)庫(kù)鏡像實(shí)施手冊(cè)(雙機(jī))SQL Server2014同樣適用,需要的朋友可以參考下2017-04-04
SQL Server 2008 R2 應(yīng)用及多服務(wù)器管理
所謂多服務(wù)器管理 (Multiserver Administration)就是SQL Server 2008 R2提供的自動(dòng)管理多個(gè) SQL Server 實(shí)例過(guò)程的功能。在多服務(wù)器管理中,連接到主服務(wù)器并從其接收作業(yè)的服務(wù)器被稱之為目標(biāo)服務(wù)器。2014-10-10
SQL SERVER 2008 r2 數(shù)據(jù)壓縮的兩種方法
這篇文章主要介紹了SQL SERVER 2008 r2 數(shù)據(jù)壓縮的兩種方法,腳本之家從多個(gè)網(wǎng)站整理的內(nèi)容,需要的朋友可以參考下2018-03-03
如何把Excel數(shù)據(jù)導(dǎo)入到SQL2008數(shù)據(jù)庫(kù)的實(shí)例方法
最近想練習(xí)一下批量插入數(shù)據(jù),所以從網(wǎng)上找了一下資料,做了一個(gè)怎么把Excel文件數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)。2013-04-04
SQL SERVER 2008 R2配置管理器出現(xiàn)“遠(yuǎn)程過(guò)程調(diào)用失敗”(0x800706be)錯(cuò)誤提示
本文主要記錄了SQL SERVER 2008 R2配置管理器出現(xiàn)“遠(yuǎn)程過(guò)程調(diào)用失敗”(0x800706be)錯(cuò)誤提示的解決方法,圖文并茂,非常的實(shí)用,有需要的朋友可以參考下2014-10-10

