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

原文: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

时间: 2024-10-25 22:43:55

SQL Server系统数据库备份最佳实践的相关文章

SQL Server 系统数据库恢复

标签:SQL SERVER/MSSQL SERVER/数据库/DBA/故障恢复/master 概述 SQL Server 维护一组系统级数据库(称为“系统数据库”),这些数据库对于服务器实例的运行至关重要.每次进行大量更新后,都必须备份多个系统数据库.必须备份的系统数据库包括 msdb.master 和 model.如果有任何数据库在服务器实例上使用了复制,则还必须备份 distribution 系统数据库.备份这些系统数据库,就可以在发生系统故障(例如硬盘丢失)时还原和恢复 SQL Serve

SQL Server 2012 数据库备份

--以下是完整数据库备份 USE [AdventureWorks2012] GO /****** Object: StoredProcedure [dbo].[pr_BatchBackUPDatabase] Script Date: 2015/12/29 15:26:27 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ----------执行此脚本需要先执行表值函数--------- --use [AdventureWorks2

sql server系统数据库

一.系统数据库表(master) select * from sysaltfiles 主数据库,保存数据库的文件select * from syscharsets 主数据库字符集与排序顺序select * from sysconfigures 主数据库,配置选项select * from syscurconfigs 主数据库当前配置选项select * from sysdatabases 主数据库服务器中的数据库select * from syslanguages 主数据库语言select *

(原)SQL Server 系统提供功能的三个疑惑

本文目录列表: 1.SQL Server系统提供的部分疑惑概述2.系统函数调用时DEFAULT代替可选参数使用不统一3.队列字段列message_enqueue_time记录的是UTC日期时间 4.@@Pack_Received系统函数提示信息有错误 5.总结语6.参考清单列表 正文: 1.SQL Server系统提供的部分疑惑概述   近来工作之余一直在系统地学习和研究SQL Server 数据库引擎这一整块,发现了一些原来没有太注意的东西,感觉SQL Server 光数据库引擎这块就有很多要

通过SQL Server 2008数据库复制实现数据库同步备份

SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份.这里的同步备份指的是备份服务器与主服务器进行 实时数据同步,正常情况下只使用主数据库服务器,备份服务器只在主服务器出现故障时投入使用.它是一种优于文件备份的数据库备份解决方案. 在选择数据库同步备份解决方案时,我们评估了两种方式:SQL Server 2008的数据库镜像和SQL Server 2008数据库复制.数据库镜像的优点是系统能自动发现主服务器故障,并且自动切换至镜

Sql Server R2还有备份数据库错误

错误信息描述  该数据库是运行版本10.50.1600的服务器上备份的.该版本与此服务器(运行版本10.00.1600)不兼容.请在支持该被份的服务器上还原该数据,  或者使用与此服务器兼容的备份(MicrosoftSqlServer.Smo) 错误原因  本机上两个数据库一个是sql server版本,另个就sql server r2版本.  数据备份文件应该在sql server r2版本上附加而,我的sql server r2版本登陆所用的实例是sql server版本的所以引发数据还原不

SQLServer2008修改sa密码的方法与SQL server 2008数据库的备份与还原

sa密码的修改转载自:http://blog.csdn.net/templar1000/article/details/20211191 SQL server 2008数据库的备份与还原转自 :http://www.cnblogs.com/zgqys1980/archive/2012/07/04/2576382.html 一.SQLServer2008修改sa密码的方法 1. 先用Window身份验证方式登陆进去,选择数据库实例,右键选择属性--安全性:把服务器身份验证选项从"Window身份验

sql server 2012数据库镜像

sql server 2012数据库镜像 以下通过域帐户来配置数据库镜像: 一.环境准备 1.准备计算机 AD02为域控制器/DNS服务器(sz1card1.com),IP:192.168.2.218/24,AD02安装成为域控制器.DNS服务(这里不做演示) W67为主体服务器,IP:192.168.2.67/24,安装SQL SERVER 2012 企业核心版(这里不做演示) W65为镜像服务器,IP:192.168.2.65/24,安装SQL SERVER 2012 企业核心版(这里不做演

sql server 2005 数据库迁移问题总结——"错误15023:当前数据库中已存在用户或角色"

在数据库迁移过程中,如何设置不好用户与登录,会造成"错误15023:当前数据库中已存在用户或角色". 现在整理下思路: 1.在原数据库进行数据库备份 ***.bak 文件: 2.在新建数据库,建立与原数据库相同的登录名: 3.在新数据库上恢复备份的数据库文件 ***.bak 文件:选择覆盖原数据库文件: 4.将数据库恢复到其他服务器时,需要处理"孤立用户"的问题.具体解决办法如下: 用户和权限,但可能没有相应的登录或者登录所关联的用户可能不是相同的用户.这种情况被称