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

系统 1618 0
原文: SQL Server系统数据库备份最佳实践

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

系统数据库
master 包含登录信息和其他数据库的核心信息
msdb 存储作业、操作员、警报、备份还原历史。数据库邮件信息等等。
model 所有新数据库的模型,如果希望新数据库都有某些对象,可以在这里创建。
tempdb sql 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
  




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


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论