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

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 原文: SQL Server系统数据库备份最佳实践 首先了解主要的系统数据库: 系统数据库 master 包含登录信息和其他数据库的核心信息 msdb 存储作业、操作员、警报、备份还原历史。
原文: 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




目录
相关文章
|
2天前
|
SQL 关系型数据库 MySQL
Go语言项目高效对接SQL数据库:实践技巧与方法
在Go语言项目中,与SQL数据库进行对接是一项基础且重要的任务
20 11
|
1天前
|
SQL 数据库 数据库管理
数据库SQL函数应用技巧与方法
在数据库管理中,SQL函数是处理和分析数据的强大工具
|
2天前
|
SQL Java 数据库连接
如何使用`DriverManager.getConnection()`连接数据库,并利用`PreparedStatement`执行参数化查询,有效防止SQL注入。
【10月更文挑战第6天】在代码与逻辑交织的世界中,我从一名数据库新手出发,通过不断探索与实践,最终成为熟练掌握JDBC的开发者。这段旅程充满挑战与惊喜,从建立数据库连接到执行SQL语句,再到理解事务管理和批处理等高级功能,每一步都让我对JDBC有了更深的认识。示例代码展示了如何使用`DriverManager.getConnection()`连接数据库,并利用`PreparedStatement`执行参数化查询,有效防止SQL注入。
12 5
|
1天前
|
SQL 存储 关系型数据库
添加数据到数据库的SQL语句详解与实践技巧
在数据库管理中,添加数据是一个基本操作,它涉及到向表中插入新的记录
|
2天前
|
SQL 存储 数据库
SQL在构建系统中的应用:关键要素与编写技巧
在构建基于数据库的系统时,SQL(Structured Query Language)扮演着至关重要的角色
|
1天前
|
SQL 机器学习/深度学习 数据采集
SQL与Python集成:数据库操作无缝衔接2332.bijius.com
自动化数据预处理:使用Python库(如Pandas)自动清洗、转换和准备数据,为机器学习模型提供高质量输入。 实时数据处理:集成Apache Kafka或Amazon Kinesis等流处理系统,实现实时数据更新和分析。
|
1天前
|
SQL 数据库连接 数据库
管理系统中的Visual Studio与SQL集成技巧与方法
在现代软件开发和管理系统中,Visual Studio(VS)作为强大的集成开发环境(IDE),与SQL数据库的紧密集成是构建高效、可靠应用程序的关键
|
1天前
|
SQL 机器学习/深度学习 数据采集
SQL与Python集成:数据库操作无缝衔接2a.bijius.com
Python与SQL的集成是现代数据科学和工程实践的核心。通过有效的数据查询、管理与自动化,可以显著提升数据分析和决策过程的效率与准确性。随着技术的不断发展,这种集成的应用场景将更加广泛,为数据驱动的创新提供更强大的支持。
|
1天前
|
SQL 机器学习/深度学习 数据库
SQL与Python集成:数据库操作无缝衔接
1. Python与SQL集成的关键步骤 在开始之前,确保你已经安装了必要的Python库,如`sqlite3`(用于SQLite数据库)或`psycopg2`(用于PostgreSQL数据库)。这些库提供了Python与SQL数据库之间的接口。
|
3天前
|
SQL 存储 NoSQL
SQL和NoSQL数据库的全面比较
不可否认,已有越来越多开发人员愿意使用NoSQL数据库,并且在不断地壮大着其相应的社区。但是,相对于成熟的SQL社区,该领域的专家和顾问可能需要更多的时间,去解决那些未曾被记录的NoSQL问题。
14 0