SQL Server系统数据库备份最佳实践

首先了解主要的系统数据库:

系统数据库
master包含登录信息和其他数据库的核心信息
msdb 存储作业、操作员、警报、备份还原历史。数据库邮件信息等等。
model 所有新数据库的模型,如果希望新数据库都有某些对象,可以在这里创建。
tempdbsql server重启时重建,所以不需要备份

除了以上四种,其实还有一个数据库:Resource

从2005就引入的,一个只读、隐藏的数据库,包含所有在sql server中的系统对象。由于SQL SERVER不支持备份还原Resource数据库。所以DBA需要复制Resource的mssqlsystemresource.mdf和mssqlsystemresource.ldf文件。

SQL Server 2005 中的Resource数据库在路径: “<drive>:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\” location

SQL Server 2008 中的Resource数据库在路径:“<drive>:\Program Files\Microsoft SQL Server\MSSQL10.<instance_name>\MSSQL\Binn\” location.

报表服务数据库:如果装了报表服务,将会看到这两个服务数据库

ReportServer
ReportServerTempDB


Replication System Database(复制服务系统数据库)
distribution - 当配置了复制服务时,将会看到这个数据库。



如果需要执行基于文件的备份功能来备份Resource数据库,则需要开启XP_CmdShell

USE master
GO
sp_configure 'show advanced options'
GO
/* 0 = Disabled , 1 = Enabled */
sp_configure 'xp_cmdshell', 1
GO
RECONFIGURE WITH OVERRIDE
GO

使用下面语句可以把系统数据库备份到E盘的 SystemDatabaseBackups 文件夹中:

USE master
GO
SELECT GETDATE() AS 'System Database Backup Start Time'
GO
/* Backup Distribution Database */ 
BACKUP DATABASE Distribution 
TO DISK = 'E:\SystemDatabaseBackups\Distribution.BAK' 
WITH INIT
GO
/* Backup ReportServer Database */ 
BACKUP DATABASE ReportServer 
TO DISK = 'E:\SystemDatabaseBackups\ReportServer.BAK' 
WITH INIT
GO
/* Backup ReportServerTempDB Database */ 
BACKUP DATABASE ReportServerTempDB 
TO DISK = 'E:\SystemDatabaseBackups\ReportServerTempDB.BAK' 
WITH INIT
GO
/* Backup Master Model */ 
BACKUP DATABASE Model 
TO DISK = 'E:\SystemDatabaseBackups\Model.BAK' 
WITH INIT
GO
/* Backup Master Database */ 
BACKUP DATABASE Master 
TO DISK = 'E:\SystemDatabaseBackups\Master.BAK' 
WITH INIT
GO
/* Backup Master MSDB */ 
BACKUP DATABASE MSDB 
TO DISK = 'E:\SystemDatabaseBackups\MSDB.BAK' 
WITH INIT
GO
/* Copy Resource Database Files Using XP_CMDSHELL */ 
EXEC xp_cmdshell 'COPY /Y "D:\Program Files\Microsoft SQL Server\MSSQL10.
SQL2008\MSSQL\Binn\mssqlsystemresource.mdf" "E:\SystemDatabaseBackups"' 
GO
EXEC xp_cmdshell 'COPY /Y "D:\Program Files\Microsoft SQL Server\MSSQL10.
SQL2008\MSSQL\Binn\mssqlsystemresource.ldf" "E:\SystemDatabaseBackups"'
GO
SELECT GETDATE() AS 'System Database Backup End Time'
GO




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值