一個簡單的全備數據庫的腳本,@path部分需要替換路徑
1 DECLARE @name VARCHAR(50) -- database name 2 DECLARE @path VARCHAR(256) -- path for backup files 3 DECLARE @fileName VARCHAR(256) -- filename for backup 4 DECLARE @fileDate VARCHAR(20) -- used for file name 5 6 -- specify database backup directory 7 SET @path = 'C:/Backup/' 8 9 -- specify filename format10 SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) 11 12 DECLARE db_cursor CURSOR FOR 13 SELECT name 14 FROM master.dbo.sysdatabases 15 WHERE name NOT IN ('master','model','msdb','tempdb') -- exclude these databases16 17 OPEN db_cursor 18 FETCH NEXT FROM db_cursor INTO @name 19 20 WHILE @@FETCH_STATUS = 0 21 BEGIN 22 SET @fileName = @path + @name + '_' + @fileDate + '.BAK' 23 BACKUP DATABASE @name TO DISK = @fileName 24 25 FETCH NEXT FROM db_cursor INTO @name 26 END 27 28 CLOSE db_cursor 29 DEALLOCATE db_cursor
可以看到并不備份'master','model','msdb','tempdb' 數據庫為了較為容易地處理孤立賬號的問題,建議備份master 數據庫。或者啟用2012的包含數據庫,但也建議備份master數據庫
model 數據庫雖然不會有任何用戶數據在其中,數據庫其中過程中的tempdb需要通過model的參數來創建,所以也建議備份。
msdb記錄一些關于SQL Agent 的計劃信息以及備份還原信息,建議也備份一下,并建議使用完全恢復模式放在冗余設備中。
tempdb 在數據庫啟動時創建,所以不需要備份。
Reference
http://www.mssqltips.com/sqlservertip/1070/simple-script-to-backup-all-sql-server-databases/
新聞熱點
疑難解答