windows任務計畫執行sql指令碼備份資料庫

2022-02-27 04:07:14 字數 2792 閱讀 4458

一、編寫sql指令碼

declare

@dbs

table

( rownum

intidentity(1, 1) primary

key,

dbname

nvarchar(200

), bakpath

as n'

e:\dbbackup\

'+ dbname +'\

'+ dbname +'_

'+replace(replace(replace(convert(char(19), getdate(), 120), '

-', ''),'

:',''),'

','_

') +

'.bak')

set nocount on

--將所有符合條件的db插入到表變數

insert

into

@dbs

(dbname)

select

name

from

sys.databases d

where name not

in ('

master

', '

tempdb

', '

model

', '

msdb

', '

ag_test')

and name not

like

'%monitor%

'order

byname

--遍歷表變數中的所有資料庫

declare

@iint,@imax

int,@sql

nvarchar(max

)select@i=

1,@imax

=max(rownum) from

@dbs

while

@i<=

isnull(@imax, 0

)begin

--建立 dbname 開頭的子資料夾

select

@sql='

execute master.dbo.xp_create_subdir n

''e:\dbbackup\'+

dbname

+''''

from

@dbs

where rownum =

@iexec (@sql

)

--備份

--2005 要去掉 compression

select

@sql='

backup database [

'+ dbname +

'] to disk = n

'''+ bakpath +

'''with noformat, noinit,name = n

''wxh-full database backup

'', skip, rewind, nounload, compression, stats = 20

'from

@dbs

where rownum =

@iexec (@sql

)

set@i=@i

+1end--

作業步驟二. 刪除過期檔案

declare

@olddate

datetime

--保留 2 天檔案(昨天0點之前檔案會被刪除)

set@olddate

=cast(convert(char(10),getdate(),120) as

datetime)-

120execute

master.dbo.xp_delete_file

0, --

0: 備份檔案,1: 維護計畫文字報告

n'e:\dbbackup\

', --

檔案路徑

n'bak

', --

副檔名

@olddate, --

在此時間之前的檔案一律刪除1--

刪除子資料夾中的檔案

二、編寫.bat檔案

set sqlcmd="

d:\program files (x86)\microsoft sql server\100\tools\binn\sqlcmd.exe

"set path=

"c:\users\administrator\desktop\backupdata\"

set server=

"192.168.10.243,5781

"set db=

"master"

set login=

"sa"

set password=

"aa123456.."

set output=

"c:\users\administrator\desktop\backupdata\outputlog.txt"

echo %date% %time% > %output%

for /r %path% %%i in (*.sql) do (

%sqlcmd% -s %server% -d %db% -u %login% -p %password% -i %%i >> %output%

)

view code

三、windows任務計畫

建立基本任務,設定觸發器。

windows任務計畫

schtasks create f tn df tr e debug tc.exe sc daily st 17 00 在每天17點執行 在5月15日15點執行 如果exe需要呼叫外部檔案則要設定起始目錄,不然會出錯 任務計畫 任務計畫程式庫 屬性 操作 編輯 起始於 e debug 確定 確定 s...

windows 計畫任務

schtasks 安排命令和程式,使其定期執行或在指定時間執行。向計畫中新增任務和從中刪除任務 根據需要啟動和停止任務以及顯示和更改計畫的任務 1.create schtasks create sc scheduletype tn taskname tr taskrun s computer u d...

windows計畫任務

1 windows server 2008 計畫任務在 配置?2 windows server 2008 可以配置每分鐘或是每小時執行我的任務嗎?答案是 可以!首先windows server 2008不同於其他伺服器作業系統和windows server 2003有著很大的區別,計畫任務的名稱是 ...