一个简单的全备数据库的脚本以及系统数据库是否需要备份

一个简单的全备数据库的脚本,@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 format
10 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 databases
16  
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/

一个简单的全备数据库的脚本以及系统数据库是否需要备份

上一篇:QBC检索和本地SQL检索


下一篇:用 Form-Sql-Builder-mysql 将用户提交的表单自动转化成sql