SQLSERVER2008R2 T-SQL備份指令碼
背景:
使用管理--->維護計劃-->新增備份計劃-->報錯:
訊息
已以使用者 FSLGZ\rfadmin 的身份執行。 Microsoft (R) SQL Server 執行包實用工具 Version 10.0.1600.22 for 64-bit 版權所有 (C) Microsoft Corp 1984-2005。保留所有權利。 SQL Server 執行包實用工具要求 Integration Services 由 SQL Server 2008 的以下某個版本安裝: Standard、Enterprise、Developer 或 Evaluation。若要安裝 Integration Services,請執行 SQL Server 安裝程式並選擇 Integration Services。. 包執行失敗。. 該步驟失敗。
經查,發現是在安裝資料庫時未安裝SSIS包,導致無法使用維護計劃來進行備份。
使用指令碼進行備份:
SQLSERVER2008R2
開啟SQL SERVER 代理--->作業--->新建作業--->在步驟處編寫T-SQL指令碼--->設定好計劃任務
T-SQL備份指令碼:
declare @device varchar(50);
declare @filename varchar(50);
declare @filename2 varchar(50);
declare @datetime varchar(50);
declare @weekname varchar(50);
declare @weeknametmp varchar(4);
declare @weekday int;
declare @database varchar(10);
set @weekname=datename(weekday,getdate());
set @datetime = convert(varchar(20),getdate(),112);
set @weeknametmp=substring(@weekname,3,1);
if (@weeknametmp='一')
set @weekday=1;
else if (@weeknametmp='二')
set @weekday=2;
else if (@weeknametmp='三')
set @weekday=3;
else if (@weeknametmp='四')
set @weekday=4;
else if (@weeknametmp='五')
set @weekday=5;
else if (@weeknametmp='六')
set @weekday=6;
else if (@weeknametmp='日')
set @weekday=0;
set @datetime = convert(varchar(20),getdate()-@weekday,112);
set @device= 'QQTT_backup' + @datetime; --備份裝置名,隨便命名吧
set @filename='D:\BACKUP\QQTT_backup'+@datetime+ '_all.bak' --備份檔案儲存路徑及檔名
set @filename2='E:\BACKUP\QQTT_backup'+@datetime+ '_all.bak'
set @filename3='D:\BACKUP\QQTT_backup'+@datetime+ '_incr.bak'
set @filename4='E:\BACKUP\QQTT_backup'+@datetime+ '_incr.bak'
set @database='QQTT'
if (@weekname='星期日')
begin
execute sp_addumpdevice 'disk',@device,@filename; --新增備份裝置
backup database @database to disk=@filename mirror to disk=@filename2 with format,init,checksum; --加上with checksum為校驗備份檔案的引數
--mirror to disk=XXX 表示映象備份,相當於在不同路徑做了2份一樣的備份
exec sp_dropdevice @device; --刪除備份裝置
end
else
begin
execute sp_addumpdevice 'disk',@device,@filename2;
backup database @database to disk=@filename3 mirror to disk=@filename4 with differential,format,init,checksum; --加上with differential為差異備份的引數
exec sp_dropdevice @device;
end
另外還可以新增其他引數:
WITH CHECKSUM --校驗備份檔案
WITH FORMAT --覆蓋任何現有的備份和建立一個新的媒體集,可以避免一些由於備份設定產生的錯誤.
WITH INIT --覆蓋同名的備份檔案
WITH COMPRESSION --壓縮備份
WITH DIFFERENTIAL --差異備份
WITH BUFFERCOUNT = 10 --指定用於備份操作的 I/O 緩衝區總數
WITH MAXTRANSFERSIZE = 4194304 --指定要在 SQL Server 和備份介質之間使用的最大傳輸單元(位元組)
取值範圍: 65536 位元組 (64 KB) 的倍數至4194304位元組(4M)
檢視所有備份裝置
select * from sys.backup_devices
刪除備份裝置
exec sp_dropdevice 'QQTT_backup20151009'
注意:
備份語句還可以備份多個備份集(存放多個目錄路徑)
例如:
BACKUP DATABASE [databasename]
TO DISK = 'C:\Backup\BakFile1.bak', DISK = 'C:\Backup\BakFile2.bak', WITH FORMAT, INIT, NAME = 'TEST-完整 資料庫 備份', SKIP, NOREWIND, NOUNLOAD, STATS = 10
也可以用變數替代
backup database @database to disk=@filename,disk=@filename2,@devicewith checksum;
使用管理--->維護計劃-->新增備份計劃-->報錯:
訊息
已以使用者 FSLGZ\rfadmin 的身份執行。 Microsoft (R) SQL Server 執行包實用工具 Version 10.0.1600.22 for 64-bit 版權所有 (C) Microsoft Corp 1984-2005。保留所有權利。 SQL Server 執行包實用工具要求 Integration Services 由 SQL Server 2008 的以下某個版本安裝: Standard、Enterprise、Developer 或 Evaluation。若要安裝 Integration Services,請執行 SQL Server 安裝程式並選擇 Integration Services。. 包執行失敗。. 該步驟失敗。
經查,發現是在安裝資料庫時未安裝SSIS包,導致無法使用維護計劃來進行備份。
使用指令碼進行備份:
SQLSERVER2008R2
開啟SQL SERVER 代理--->作業--->新建作業--->在步驟處編寫T-SQL指令碼--->設定好計劃任務
T-SQL備份指令碼:
declare @device varchar(50);
declare @filename varchar(50);
declare @filename2 varchar(50);
declare @datetime varchar(50);
declare @weekname varchar(50);
declare @weeknametmp varchar(4);
declare @weekday int;
declare @database varchar(10);
set @weekname=datename(weekday,getdate());
set @datetime = convert(varchar(20),getdate(),112);
set @weeknametmp=substring(@weekname,3,1);
if (@weeknametmp='一')
set @weekday=1;
else if (@weeknametmp='二')
set @weekday=2;
else if (@weeknametmp='三')
set @weekday=3;
else if (@weeknametmp='四')
set @weekday=4;
else if (@weeknametmp='五')
set @weekday=5;
else if (@weeknametmp='六')
set @weekday=6;
else if (@weeknametmp='日')
set @weekday=0;
set @datetime = convert(varchar(20),getdate()-@weekday,112);
set @device= 'QQTT_backup' + @datetime; --備份裝置名,隨便命名吧
set @filename='D:\BACKUP\QQTT_backup'+@datetime+ '_all.bak' --備份檔案儲存路徑及檔名
set @filename2='E:\BACKUP\QQTT_backup'+@datetime+ '_all.bak'
set @filename3='D:\BACKUP\QQTT_backup'+@datetime+ '_incr.bak'
set @filename4='E:\BACKUP\QQTT_backup'+@datetime+ '_incr.bak'
set @database='QQTT'
if (@weekname='星期日')
begin
execute sp_addumpdevice 'disk',@device,@filename; --新增備份裝置
backup database @database to disk=@filename mirror to disk=@filename2 with format,init,checksum; --加上with checksum為校驗備份檔案的引數
--mirror to disk=XXX 表示映象備份,相當於在不同路徑做了2份一樣的備份
exec sp_dropdevice @device; --刪除備份裝置
end
else
begin
execute sp_addumpdevice 'disk',@device,@filename2;
backup database @database to disk=@filename3 mirror to disk=@filename4 with differential,format,init,checksum; --加上with differential為差異備份的引數
exec sp_dropdevice @device;
end
另外還可以新增其他引數:
WITH CHECKSUM --校驗備份檔案
WITH FORMAT --覆蓋任何現有的備份和建立一個新的媒體集,可以避免一些由於備份設定產生的錯誤.
WITH INIT --覆蓋同名的備份檔案
WITH COMPRESSION --壓縮備份
WITH DIFFERENTIAL --差異備份
WITH BUFFERCOUNT = 10 --指定用於備份操作的 I/O 緩衝區總數
WITH MAXTRANSFERSIZE = 4194304 --指定要在 SQL Server 和備份介質之間使用的最大傳輸單元(位元組)
取值範圍: 65536 位元組 (64 KB) 的倍數至4194304位元組(4M)
檢視所有備份裝置
select * from sys.backup_devices
刪除備份裝置
exec sp_dropdevice 'QQTT_backup20151009'
注意:
備份語句還可以備份多個備份集(存放多個目錄路徑)
例如:
BACKUP DATABASE [databasename]
TO DISK = 'C:\Backup\BakFile1.bak', DISK = 'C:\Backup\BakFile2.bak', WITH FORMAT, INIT, NAME = 'TEST-完整 資料庫 備份', SKIP, NOREWIND, NOUNLOAD, STATS = 10
也可以用變數替代
backup database @database to disk=@filename,disk=@filename2,@devicewith checksum;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28371090/viewspace-1813610/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 備份指令碼指令碼
- rman 備份指令碼指令碼
- mysql備份指令碼MySql指令碼
- ORACLE備份指令碼Oracle指令碼
- 自動備份指令碼指令碼
- windows mysqldump備份指令碼WindowsMySql指令碼
- expdp 邏輯備份指令碼指令碼
- 資料庫備份指令碼資料庫指令碼
- 兩套mysql備份指令碼MySql指令碼
- oracle自動冷備份指令碼Oracle指令碼
- MySQL中binlog備份指令碼分享MySql指令碼
- 分享Oracle Rman的備份指令碼Oracle指令碼
- 使用shell 指令碼備份資料指令碼
- ORACLE常用定時備份指令碼Oracle指令碼
- Mysql定時備份資料指令碼MySql指令碼
- 檢查備份情況的指令碼指令碼
- 【MySQL】Xtrabackup備份及恢復指令碼MySql指令碼
- MySQL:Windows下分庫備份指令碼MySqlWindows指令碼
- windows 全量+增量備份指令碼batWindows指令碼BAT
- mysqldump壓縮備份匯出匯入(含定期備份shell指令碼)MySql指令碼
- MySQL資料庫備份的shell指令碼MySql資料庫指令碼
- windows 批處理備份目錄指令碼Windows指令碼
- MySQL備份指令碼,應該這麼寫MySql指令碼
- oracle資料庫使用rman備份指令碼Oracle資料庫指令碼
- Windows環境PgSql自動備份指令碼WindowsSQL指令碼
- shell 備份檔案指令碼+自動清理指令碼
- linux mysql定時備份指令碼記錄LinuxMySql指令碼
- 【BASIS】HANA備份指令碼,Catalog自動清理指令碼
- Liunx備份mysql資料庫的shell指令碼MySql資料庫指令碼
- Mysqldump備份說明及資料庫備份指令碼分享-運維筆記MySql資料庫指令碼運維筆記
- KOSQL Server2019資料庫備份與還原指令碼(批量備份)zrbSQLServer資料庫指令碼
- mysql容器的定時備份指令碼,有二種方法,備份好後打包傳送到遠端備份主機MySql指令碼
- Shell多執行緒備份資料庫的指令碼執行緒資料庫指令碼
- Linux系統配置檔案簡易shell備份指令碼Linux指令碼
- MySQL自動備份指令碼30天自動刪除MySql指令碼
- 【DATAPUMP】Oracle資料泵定時備份刪除指令碼Oracle指令碼
- SQL Server2019資料庫備份與還原指令碼,資料庫可批量備份SQLServer資料庫指令碼
- 自動定時備份 mysql 資料庫 的 shell 指令碼MySql資料庫指令碼
- MOGDB/openGauss資料庫gs_dump備份指令碼及清理資料庫指令碼