SqlServer 自動備份 自動刪除7天前備份

2022-08-20 23:27:18 字數 1801 閱讀 6702

--

---sqlserver 資料異地備份 預設刪除 七天前的資料

-----該**可配置成sqlserver作業裡做排程,或者配置成任務計畫進行執行

----掛載異地碟符

exec

master..xp_cmdshell

'net use w: "\\172.16.30.34\d$" "726" "/user:172.16.30.34\administrator"

', no_output

/*--說明:

w: 是對映網路路徑對應本機的碟符,與下面的備份對應

\\172.16.30.34\d$ 是要對映的網路路徑

172.16.30.34\administrator

172.16.30.34是遠端的計算機名,administrator是登陸的使用者名稱

726 上面指定的administrator使用者的密碼

--*/

gogo

-----用游標:

declare

@snvarchar(200),@del

nvarchar(200

)select@s=

'',@del=''

declare datebak cursor

forselect

[bak]=

'backup database '+

quotename(name)+

'to disk =

''w:

'+name+'_

'+convert(varchar(8),getdate(),112)+

'.bak

''with init',

-----自動刪除七天前的備份檔案

[del]=

'exec master..xp_cmdshell

''del w:

'+name+'_

'+convert(varchar(8),getdate()-

7,112)+

'.bak

'', no_output

'from master..sysdatabases where dbid=

37--

這裡查詢出需要備份的資料庫,可以一次性備份多個資料庫

open

datebak

fetch

next

from datebak into

@s,@del

while

@@fetch_status=0

begin

----對於要刪除的備份檔案進行一場捕獲(解決第一次部分的時候,執行失敗的情況)

begin

try

exec (@del

)

endtry

begin

catch

if@@trancount

>

0begin

print

@del

endend

catch

exec(@s

)

fetch

next

from datebak into

@s,@del

endclose

datebak

deallocate

datebak

go--

刪除對映

exec master..xp_cmdshell '

net use w: /delete

'go

sqlserver自動備份

一。sqlserver自動作業備份1 開啟sql server management studio 2 啟動sql server 3 點選作業 新建作業 4 常規 中輸入作業的名稱 5 新建步驟,型別選t sql,在下面的命令中輸入下面語句 declare strpath nvarchar 200 ...

SQL server 自動網路備份

企業管理器 管理 sql server 右鍵作業 新建作業 常規 項中輸入作業名稱 步驟 項 新建 步驟名 中輸入步驟名 型別 中選擇 transact sql 指令碼 tsql 資料庫 選擇執行命令的資料庫 命令 中輸入要執行的語句 declare strsql varchar 1000 decl...

SQL Server自動備份指令碼

這幾天在給企業培訓時,幫助他們寫了乙個備份的指令碼,留給大家分享吧。此指令碼的目的是,每週日做完全備份,每週一到週六做差異備份,每週的備份寫入到乙個備份裝置當中,備份裝置起名規則為 備份裝置名 週日日期 下週備份再重新備份到乙個新的備份裝置中。此指令碼編寫完以後,可以做成作業,讓它每天自動完成就可以...