这一篇博文探讨下SQL Server 2008 备份的实际操作,事实上SQL Server 2008并不关心数据是备份到物理磁盘上还是磁带上,在SQL Server 2008数据库备份中,预定义的目标位置叫做设备。这里设备是对硬盘,磁带机等备份存储的通称。通俗些讲,SQL Server 2008是把数据备份到备份设备中。当然,SQL Server 2008同样也支持直接把数据备份到物理磁盘的物理文件上。可以通过T-SQL,SSMS图形化,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 Server 2008备份大全实战(七)相关推荐

  1. SQL Server 2008备份数据库失败,拒绝访问的原因

    SQL Server 2008备份数据库失败,拒绝访问的原因 原文:SQL Server 2008备份数据库失败,拒绝访问的原因 备份数据到特定目录是出现拒绝访问,然后测试备份到C盘根目录正常. 查了 ...

  2. SQL Server 2008空间数据应用系列七:基于Bing Maps(Silverlight) 的空间数据展现

    SQL Server 2008空间数据应用系列七:基于Bing Maps(Silverlight) 的空间数据展现 原文:SQL Server 2008空间数据应用系列七:基于Bing Maps(Si ...

  3. Sql Server数据库备份大全(Sql语句)

     首先简单的介绍一下Sql server 备份的类型有: 1:完整备份(所有的数据文件和部分的事务日志文件) 2:差异备份(最后一次完成备份后数据库改变的部分) 3:文件和文件组备份(对指定的文件 ...

  4. SQL Server 2008备份策略设计下(六)

    上一篇博文探讨了各种恢复模式和备份类型,这一节继续来探讨如何设计备份策略.设计一个数据库的最佳备份策略,会面临如何选择使用哪种恢复模式的问题,因为恢复模式控制着备份和还原的行为.一般来讲,简单恢复模式 ...

  5. 详细介绍微软SQL Server 2008

    SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQL Server版本.这篇文章详细介绍了Microsoft SQL Ser ...

  6. 微软 Sql Server 2008

    详细介绍微软SQL Server 2008 http://dev.yesky.com/264/7681264_4.shtml 2007-11-25 09:00 作者: 戴羽 出处: IT专家网 责任编 ...

  7. SQL Server 2005与SQL Server 2008 的区别

    随时随地管理您的数据 SQL Server 2008 在 Microsoft 的数据平台上发布,帮助您的组织随时随地管理任何数据.它可以将结构化.半结构化和非结构化文档的数据(例如图像和音乐)直接存储 ...

  8. [转]实战 SQL Server 2008 数据库误删除数据的恢复

    实战 SQL Server 2008 数据库误删除数据的恢复 关键字:SQL Server 2008, recover deleted records 今天有个朋友很着急地打电话给我,他用delete ...

  9. SQL SERVER 2008自动备份维护计划

    日常工作中利用SQL SQLSERVER 2008 的维护计划对数据库进行定期的备份,这样一方面可以对数据库进行备份保证数据安全另一方面也可以减轻对维护人员的负担.一般对于WEB 服务器进行维护都是在 ...

最新文章

  1. COGS 2353 2355 2356 2358 有标号的DAG计数
  2. C#利用WebClient 两种方式下载文件(一)
  3. python 画图 线标注_最简洁的Python时间序列可视化实现
  4. java 方法 示例_Java语言环境getDisplayCountry()方法与示例
  5. 第四章:滚动堆栈(6)
  6. 比特币技术Base58
  7. 「HenCoder Plus」Android 高级培养计划 FAQ
  8. windows系统上PrtSc,ScroLk,Pause等三个功能按钮的作用
  9. python评分卡模型
  10. 一纬度横直线等于多公里_【归纳整理】高中地理必修一知识点总结
  11. c#自定义类的指定字段排序
  12. 微软服务器系统突然要求密钥,买了Win10新电脑?小心微软偷走你的设备加密密钥...
  13. 子标签获取父级Id值
  14. 将谷歌浏览器 Chrome 已安装的插件打包成 crx 给其它电脑离线安装 +【怎么安装Chrome插件】安装Chrome第三方插件
  15. c++数据结构350、121
  16. JAVAWEB_基础面试题
  17. 企业防病毒体系建设的探讨
  18. 台湾大学林轩田教授机器学习基石课程理解及python实现----PLA
  19. 【Ansible自动化运维工具】Ansible变量之lookup生成变量方法
  20. 专升本英语——语法知识——高频语法——第七节 特殊句型(全倒装-半倒装-强调句型-感叹句型-祈使句)【学习笔记】

热门文章

  1. 图像配准----SIFT
  2. 【libevent】libevent库学习总结(一)——基础
  3. html在页面上div绝对定位,html – 中心浮动div在绝对定位div内
  4. android软件安全权威指南 pdf_AV-TEST 发布 2019 最佳 Android 安全软件榜单
  5. Redis初学:11(Redis的配置文件)
  6. java servlet 多线程_Servlet的多线程和线程安全
  7. git 忽略指定文件夹的上传
  8. json的简单的数据格式
  9. 人工智能时代,程序员要不要精通算法?
  10. 理解jQuery对象$.html