您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > 第十一章 备份恢复导入导出
SQLServer实用教程Page12020年7月6日星期一第11章备份恢复与导入导出11.1备份与恢复的基本概念11.2备份数据库11.3恢复数据库11.4导入与导出SQLServer实用教程Page22020年7月6日星期一数据库的备份与恢复是数据库管理中一项十分重要的工作,采用适当的备份策略增强数据备份的效果,能把数据损失控制在最小。要求:通过本章学习,掌握以下内容:熟练掌握数据库的备份与恢复的方法掌握数据导入导出的方法SQLServer实用教程Page32020年7月6日星期一11.1备份与恢复的基本概念数据库备份是复制数据库结构、对象和数据的拷贝,以便数据库遭受破坏时能够修复数据库。数据库恢复是指将备份的数据库再加载到数据库服务器中。不但要备份用户数据库,也要备份系统数据库。系统数据库中存储了SQLServer的服务器配置信息、登录信息、用户数据库信息、作业信息等。SQLServer实用教程Page42020年7月6日星期一通常在下列情况下备份系统数据库。(1)修改master数据库之后(2)修改msdb数据库之后(3)修改model数据库之后通常在下列情况下备份用户数据库。(1)创建数据库之后(2)创建索引之后(3)清理事务日志之后(4)执行大容量数据操作之后当执行完大容量数据装载语句或修改语句后,SQLServer不会将这些大容量的数据处理活动记录到日志中,所以应当进行数据库备份。SQLServer实用教程Page52020年7月6日星期一SQLServer支持在线备份,但在备份过程中不允许执行以下操作。(1)创建或删除数据库文件。(2)创建索引(3)自动或手工缩小数据库或数据库文件大小。SQLServer实用教程Page62020年7月6日星期一1.SQLServer提供了4种数据库备份方式。(1)数据库完全备份(2)数据库差异备份(3)事务日志备份(4)文件或文件组备份2.备份设备(1)磁盘设备(2)磁带设备(3)物理和逻辑设备SQLServer实用教程Page72020年7月6日星期一一旦系统发生崩溃或执行错误的操作后,就可以从先前的备份中恢复数据库。数据库恢复是指将数据库备份重新加载到系统中的过程。SQLServer实用教程Page82020年7月6日星期一恢复模式描述简单恢复模式数据库的完整或差异副本截断事务日志完整恢复模式包括数据库备份和事务日志备份大容量日志恢复包括数据库和事务日志备份,但使用较少的日志空间恢复模式SQLServer实用教程Page92020年7月6日星期一11.2备份数据库创建备份设备一种方式是先将一个物理设备建成一个备份设备,然后将数据库备份到该备份设备上;另一种方式是直接将数据库备份到物理设备上创建备份设备的语法:sp_addumpdevice'设备类型','逻辑名','物理名'(1)设备类型:备份设备的类型,硬盘为“disk”(2)逻辑名:备份设备的逻辑名称(3)物理名:备份设备的物理名称,包括完整路径SQLServer实用教程Page102020年7月6日星期一备份数据库的语法:BACKUPDATABASE数据库名TO备份设备[WITH[NAME='备份的名称'][,INIT|NOINIT](1)备份设备:可为逻辑名、物理名(2)备份的名称:生成的备份包的名称(3)INIT:新的备份数据将覆盖备份设备上原来的备份数据。(4)NOINIT:新备份的数据将追加到备份设备上已备份数据的后面。SQLServer实用教程Page112020年7月6日星期一对于差异备份则在WITH子句中增加限定词DIFFERENTIAL日志备份语法:BACKUPLOG数据库名TO备份设备(逻辑名|物理名)[WITH[NAME=‘备份的名称’][,INIT|NOINIT]]文件和文件组备份语法:BACKUPDATABASE数据库名FILE='数据库文件的逻辑名'|FILEGROUP='数据库文件组的逻辑名‘TO备份设备(逻辑名|物理名)[WITH[NAME='备份的名称'][,INIT|NOINIT]]SQLServer实用教程Page122020年7月6日星期一【例】创建备份设备SJBACK,在该备份设备上创建xsgl数据库的完全备份,备份名为xsglbak。EXECsp_addumpdevice'DISK','SJBACK','E:\SQL\xsgl.bak'EXECsp_dropdevice'SJBACK'BACKUPDATABASExsglTOSJBACKWITHINIT,NAME='xsglbak'SQLServer实用教程Page132020年7月6日星期一【例】将数据库xsgl的差异和日志备份到物理文件E:\SQL\DIFFER.BAK上,备份名differbak。BACKUPDATABASExsglTODISK='E:\SQL\DIFFER.BAK'WITHDIFFERENTIAL,INIT,NAME='differbak'BACKUPLOGxsglTODISK='E:\SQL\DIFFER.BAK'WITHNOINIT,NAME='differbak'SQLServer实用教程Page142020年7月6日星期一11.3恢复数据库恢复数据库是原备份的数据库还原到当前的数据库中。恢复数据库前的准备1.验证备份文件的有效性2.断开用户与数据库的连接3.备份事务日志SQLServer实用教程Page152020年7月6日星期一还原选项“覆盖现有数据库”:则会覆盖所有现有数据库以及相关文件,包括存在的同名其他数据库或文件。“保留复制设置”:则会将已发布的数据库还原到创建该数据库的服务器之外的服务器上。“还原每个备份之前进行提示”:则在还原每个备份设备前都会要求确认。“限制访问还原的数据库”:则还原的数据库仅db_owner、dbcreator或sysadmin成员使用。SQLServer实用教程Page162020年7月6日星期一恢复完全备份和差异备份语法如下:RESTOREDATABASE数据库名FROM备份设备[WITH[FILE=n][,NORECOVERY|RECOVERY],[REPLACE]]FILE=n:指出从设备上的第几个备份中恢复RECOVERY:在数据库恢复完成后SQLServer回滚被恢复的数据库中所有未完成的事务,以保持数据库的一致性REPLACE表示要创建一个新的数据库,并将备份还原到这个新的数据库,如果服务器上存在同名数据库,则原来的数据库被删除。SQLServer实用教程Page172020年7月6日星期一【例】已对数据库xsgl进行一次完全备份,再进行一次差异备份,数据库备份进行还原BACKUPDATABASExsglTOSJBACKWITHDIFFERENTIAL,NAME='abBak'GO--确保不再使用xsglUSEmaster--还原数据库完全备份RESTOREDATABASExsglFROMSJBACKWITHFILE=1,NORECOVERY--还原数据库差异备份RESTOREDATABASExsglFROMSJBACKWITHFILE=2,RECOVERYGOSQLServer实用教程Page182020年7月6日星期一恢复事务日志语法格式:RESTORELOG数据库名FROM备份设备[WITH[FILE=n][,NORECOVERY|RECOVERY]]【例】对xjgl备份基础上再进行一次日志备份,然后还原备份BACKUPLOGxsglTOSJBACKWITHNAME='abBak'GOUSEmasterRESTOREDATABASExsglFROMSJBACKWITHFILE=1,NORECOVERYRESTOREDATABASExsglFROMSJBACKWITHFILE=2,NORECOVERYRESTORELOGxsglFROMSJBACKWITHFILE=3,RECOVERYGOSQLServer实用教程Page192020年7月6日星期一恢复部分数据库或文件文件组语法:RESTOREDATABASE数据库名FILE=文件名|FILEGROUP=文件组名FROM备份设备[WITHPARTIAL[,FILE=n][,NORECOVERY][,REPLACE]]SQLServer实用教程Page202020年7月6日星期一11.4导入与导出SQLServer2008提供了一个数据导入导出的工具,这是一个向导程序,用于在不同的SQLServer服务器之间,以及SQLServer与其他类型的数据库或数据文件之间进行数据交换。1.导出数据(见实际操作)2.导入数据(见实际操作)
本文标题:第十一章 备份恢复导入导出
链接地址:https://www.777doc.com/doc-6340403 .html