《sql_server_备份、还原与移动数据库》由会员分享,可在线阅读,更多相关《sql_server_备份、还原与移动数据库(20页珍藏版)》请在金锄头文库上搜索。
1、第 11 章备份、还原与移动数据库n备份概述备份概述 n备份类型备份类型n创建备份设备创建备份设备n数据库备份的执行数据库备份的执行 n还原概述还原概述n还原数据库还原数据库n数据库快照数据库快照n从数据库快照恢复数据从数据库快照恢复数据备份概述:备份概述: microsoft sql server 2005提供了高性能的备份和还原机制。数提供了高性能的备份和还原机制。数据库备份可以创建备份完成时数据库内存在的数据的副本,这个副本能据库备份可以创建备份完成时数据库内存在的数据的副本,这个副本能在遇到故障时恢复数据库。在遇到故障时恢复数据库。 这些故障包括:媒体故障,硬件故障,用户操作错误,自然
2、灾害等。这些故障包括:媒体故障,硬件故障,用户操作错误,自然灾害等。数据库备份对于例行的工作(例如,将数据库从一台服务器复制到另一数据库备份对于例行的工作(例如,将数据库从一台服务器复制到另一台服务器、设置数据库镜像、政府机构文件归档和灾难恢复)也很有用。台服务器、设置数据库镜像、政府机构文件归档和灾难恢复)也很有用。 对对sql server数据库或事务日志进行备份时,数据库备份记录了在数据库或事务日志进行备份时,数据库备份记录了在进行备份这一操作时数据库中所有数据的状态,以便在数据库遭到破坏进行备份这一操作时数据库中所有数据的状态,以便在数据库遭到破坏时能够及时地将其恢复。时能够及时地将其
3、恢复。sql server备份数据库是动态的,在进行数据备份数据库是动态的,在进行数据库备份时,库备份时,sql server允许其他用户继续对数据库进行操作。允许其他用户继续对数据库进行操作。备份类型描述完整备份完整备份完整备份包含所有数据文件和部分事务日志完整备份包含所有数据文件和部分事务日志 事务日志备份事务日志备份 所有数据库更改所有数据库更改 尾日志备份尾日志备份 包含上一次未备份的日志部分(称为日志的包含上一次未备份的日志部分(称为日志的“活动部活动部分分”)的事务日志备份)的事务日志备份 差异备份差异备份 备份上一次完整数据库备份之后被更改的数据库部分备份上一次完整数据库备份之后
4、被更改的数据库部分 文件或文件组备文件或文件组备份份 制定的文件或文件组(超大型数据库进行完整备份不制定的文件或文件组(超大型数据库进行完整备份不可取)可取)部分备份部分备份 包含主文件组、每个读写文件组以及所有指定的读写包含主文件组、每个读写文件组以及所有指定的读写文件中的全部数据文件中的全部数据 仅复制备份仅复制备份 数据库或日志数据库或日志 (不影响整体备份不影响整体备份) 备份类型:备份类型:总结:总结:sql server 2005提供了四种不同的备份方式,它们分别为:提供了四种不同的备份方式,它们分别为:(1)完整备份和完整差异备份)完整备份和完整差异备份(2)部分备份和部分差异备
5、份)部分备份和部分差异备份(3)事务日志备份)事务日志备份(4)数据库文件和文件组备份。)数据库文件和文件组备份。恢复模式 描述简单恢复模式简单恢复模式 数据库的完整或差异副本数据库的完整或差异副本 截断事务日志截断事务日志完整恢复模式完整恢复模式 包括数据库备份和事务日志备份包括数据库备份和事务日志备份 大容量日志恢复大容量日志恢复 包括数据库和事务日志备份包括数据库和事务日志备份, 但使用但使用较少的日志空间较少的日志空间 恢复模式中包含的备份类型:恢复模式中包含的备份类型:n以下情况应采用完整数据库备份 :q数据库较小q数据库具有很少的数据修改操作或是只读数据库时 n如果采用完整数据库备
6、份,则要定期清除事务日志星期日星期日星期一星期一星期二星期二完整数据库备份策略:完整数据库备份策略:n使用数据库和事务日志备份策略的场合:q修改频繁的数据库 q完整备份耗时太长星期日星期日星期一星期一数据库和事务日志备份策略:数据库和事务日志备份策略:n使用差异备份策略的场合:q数据库频繁修改q需要进行最小化备份时n单独备份事务日志星期一星期一星期二星期二差异备份策略:差异备份策略:n使用文件或文件组备份策略的场合:q超大型数据库 q完整备份时间太长n单独备份事务日志n可能管理比较复杂星期日星期日星期一星期一星期二星期二星期三星期三数据文数据文件件 1数据文数据文件件 2数据文数据文件件3文件
7、或文件组备份策略:文件或文件组备份策略:多媒体:多媒体: 大批量日志备份选项大批量日志备份选项 在这个交互式多媒体中,企业的数据在这个交互式多媒体中,企业的数据库每天将导入库每天将导入5百万条数据,这会给事务日百万条数据,这会给事务日志备份带来很大负担。通过修改数据库选志备份带来很大负担。通过修改数据库选项,可以解决这个问题。项,可以解决这个问题。创建备份设备:创建备份设备: 备份或还原操作中使用的磁带机或磁盘驱动器称为备份或还原操作中使用的磁带机或磁盘驱动器称为“备份设备备份设备”。 在创建备份时,必须选择要将数据写入的备份设备。在创建备份时,必须选择要将数据写入的备份设备。 microso
8、ft sql server 2005 可以将数据库、事务日志和文件备份到磁盘和磁带设可以将数据库、事务日志和文件备份到磁盘和磁带设备上。备上。 使用使用sql server 管理平台创建备份设备:管理平台创建备份设备: 在在sql server 管理平台中,选择想要创建备份设备的管理平台中,选择想要创建备份设备的服务器服务器,打开打开服务器对象服务器对象文件夹。文件夹。 执行备份操作必须拥有对数据库备份的权限许可,执行备份操作必须拥有对数据库备份的权限许可,sql server只只允许系统管理员、数据库所有者和数据库备份执行者备份数据库。允许系统管理员、数据库所有者和数据库备份执行者备份数据库
9、。 备份是数据库系统管理的一项重要内容,也是系统管理员的日常工备份是数据库系统管理的一项重要内容,也是系统管理员的日常工作。作。 备份操作的权限:备份操作的权限:然后弹出备份设备对话框,如下图所然后弹出备份设备对话框,如下图所示。示。 在备份设备图标上右击,从弹出的快捷菜单在备份设备图标上右击,从弹出的快捷菜单中选择中选择新建备份设备新建备份设备选项,如图所示。选项,如图所示。 使用系统存储过程创建备份设备:使用系统存储过程创建备份设备: 在在sql server 中,可以使用中,可以使用sp_addumpdevice语句创建备份设备,语句创建备份设备,其语法形式如下:其语法形式如下:sp_a
10、ddumpdevice device_type,logical_name,physical_name,controller_type|device_status其中:其中:device_type表示设备类型,其值可为表示设备类型,其值可为 disk 和和 tape ; logical_name表示设备的逻辑名称;表示设备的逻辑名称; physical_name表示设备的实际名称;表示设备的实际名称; controller_type和和device_status可以不必输入。可以不必输入。举例:在磁盘上创建了一个备份设备。举例:在磁盘上创建了一个备份设备。程序清单如下:程序清单如下:use ma
11、sterexec sp_addumpdevice disk, test_backup, c:program filesmicrosoft sql servermssqlbackuptest_backup.bak 数据库备份的执行:数据库备份的执行: 使用使用sql server 管理平台进行备份:管理平台进行备份: 在在sql server 管理平台中,展开管理平台中,展开数据库数据库文件夹,右击所要进行文件夹,右击所要进行备份的数据库备份的数据库图标,在弹出的快捷菜单中选择图标,在弹出的快捷菜单中选择任务任务选项,再选择选项,再选择备份数据库备份数据库,如图所示。,如图所示。 出现出现sql
12、 server备份对话框,如图所示。图中有两个页框,即备份对话框,如图所示。图中有两个页框,即“常常规规”和和“选项选项”页框。页框。 单击单击添加添加按钮可以选择将备份添按钮可以选择将备份添加备份文件还是设备,如下图所示。加备份文件还是设备,如下图所示。 备份数据库的备份数据库的选项选项页框,如图:页框,如图: 使用备份向导:使用备份向导: 在在sql server管理平台中,点击视图菜单中的模板资源管理器。管理平台中,点击视图菜单中的模板资源管理器。 模板资源管理器中的模板是分组列出的。展开模板资源管理器中的模板是分组列出的。展开backup,再双,再双击击backup database。
13、 在在连接到数据库引擎连接到数据库引擎对话框中,填写对话框中,填写连接信息,再单击连接信息,再单击连接连接。此时将打开一个新查询编辑器窗口,其中。此时将打开一个新查询编辑器窗口,其中包含包含备份数据库备份数据库模板的内容,如图所示。模板的内容,如图所示。 按照按照backup database的语法规则,书写数据库备份的的语法规则,书写数据库备份的 sql 语句,语句,完成后执行此语句,即可完成数据库备份的操作。完成后执行此语句,即可完成数据库备份的操作。 backup语句的语语句的语法形式如下:法形式如下:backup database database_name|database_name
14、_varto ,nwith ,format, init | noinit,restart:=backup_file_name|backup_file_evar|disk|tape=temp_file_name|temp_file_name_evar举例:举例:创建一个名为创建一个名为 adventureworksback 的命名备份设备,的命名备份设备, 并执行完并执行完整的数据库备份。整的数据库备份。-创建一个名为创建一个名为 adventureworksback 的命名备份设备的命名备份设备-设备存储在设备存储在d:mybachupdir 目录下目录下-执行一个完整的数据库备份以备份到执行
15、一个完整的数据库备份以备份到adventureworksback文件中文件中程序清单如下:程序清单如下:use masterexec sp_addumpdevice disk, adventureworksback, d: mybachupdir adventureworksback.bak backup database adventureworks to adventureworksback1、backup database adventureworks to adventureworksback with init注意以下语句的不同之处:注意以下语句的不同之处:2、backup data
16、base adventureworks to adventureworksback with noinit3、backup database adventureworks to disk = d: mybachupdir adventureworksback.bak举例:举例:为日志创建一个备份设备,并备份为日志创建一个备份设备,并备份 adventureworks 数据库的事数据库的事务日志。务日志。-创建一个名为创建一个名为 awbacklog的备份设备的备份设备-备份备份 adventureworks 数据库的事务日志数据库的事务日志程序清单如下:程序清单如下:use masterexec sp_addumpdevice disk, awbacklog, d: bachup awbacklog.bak backup log adventureworks to awbacklog