SQL Server 2008备份大全实战(七)

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:


这一篇博文探讨下SQL Server 2008 备份的实际操作,事实上SQL Server 2008并不关心数据是备份到物理磁盘上还是磁带上,在SQL Server 2008数据库备份中,预定义的目标位置叫做设备。这里设备是对硬盘,磁带机等备份存储的通称。通俗些讲,SQL Server 2008是把数据备份到备份设备中。当然,SQL Server 2008同样也支持直接把数据备份到物理磁盘的物理文件上。可以通过T-SQLSSMS图形化,SMO等创建备份设备。

为了最大化保证数据的完整性和可用性,这一篇博文的Demo全部在完整恢复模式和100兼容级别下完成,可以通过下面的语句查看当前数据库的恢复模式和兼容级别,比如查看AdventureWorks2008数据库的恢复模式和兼容级别
select  name,recovery_model_desc,compatibility_level  from sys.databases 
where  DB_NAME(database_id) =  'AdventureWorks2008'
 
新创建的用户数据库与model 数据库使用相同的恢复模式。若希望新数据库使用简单恢复模式,请将model 的恢复模式更改为简单。默认master,msdb,tempdb为简单恢复模式,model为完整恢复模式。
当然也可以通过SSMS图形界面查看一个数据库的恢复模式和兼容级别,SSMS->右键单击某个数据库选择属性->选项,如下图:
 
 
如何创建备份设别呢?可以通过 sp_addumpdevice 存储过程,语法如下:
sp_addumpdevice  [ @devtype = ] 'device_type'
        , [ @logicalname = ] 'logical_name'
        @physicalname = 'physical_name'
device_type 表示备份设备的类型,可以使用disk(磁盘)或磁带(tape)2个枚举,disk表示用硬盘文件作为备份设备。tape表示 windows  支持的任何磁带设备。tape在未来版本中可能将不再支持,所以尽量使用disk
logical_name 表示备份设备的逻辑名称。在 BACKUP  RESTORE 语句中将会被使用。
physical_name 表示备份设备的物理名称。
通过磁盘文件来创建备份设备:
use master; 
go 
exec  sp_addumpdevice  'disk''DemoDB2008ToDisk''c:\sql2008trainning\BackupDB\DemoDB2008Device.bak';
 
还可以通过网络共享磁盘文件来创建备份设备:
use master; 
go 
exec  sp_addumpdevice  'disk''DemoDB2008ToDisk''\\192.168.1.159\ShareBakFromLiTao\DemoDB2008Device.bak';
 
当然也可以通过SSMS图形化创建备份设备,因为比较简单,这里就不再演示。
下面就来演示创建各种数据库备份,比如我有一个DemoDB2008这样的数据库,那么使用备份设备DemoDB2008ToDisk创建各种备份的代码如下:
--完整备份数据库到备份设备 
backup  database DemoDB2008 
to DemoDB2008ToDisk --备份设备 
with  name= 'DemoDB2008 完整备份',    
description= 'DemoDB2008 backup' 

--差异备份数据库到备份设备 
backup  database DemoDB2008 
to DemoDB2008ToDisk 
with differential, name= 'DemoDB2008 差异备份' 

--备份事务日志到备份设备 
backup  log DemoDB2008 
to DemoDB2008ToDisk 
with  name =  'DemoDB2008 日志备份' 

--仅拷贝数据库到备份设备 
backup  database DemoDB2008 
to DemoDB2008ToDisk 
with copy_only 

--尾日志备份-- 
backup  log DemoDB2008 
to DemoDB2008ToDisk 
with  name =  'DemoDB2008 尾日志备份',norecovery
为了演示部分备份和文件备份,这里提供一个合适的数据库,同时假定阅读这篇博文的朋友已经熟悉数据库文件类型和文件组类型,创建数据库的代码如下:
create  database DemoDBForPartial 
on  primary 

   name = N 'demoDB'
   filename = N 'c:\dbFiles\demoDB.mdf'
   size = 3, 
  maxsize = unlimited, 
   filegrowth = 1 
), 

   name = N 'demoDB01'
   filename = N 'c:\dbFiles\demoDB01.ndf'
   size = 5, 
  maxsize = 1000, 
   filegrowth = 2 
), 
filegroup fgJanuary    

   name = N 'demoDB02'
   filename = N 'c:\dbFiles\demoDB02.ndf'
   size = 10, 
  maxsize = 30, 
   filegrowth = 5 
), 
filegroup fgFebruary 

   name = N 'demoDB03'
   filename = N 'c:\dbFiles\demoDB03.ndf'
   size = 25, 
  maxsize = 928, 
   filegrowth = 20 
), 

   name = N 'demoDB04'
   filename = N 'c:\dbFiles\demoDB04.ndf'
   size = 25, 
  maxsize = 1024, 
   filegrowth = 20 
), 
filegroup fgMarch 

   name = N 'demoDB05'
   filename = N 'c:\dbFiles\demoDB05.ndf'
   size = 25, 
  maxsize = 200, 
   filegrowth = 20 
), 

   name = N 'demoDB06'
   filename = N 'c:\dbFiles\demoDB06.ndf'
   size = 25, 
  maxsize = 50, 
   filegrowth = 20 

log  on    

   name = N 'demoDB_log'
   filename = N 'c:\dbFiles\demoDB_log.ldf'
   size = 1, 
  maxsize = 1000, 
   filegrowth = 10% 
)
 
首先创建备份设备DemoDBForPartialToDisk,如下:
use master; 
go 
exec  sp_addumpdevice  'disk''DemoDBForPartialToDisk''c:\sql2008trainning\BackupDB\DemoDBForPartialDevice.bak'
 
部分备份包含主文件组、每个读写文件组以及任何指定(可选)的只读文件组中的所有数据。
第一个 部分备份 演示:由于刚创建的数据库 DemoDBForPartial 没有只读文件组,所以这个备份只包含主文件组和每个读写文件组,代码如下:
backup  database DemoDBForPartial read_write_filegroups 
to DemoDBForPartialToDisk
 
第二个部分备份演示:为了演示备份只读文件组,先修改数据库,代码如下:
alter  database DemoDBForPartial modify filegroup fgJanuary readonly 
alter  database DemoDBForPartial modify filegroup fgMarch readonly
 
接着再次进行部分备份,这次指定一个只读文件组fgMarch,代码如下:

backup  database DemoDBForPartial read_write_filegroups,filegroup =  'fgMarch' 
to DemoDBForPartialToDisk
 
文件备份包含一个或多个文件(或文件组)中的所有数据,文件备份的代码如下:
文件组备份:
backup  database DemoDBForPartial filegroup =  'primary',    filegroup =  'fgFebruary' , filegroup =  'fgmarch'    
to    DemoDBForPartialToDisk    
with  name =  'demodbforpartial-完整文件和文件组备份' 

backup  database DemoDBForPartial  file =  'demodb05',     file =  'demodb03',    filegroup =  'primary'    
to    DemoDBForPartialToDisk    
with  name =  'demodbforpartial-完整文件和文件组备份'
 
文件备份:
backup  database DemoDBForPartial  file =  'demodb03',     file =  'demodb05'    
to    DemoDBForPartialToDisk    
with  name =  'demodbforpartial-完整文件备份'
 
差异文件组备份:
backup  database DemoDBForPartial filegroup =  'primary',    filegroup =  'fgFebruary' , filegroup =  'fgmarch'    
to    DemoDBForPartialToDisk    
with  name =  'demodbforpartial-差异文件组备份',differential
 
如果你不习惯备份到备份设备,也可以直接备份到磁盘文件,代码如下:
--完整备份数据库到磁盘文件 
backup  database DemoDB2008  --备份数据库 
to  disk= 'c:\sql2008trainning\BackupDB\DemoDB2008.bak' 
with  name= 'DemoDB2008 完整备份',    
description= 'DemoDB2008 backup' 

--差异备份数据库到磁盘文件 
backup  database DemoDB2008 
to  disk =  'c:\sql2008trainning\BackupDB\DemoDB2008.bak' 
with differential, name= 'DemoDB2008 差异备份' 

--备份事务日志到磁盘文件 
backup  log DemoDB2008 
to  disk =  'c:\sql2008trainning\BackupDB\DemoDB2008.bak' 
with  name =  'DemoDB2008 日志备份' 

--拷贝数据库到磁盘文件 
backup  database DemoDB2008 
to  disk= 'c:\sql2008trainning\BackupDB\DemoDB2008_copy.bak' 
with copy_only



















本文转自terryli51CTO博客,原文链接:http://blog.51cto.com/terryli/485782 ,如需转载请自行联系原作者

 
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
6天前
|
SQL DataWorks NoSQL
DataWorks产品使用合集之如何将SQL Server中的数据转存到MongoDB
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
30天前
|
SQL API 流计算
实时计算 Flink版产品使用合集之在Mac M1下的Docker环境中开启SQL Server代理的操作步骤是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
156 1
|
6天前
|
SQL 安全 数据库
精通SQL:数据库查询与管理的实战指南
一、引言 在当今数字化时代,[数据库](https://www.iyxwzx.com/)已成为企业、组织和个人不可或缺的数据[管理](https://www.iyxwzx.com/news/)工具
|
12天前
|
SQL 数据库
sql2003备份数据库
在 SQL Server 2003 中,实际上你可能是在提及 SQL Server 2000 或 SQL Server 2005,因为 SQL Server 2003 不是一个官方版本。不过,无论是
|
24天前
|
SQL 存储 搜索推荐
SQL server增删改查(1)
SQL server增删改查(1)
106 0
|
24天前
|
SQL 关系型数据库 数据库
阿里云数据库 RDS SQL Server版实战【性能优化实践、优点探析】
本文探讨了Amazon RDS SQL Server版在云数据库中的优势,包括高可用性、可扩展性、管理便捷、安全性和成本效益。通过多可用区部署和自动备份,RDS确保数据安全和持久性,并支持自动扩展以适应流量波动。可视化管理界面简化了监控和操作,而数据加密和访问控制等功能保障了安全性。此外,弹性计费模式降低了运维成本。实战应用显示,RDS SQL Server版能有效助力企业在促销高峰期稳定系统并保障数据安全。阿里云的RDS SQL Server版还提供了弹性伸缩、自动备份恢复、安全性和高可用性功能,进一步优化性能和成本控制,并与AWS生态系统无缝集成,支持多种开发语言和框架。
169 2
|
24天前
|
SQL JSON atlas
实时计算 Flink版产品使用合集之SQL Server CDC是否支持抽取SQL Server视图
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
25天前
|
SQL 关系型数据库 MySQL
sql性能优化及实战
sql性能优化及实战
26 0
|
29天前
|
SQL 数据处理 API
实时计算 Flink版产品使用合集之遇到SQL Server锁表问题如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
31 0
|
1月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用合集之当 SQL Server 源数据库中的数据更新后,CDC 吐出的操作(op)是怎样的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。