程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL2008 >> 數據庫平常保護經常使用的劇本概述及部門測試

數據庫平常保護經常使用的劇本概述及部門測試

編輯:MSSQL2008

數據庫平常保護經常使用的劇本概述及部門測試。本站提示廣大學習愛好者:(數據庫平常保護經常使用的劇本概述及部門測試)文章只能為提供參考,不一定能成為您想要的結果。以下是數據庫平常保護經常使用的劇本概述及部門測試正文


有些數據庫語句能夠日常平凡用得不多,所以應用的時刻老是不免上彀查詢,略嫌費事,昔日在CSDN服裝論壇t.vhao.net看到有貼收錄這些語句,就隨手牽羊copy了一份,本想copy了就停止了,但和部門同伙一樣,真正用到它們的時刻有時會發明不免會失足,因而,擇日不如撞日,就在明天花點時光在SQL SERVER 2008中運轉嘗嘗。之前並沒怎樣留意SQL2008的語法與之前版本的分歧,由於經常使用的select等語句都一樣,一向認為2008應當與2005的版本簡直無差。不虞這一試,果真試出了成績,這才發明,之前從書本上見過的backup語句和dump語句曾經在2008外面消逝了……

空話不多說,把收錄的語句及備注貼下去,便於今後查詢應用~~

1、 數據庫備份操作:

declare @sql varchar(8000)
set @sql='backup database smallerp to disk=''d:\'+RTRIM(CONVERT(varchar,getdate(),112))+'.bak'''
exec(@sql);

(備注:引號弗成缺乏隨意率性一個,不然會報錯)
2、 刪除5天前的備份文件:

declare @sql varchar(8000)
set @sql='del d:\'+RTRIM(CONVERT(varchar,getdate()-5,112))+'.bak'''
exec master..xp_cmdshell @sql;

(備注:xp_cndshell默許該組件會被阻攔,須要先啟用它才可正常操作:應用以下語句將其啟用EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;)
3、 壓縮數據庫語句:

dump transaction smallerp with no_log;

(備注:這句話中會提醒transaction鄰近有語法毛病,本來在SQL2008中曾經不再應用此法來壓縮數據庫了。而應用:alter,應用辦法以下:

alter database smallerp set recovery simple
dbcc shrinkdatabase(smallerp,0);)
backup log smallerp with no_log;

(備注:這句話履行的時刻會報錯:此語句不支撐一個或多個選項(no_log),緣由也是由於SQL2008曾經不再支撐這類寫法了。)
4、 檢查數據庫裡運動用戶和過程信息:

sp_who 'active';

(備注:假如只是這麼寫的話會提醒sp_who鄰近有語法毛病,但履行的時刻可以查到數據,假如在後面加一個exec,則不再提醒毛病。且1—50的過程號
為SQL SERVER體系外部用的,只要年夜於50的過程號才是用戶的銜接過程。spid是過程號,dbid是數據庫編號,objid是數據對象編號)
5、 檢查數據庫裡用戶和過程信息:

Exec sp_who;

6、 檢查數據庫裡的鎖情形:

Exec sp_lock;

7、 剖析SQL SERVER裡sql語句的辦法:

set statistics time {on | off}(寫語句的時刻只須要寫明是on或許off便可)
set statistics io {on | off}

8、 文本方法顯示查詢履行籌劃:

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、 刪除過時的備份文件,並設定天天兩次:

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

先這些吧,貌似普通不消又絕對比擬經常使用~

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved