您好,欢迎访问三七文档
项目6:数据库的备份与恢复任务6-1:创建备份设备,备份数据库任务6-2:还原数据库任务6-3:自动备份数据库任务6-4:分离与附加数据库任务6-5:数据的导入与导出任务6-1:创建备份设备,备份数据库1、备份概述备份是指数据库管理员定期或不定期地将数据库部分或全部内容复制到磁带或磁盘上保存起来的过程。当数据库遭到破坏时,可以利用备份进行数据库的恢复。备份的目的就是当数据库发生意外时,尽可能的减少数据的丢失。何时进行备份,取决于所能承受数据损失的大小。执行备份操作必须拥有数据库备份的权限。SQLServer2005支持的备份类型如下:完整数据库备份差异数据库备份部分备份部分差异备份事务日志备份文件和文件组备份完整数据库备份完整数据库备份是指备份数据库中当前所有的数据,包括事务日志。与差异备份和事务日志备份相比,完整数据库备份使用的存储空间多,完成备份操作需要的时间长,所以完整数据库备份的创建频率通常比差异备份或事务日志备份低。完整数据库备份适用备份容量较小或数据库中数据的修改较少的数据库。完整数据库备份是差异备份和事务日志备份的基准。差异数据库备份差异数据库备份是指备份自上次完整数据库备份以来更改的数据。差异数据库备份比完整数据库备份小而且备份速度快,因此可以经常地备份;经常备份将减少丢失数据的危险。差异数据库备份适合于修改频繁的数据库。事务日志备份事务日志备份是指备份自上次备份以来数据变化的过程,即事务日志文件的信息。其中的上次备份可以是完整数据库备份、差异数据库备份或事务日志备份。每个事务日志备份都包括创建备份时处于活动状态的部分事务日志,以及先前事务日志备份中未备份的所有日志记录。可以使用事务日志备份将数据库恢复到特定的即时点(如输入多余数据前的那一点)或恢复到故障点。文件和文件组备份文件和文件组备份适合于特大型数据库,因为一个很大的数据库要进行完全数据库备份需要很长的时间,那么可以将数据库的文件和文件组分别进行备份。使用文件和文件组备份可以只还原损坏的文件,而不用还原数据库的其余部分,从而加快了恢复速度。文件和文件组的备份又可以分为完整文件和文件组备份以及差异文件和文件组备份。备份后如果数据库发生了意外,一般应遵循如下的步骤进行恢复:如果当前日志没有损坏,首先备份事务日志。恢复最近的完整数据库备份。恢复最近的差异备份(如果进行过差异备份)。依次恢复自差异备份以后的所有事务日志备份(按备份的先后顺序恢复)。2、备份设备创建备份时,必须选择存放备份数据的备份设备,即存放备份的存储介质。备份设备可以是磁盘或磁带。当建立一个备份设备时要分配一个逻辑名称和一个物理名称。物理名称是操作系统用来标识备份设备的名称;逻辑名称是用户定义的,用来标识物理备份设备的别名。1)使用SQLServerManagementStudio创建备份设备2)使用系统存储过程sp_addumpdevice创建备份设备其语法格式如下:sp_addumpdevice'device_type','logical_name','physical_name'其中:device_type:是指备份设备类型,磁盘:disk;磁带:tape。logical_name:备份设备的逻辑名称。physical_name:备份设备的物理名称,包含完整路径。示例:本示例添加一个名为sales_backup的磁盘备份设备,其物理名称为D:\sales_backup.bak。EXECsp_addumpdevice'disk','sales_backup','d:\sales_backup.bak'3)使用系统存储过程sp_dropdevice删除备份设备其语法格式如下:sp_dropdevice'device'[,'delfile']其中:device:是指备份设备的逻辑名称。delfile:是否删除物理备份设备文件,列出‘delfile’参数则删除。示例:删除以上创建的备份设备。EXECsp_dropdevice'sales_backup'3、备份操作1)使用SQLServerManagementStudio备份数据库教材P199~200。2)使用T-SQL语句备份数据库①使用BACKUPDATABASE命令进行完整数据库备份和差异数据库备份,语法格式如下:BACKUPDATABASEdatabase_nameTObackup_device[WITH[INIT|NOINIT][[,]DIFFERENTIAL]]说明:DIFFERENTIAL:该选项表示进行差异数据库备份。backup_device:指定用于备份操作的备份设备,可以是逻辑名称或物理名称。如果是物理名称,要输入完整的路径和文件名。如:DISK=‘d:\BACKUP\mybackup.bak’。INIT:该选项表示重写备份集的数据。NOINIT:该选项表示备份数据将追加在原有的内容之后,NOINIT是默认设置。示例:本例为sales数据库创建一个完全数据库备份和一个差异数据库备份,将备份保存到sales_backup备份设备上。BACKUPDATABASEsalesTOsales_backupWITHINITGOBACKUPDATABASEsalesTOsales_backupwithdifferentialGO②使用BACKUPLOG命令进行事务日志备份,语法格式如下:BACKUPLOGdatabase_nameTObackup_device示例:本例为sales数据库创建一个事务日志备份。BACKUPLOGsalesTOsales_backup任务6-2:还原数据库1、恢复概述恢复数据库是加载备份并应用事务日志重建数据库的过程。在数据库的恢复过程中,用户不能进入数据库,即数据库是不能使用的。当你恢复数据库时,SQLServer自动执行安全性检查,防止你从不完整、不正确的备份或其他数据库备份恢复数据库。在恢复数据库之前,你必须保证备份文件是正确的。在SQLServer中,可以使用图形化界面和Transact-SQL语句进行数据库恢复。SQLServer2005提供了三种恢复模式,以确定如何备份数据以及能承受何种程度的数据丢失。简单恢复模式完全恢复模式大容量日志记录恢复模式简单恢复模式简单恢复模式可最大程度地减少事务日志的管理开销,事务日志自动截断,在此模式下不能进行事务日志备份。因此,使用简单恢复模式只能将数据库恢复到最后一次备份时的状态,无法将数据库还原到故障点或特定的即时点。在简单恢复模式下只能进行完整备份和差异备份。完全恢复模式完全恢复模式完整记录所有事务,因此能提供将数据库恢复到故障点或特定即时点的能力。在完全恢复模式下可以进行各种备份。大容量日志恢复模式大容量日志恢复模式简单的记录大容量操作的日志(如索引创建和大容量加载),完整地记录其他日志。大容量日志恢复模式提高了大容量操作的能力,常作为完全恢复模式的补充。2、恢复操作1)使用SQLServerManagementStudio恢复数据库教材P201~203。2)使用T-SQL语句恢复数据库①使用RESTOREDATABASE命令从完整备份和差异备份中还原数据库,语法格式如下:RESTOREDATABASEdatabase_nameFROMbackup_device[WITH[FILE=file_number][[,]{NORECOVERY|RECOVERY|STANDBY=undo_file_name}]]说明:FILE=file_number:标识要还原的备份集。例如,file_number为1表示备份媒体上的第一个备份集,file_number为2表示第二个备份集。NORECOVERY:表示还原操作不回滚任何未提交的事务。如果需要恢复另一个事务日志,则必须指定NORECOVERY或STANDBY选项。如果NORECOVERY、RECOVERY和STANDBY均未指定,则默认为RECOVERY。RECOVERY:表示还原操作回滚任何未提交的事务,在恢复后即可使用数据库。只有在最后一步恢复时使用。示例:从sales_backup备份设备中还原完全数据库备份后还原差异数据库备份。RESTOREDATABASEsalesFROMsales_backupWITHFILE=1,NORECOVERYGoRESTOREDATABASEsalesFROMsales_buckupWITHFILE=2Go②使用RESTORELOG命令从事务日志备份中还原数据库,语法格式如下:RESTORELOGdatabase_name…………示例:从sales_backup备份设备中还原完全数据库备份后、还原差异数据库备份、再还原事务日志备份。RESTOREDATABASEsalesFROMsales_backupWITHFILE=1,NORECOVERYGoRESTOREDATABASEsalesFROMsales_buckupWITHFILE=2,NORECOVERYGoRESTORELOGsalesFROMsales_buckupWITHFILE=3Go课堂练习(1)创建一个以自己姓名命名的数据库;(2)创建一张数据表,然后对该数据库执行1次完整备份;(3)创建两张数据表,每创建一张表后,对该数据库执行1次差异备份;(共实现了2次差异备份)(4)再次创建两张数据表,每创建一张表后,对该数据库执行1次事物日志备份;(共实现了2次事务日志备份)(5)还原数据库至第1次完整备份时的状态;(6)还原数据库至第2次差异备份时的状态;(7)还原数据库至第1次事物日志备份时的状态;(8)还原数据库至第2次事物日志备份时的状态。要求:分别使用SQLServerManagementStudio和T-SQL语句完成以上操作!任务6-3:自动备份数据库1、设置维护计划自动备份数据库创建数据库维护计划可以让SQLServer自动而有效地维护数据库,为系统管理员节省大量时间,也可以防止延误数据库的维护工作。在SQLServer数据库引擎中,维护计划可创建一个作业以按预定间隔自动执行这些维护任务。维护计划向导可以用于设置核心维护任务,从而确保数据库执行良好,做到定期备份数据库以防系统出现故障,对数据库实施不一致性检查。维护计划向导可创建一个或多个SQLServer代理作业,代理作业将按照计划的间隔自动执行这些维护任务。2、数据库维护计划向导展开服务器,再展开“管理”文件夹,右键单击“维护计划”,然后选择“维护计划向导”即可。任务6-4:分离与附加数据库1、使用SQLServerManagementStudio分离与附加数据库教材P204~205。2、使用系统存储过程sp_detach_db分离数据库其语法格式如下:sp_detach_db‘database_name’示例:sp_detach_db‘sales’3、使用系统存储过程sp_attach_db附加数据库其语法格式如下:sp_attach_db‘database_name’,‘filename_n’[,…]示例:sp_attach_db‘sales’,‘d:\data\sales_Data.MDF’,‘d:\data\sales_LOG.LDF’任务6-5:数据的导入与导出1、数据的导入教材P207~210。2、数据的导出教材P211。综合实验5详见:综合实验5数据库的备份与恢复.doc
本文标题:数据库的备份与恢复
链接地址:https://www.777doc.com/doc-3360634 .html