《课件第13章 数据库的备份和恢复.ppt》由会员分享,可在线阅读,更多相关《课件第13章 数据库的备份和恢复.ppt(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、LOGO本章主要内容:本章主要内容:数据库数据的备份与恢复备份前的准备工作和备份特点执行备份操作备份方法和备份策略还原前的准备工作和还原特点执行还原操作13.1 备份与恢复备份与恢复 备份是指数据库管理员定期或不定期备份是指数据库管理员定期或不定期地将数据库的部分或全部内容复制到磁带地将数据库的部分或全部内容复制到磁带或磁盘上进行保存的过程。当遇到介质故或磁盘上进行保存的过程。当遇到介质故障、用户错误障、用户错误(例如,误删了某个表例如,误删了某个表)、硬、硬件故障件故障(例如,磁盘驱动器损坏或服务器报例如,磁盘驱动器损坏或服务器报废废)、自然灾害等造成灾难性数据丢失时,、自然灾害等造成灾难性
2、数据丢失时,可以利用备份进行数据库的恢复。数据库可以利用备份进行数据库的恢复。数据库的备份与恢复是数据库文件管理中最常见的备份与恢复是数据库文件管理中最常见的操作,也是最简单的数据恢复方式。备的操作,也是最简单的数据恢复方式。备份数据库是可靠地保护份数据库是可靠地保护SQL Server数据数据的唯一方法。的唯一方法。 数据库备份可以在线环境中运行,所数据库备份可以在线环境中运行,所以根本不需要数据库离线。使用数据库备以根本不需要数据库离线。使用数据库备份能够将数据恢复到备份时的那一时刻,份能够将数据恢复到备份时的那一时刻,但是对备份以后的更改,在数据库文件和但是对备份以后的更改,在数据库文件
3、和日志损坏的情况下将无法找回,这是数据日志损坏的情况下将无法找回,这是数据库备份的主要缺点。库备份的主要缺点。 SQL Server 2016提供了提供了4种备份种备份类型:完整备份、差异备份、事务日志备类型:完整备份、差异备份、事务日志备份、文件和文件组备份。份、文件和文件组备份。13.1.1 备份类型备份类型1. 完整备份完整备份 完整数据库备份是指备份数据库中的完整数据库备份是指备份数据库中的所有数据,包括事务日志。与差异备份和所有数据,包括事务日志。与差异备份和事务日志备份相比,完整数据库备份占用事务日志备份相比,完整数据库备份占用的存储空间多,备份时间长。所以完整数的存储空间多,备份
4、时间长。所以完整数据库备份的创建频率通常比差异备份或事据库备份的创建频率通常比差异备份或事务日志备份低。完整备份适用于备份容量务日志备份低。完整备份适用于备份容量较小或数据库中数据的修改较少的数据库。较小或数据库中数据的修改较少的数据库。完整备份是差异备份和事务日志备份的基完整备份是差异备份和事务日志备份的基准。准。2. 差异备份差异备份 差异备份是完整备份的补充,只备份差异备份是完整备份的补充,只备份上次完整备份之后更改的数据。相对于完上次完整备份之后更改的数据。相对于完整备份来说,差异备份的数据量比完整数整备份来说,差异备份的数据量比完整数据备份小,备份的速度也比完整备份要快。据备份小,备
5、份的速度也比完整备份要快。因此,差异备份通常作为常用的备份方式。因此,差异备份通常作为常用的备份方式。差异备份适合于修改频繁的数据库。在还差异备份适合于修改频繁的数据库。在还原数据时,要先还原前一次做的完整备份,原数据时,要先还原前一次做的完整备份,然后还原最后一次所做的差异备份,这样然后还原最后一次所做的差异备份,这样才能让数据库中的数据恢复到与最后一次才能让数据库中的数据恢复到与最后一次差异备份时的内容相同。差异备份时的内容相同。3. 事务日志备份事务日志备份 事务日志备份只备份事务日志中的内事务日志备份只备份事务日志中的内容。事务日志记录了上一次完整备份、差容。事务日志记录了上一次完整备
6、份、差异备份或事务日志备份后数据库的所有变异备份或事务日志备份后数据库的所有变动过程。每个事务日志备份都包括创建备动过程。每个事务日志备份都包括创建备份时处于活动状态的部分事务日志,以及份时处于活动状态的部分事务日志,以及先前事务日志备份中未备份的所有日志记先前事务日志备份中未备份的所有日志记录。可以使用事务日志备份将数据库恢复录。可以使用事务日志备份将数据库恢复到特定的即时点。与差异备份类似,事务到特定的即时点。与差异备份类似,事务日志备份生成的文件较小、占用时间较短,日志备份生成的文件较小、占用时间较短,创建频率较频繁。创建频率较频繁。4. 文件和文件组备份文件和文件组备份 如果在创建数据
7、库时,为数据库创建如果在创建数据库时,为数据库创建了多个数据库文件或文件组,可以使用该了多个数据库文件或文件组,可以使用该备份方式。使用文件和文件组备份方式可备份方式。使用文件和文件组备份方式可以只备份数据库中的某些文件,该备份方以只备份数据库中的某些文件,该备份方式在数据库文件非常庞大时十分有效,由式在数据库文件非常庞大时十分有效,由于每次只备份一个或几个文件或文件组,于每次只备份一个或几个文件或文件组,所以可以分多次来备份数据库,这可以避所以可以分多次来备份数据库,这可以避免大型数据库备份的时间过长的问题。另免大型数据库备份的时间过长的问题。另外,由于文件和文件组备份只备份其中一外,由于文
8、件和文件组备份只备份其中一个或多个数据文件,因此当数据库中的某个或多个数据文件,因此当数据库中的某个或某些文件损坏时,只需还原损坏的文个或某些文件损坏时,只需还原损坏的文件或文件组备份即可。件或文件组备份即可。n以下情况应采用完整数据库备份 :q数据库较小q数据库具有很少的数据修改操作或是只读数据库时 n如果采用完整数据库备份,则要定期清除事务日志星期日星期日星期一星期一星期二星期二1.完整备份策略:完整备份策略:n使用差异备份策略的场合:q数据库频繁修改q需要进行最小化备份时n单独备份事务日志星期一星期一星期二星期二2.差异备份策略:差异备份策略:n使用数据库和事务日志备份策略的场合:q修改
9、频繁的数据库 q完整备份耗时太长星期日星期日星期一星期一3.事务备份策略:事务备份策略:n使用文件或文件组备份策略的场合:q超大型数据库 q完整备份时间太长n单独备份事务日志n可能管理比较复杂星期日星期日星期一星期一星期二星期二星期三星期三数据文数据文件件 1数据文数据文件件 2数据文数据文件件34.文件或文件组备份策略:文件或文件组备份策略:举例:举例:创建一个名为创建一个名为 AdventureWorksBack 的命名备份设备,的命名备份设备, 并并执行完整的数据库备份。执行完整的数据库备份。-创建一个名为创建一个名为 AdventureWorksBack 的命名备份设备的命名备份设备-
10、设备存储在设备存储在D:MyBachupDir 目录下目录下-执行一个完整的数据库备份以备份到执行一个完整的数据库备份以备份到AdventureWorksBack文件中文件中程序清单如下:程序清单如下:USE AdventureWorksEXEC sp_addumpdevice disk, AdventureWorksBack, D: MyBachupDir AdventureWorksBack.bak BACKUP DATABASE AdventureWorks TO AdventureWorksBack1、BACKUP DATABASE AdventureWorks TO Adventur
11、eWorksBack WITH INIT注意以下语句的不同之处:注意以下语句的不同之处:2、BACKUP DATABASE AdventureWorks TO AdventureWorksBack WITH NOINIT3、BACKUP DATABASE AdventureWorks TO DISK = D: MyBachupDir AdventureWorksBack.bak举例:举例:为日志创建一个备份设备,并备份为日志创建一个备份设备,并备份 AdventureWorks 数据库的事数据库的事务日志。务日志。-创建一个名为创建一个名为 AWBackLog的备份设备的备份设备,设备存储在设
12、备存储在D:Bachup 目录下目录下-备份备份 AdventureWorks 数据库的事务日志到备份设备数据库的事务日志到备份设备程序清单如下:程序清单如下:USE AdventureWorksEXEC sp_addumpdevice disk, AWBackLog, D: Bachup AWBackLog.bak BACKUP LOG AdventureWorks TO AWBackLog举例:举例:在临时的备份文件上创建增量在临时的备份文件上创建增量 (差异)备份。(差异)备份。- 在临时的备份磁盘文件上创建名为在临时的备份磁盘文件上创建名为MyDiffBackup的差异备份(的差异备份
13、( D: MyData )程序清单如下:程序清单如下:BACKUP DATABASE AdventureWorks TO DISK= D: MyData MyDiffBackup.bakWITH DIFFERENTIAL举例:举例:用以下代码备份了数据库中某个文件组的用以下代码备份了数据库中某个文件组的Orders2文件。文件。PhoneOrders数据库包含三个文件:数据库包含三个文件: Orders1 、 Orders2和和Orders3 。事务日志存储在事务日志存储在Orderlog文件中。已存在以下备份文件文件中。已存在以下备份文件OrderBackup1、 OrderBackup2、
14、 OrderBackup3、 OrderBackupLog。-备份数据库中某个文件组的备份数据库中某个文件组的 Orders2 文件以及数据库的日志文件。文件以及数据库的日志文件。程序清单如下:程序清单如下:BACKUP DATABASE PhoneOrders FILE= Orders2 TO OrderBackup2BACKUP LOG PhoneOrders TO OrderBackupLog13.1.2 恢复模式恢复模式 SQL Server 2016数据库恢复模式分数据库恢复模式分为为3种:完整恢复模式、大容量日志恢复模式种:完整恢复模式、大容量日志恢复模式和简单恢复模式。和简单恢复
15、模式。1. 简单恢复模式简单恢复模式 对于简单恢复模式,数据库会自动把不活对于简单恢复模式,数据库会自动把不活动的日志删除,因此减少了事务日志的管理开动的日志删除,因此减少了事务日志的管理开销,在此模式下不能进行事务日志备份,因此,销,在此模式下不能进行事务日志备份,因此,使用简单恢复模式只能将数据库恢复到最后一使用简单恢复模式只能将数据库恢复到最后一次备份时的状态,不能恢复到故障点或特定的次备份时的状态,不能恢复到故障点或特定的即时点。通常,此模式只用于对数据库数据安即时点。通常,此模式只用于对数据库数据安全要求不太高的数据库,并且在该模式下,数全要求不太高的数据库,并且在该模式下,数据库只
16、能做完整和差异备份。据库只能做完整和差异备份。2. 完整恢复模式完整恢复模式 完整恢复模式是默认的恢复模式。完整恢复模式是默认的恢复模式。 它会完它会完整地记录操作数据库的每一个步骤。使用完整整地记录操作数据库的每一个步骤。使用完整恢复模式可以将整个数据库恢复到一个特定的恢复模式可以将整个数据库恢复到一个特定的时间点,这个时间点可以是最近一次可用的备时间点,这个时间点可以是最近一次可用的备份、一个特定的日期和时间或者是标记的事务。份、一个特定的日期和时间或者是标记的事务。3. 大容量日志恢复模式大容量日志恢复模式 简单地说就是要对大容量操作简单地说就是要对大容量操作(如导入数据、如导入数据、批
17、量更新、批量更新、SELECT INTO等操作等操作) 进行最小进行最小日志记录,以节省日志文件的空间。日志记录,以节省日志文件的空间。 13.1.3 设置恢复模式设置恢复模式 操作步骤如下:操作步骤如下: 打开打开SQL Server Management Studio图形化管理界面,右击将要备份的数图形化管理界面,右击将要备份的数据库,从弹出的快捷菜单中选择据库,从弹出的快捷菜单中选择“属性属性”命令,命令,打开打开“数据库属性数据库属性”对话框。在选择页中选择对话框。在选择页中选择“选项选项”,在,在“恢复模式恢复模式”中选择所需的设置,如中选择所需的设置,如图图13-1所示。所示。图1
18、3-1 “数据库属性”对话框13.2 备份设备备份设备 备份设备是指备份或还原数据时的存备份设备是指备份或还原数据时的存储介质。通常是指磁带机或磁盘驱动器或储介质。通常是指磁带机或磁盘驱动器或逻辑备份设备。逻辑备份设备。 磁盘备份设备是指硬盘或其他磁盘存磁盘备份设备是指硬盘或其他磁盘存储介质上的文件,与常规操作系统文件一储介质上的文件,与常规操作系统文件一样。引用磁盘备份设备与引用任何其他操样。引用磁盘备份设备与引用任何其他操作系统文件一样。可以在服务器的本地磁作系统文件一样。可以在服务器的本地磁盘上或共享网络资源的远程磁盘上定义磁盘上或共享网络资源的远程磁盘上定义磁盘备份设备。备份磁盘设备的
19、最大大小由盘备份设备。备份磁盘设备的最大大小由磁盘设备上的可用空间决定。磁盘设备上的可用空间决定。SQL Server数据库引擎使用物理设备名数据库引擎使用物理设备名称或逻辑设备名称来标识备份设备:物理称或逻辑设备名称来标识备份设备:物理备份设备主要提供操作系统对备份设备的备份设备主要提供操作系统对备份设备的引用与管理,如引用与管理,如E:BackupstestFull.bak;逻辑备;逻辑备份设备是物理备份设备的别名。逻辑设备份设备是物理备份设备的别名。逻辑设备名称永久性地存储在名称永久性地存储在SQL Server内的系内的系统表中。统表中。 使用逻辑备份设备的优点是引用时比使用逻辑备份设
20、备的优点是引用时比引用物理设备名称更简单;当改变备份位引用物理设备名称更简单;当改变备份位置时,不需要修改备份脚本语句,只需要置时,不需要修改备份脚本语句,只需要修改逻辑备份设备的定义即可。修改逻辑备份设备的定义即可。13.2.1 创建备份设备创建备份设备1. 使用使用SQL Server图形化管理界面创建备份图形化管理界面创建备份设备设备具体操作步骤如下:具体操作步骤如下:(1) 在在SQL Server管理平台中,选择需要创管理平台中,选择需要创建备份设备的服务器,展开建备份设备的服务器,展开“服务器对象服务器对象”节点,节点,在在“备份设备备份设备”图标上右击,从弹出的快捷菜单图标上右击
21、,从弹出的快捷菜单中选择中选择“新建备份设备新建备份设备”命令,如图命令,如图13-2所示。所示。(2) 打开打开“备份设备备份设备”对话框,如图对话框,如图13-3所示。所示。在在“设备名称设备名称”文本框中输入备份设备的逻辑名文本框中输入备份设备的逻辑名称。单击称。单击“确定确定”按钮即可创建备份设备。按钮即可创建备份设备。图13-2 使用SQL Server管理平台创建备份设备 图13-3 “备份设备”对话框13.2.2 删除备份设备删除备份设备 如果不再需要使用备份设备,可以将其删如果不再需要使用备份设备,可以将其删除。删除备份设备之后,设备上的数据将全部除。删除备份设备之后,设备上的
22、数据将全部丢失。删除备份设备有两种方式:一种是使用丢失。删除备份设备有两种方式:一种是使用SQL Server Management Studio图形图形化工具,另一种是使用系统存储过程化工具,另一种是使用系统存储过程sp_dropdevice。1. 使用使用SQL Server Management Studio图形化工具删除备份设备图形化工具删除备份设备操作步骤如下:操作步骤如下:(1) 在在“对象资源管理器对象资源管理器”中,单击服务器名称,中,单击服务器名称,展开服务器树。展开服务器树。(2) 展开展开“服务器对象服务器对象”|“备份设备备份设备”节点,右节点,右击要删除的备份设备,从
23、弹出的快捷菜单中选击要删除的备份设备,从弹出的快捷菜单中选择择“删除删除”命令,打开命令,打开“删除对象删除对象”窗口。窗口。(3) 在在“删除对象删除对象”窗口中单击窗口中单击“确定确定”按钮即可按钮即可完成。完成。2. 使用存储过程使用存储过程sp_dropdevice删除备份删除备份设备设备其语法格式如下:其语法格式如下:sp_dropdevicelogical_name, sp_dropdevicelogical_name, delfiledelfile其中,其中,logical_name表示设备的逻辑名称;表示设备的逻辑名称;delfile用于指定是否删除物理备份文件。如用于指定是否
24、删除物理备份文件。如果指定了果指定了delfile,则删除物理备份文件。,则删除物理备份文件。【例【例13-2】使用存储过程】使用存储过程sp_dropdevice删除名称为删除名称为jxgldisk的备份设备,同时删除物的备份设备,同时删除物理文件。理文件。Transact-SQL代码如下:代码如下:exec sp_dropdevice jxgldisk,delfileexec sp_dropdevice jxgldisk,delfile13.3 备份数据库备份数据库13.3.1 完整备份完整备份1. 使用使用Management Studio图形化工图形化工具执行备份操作具执行备份操作 (
25、1) 在在“对象资源管理器对象资源管理器”窗口中,展开窗口中,展开服务器名称,找到服务器名称,找到“数据库数据库”节点并单击展开,节点并单击展开,然后选中要备份的数据库。然后选中要备份的数据库。 (2) 右击选中的数据库,从弹出的快捷右击选中的数据库,从弹出的快捷菜单中选择菜单中选择“任务任务”|“备份备份”命令,如图命令,如图13-4所示,将弹出所示,将弹出“备份数据库备份数据库”对话框,如图对话框,如图13-5所示。所示。 (3) 在在“备份类型备份类型”下拉列表框中,选择下拉列表框中,选择“完整完整”选项。创建完整数据库备份之后,就选项。创建完整数据库备份之后,就可以创建差异数据库备份。
26、如果要创建差异可以创建差异数据库备份。如果要创建差异备份,则类型选择为备份,则类型选择为“差异差异”。对于。对于“备份组备份组件件”,选择,选择“数据库数据库”,也可以根据需要选择,也可以根据需要选择“文件和文件组文件和文件组”。在。在“目标目标”部分,可以选择部分,可以选择添加或删除其他备份设备。最后单击添加或删除其他备份设备。最后单击“确定确定”按钮即可。按钮即可。图13-4 选择“备份”命令图13-5 “备份数据库”对话框2. 使用使用BACKUP DATABASE语句创建语句创建完整备份完整备份 基本语法格式如下:基本语法格式如下:BACKUP DATABASE database_na
27、meBACKUP DATABASE database_nameTO ,nTO ,nWITHWITH , NAME=backup_set_name, NAME=backup_set_name, DESCRIPITION=TEXT, DESCRIPITION=TEXT,INIT|NOINIT,INIT|NOINIT,COMPRESSION|NO_COMRESSION,COMPRESSION|NO_COMRESSION 各参数的含义说明如下:database_name:指定要备份的数据库的名称。backup_device:备份的目标设备。with:指定备份选项,如果省略则为完整备份。name:指定备
28、份名称。DESCRIPITION:指定备份的描述。INIT|NOINIT: 表示覆盖|追加方式。COMPRESSION|NO_COMRESSION:表示启用/不启用备份压缩功能。【例【例13-3】将】将“教学管理教学管理”数据库完整备份数据库完整备份到到jxgldisk设备上。设备上。Transact-SQL代码如下:代码如下:Backup database Backup database 教学管理教学管理 to to jxgldiskjxgldisk执行结果如图执行结果如图13-6所示。所示。图13-6 完整备份13.3.2 差异备份差异备份 差异备份的语法格式如下:差异备份的语法格式如下:
29、BACKUP DATABASE database_nameBACKUP DATABASE database_nameTO ,nTO ,nWITHWITHDIFFERENTIALDIFFERENTIAL, NAME=backup_set_name, NAME=backup_set_name, DESCRIPITION=TEXT, DESCRIPITION=TEXT,INIT|NOINIT,INIT|NOINIT,COMPRESSION|NO_COMRESSION,COMPRESSION|NO_COMRESSION 【例【例13-4】将】将“教学管理教学管理”数据库差异备数据库差异备份到份到jxg
30、ldisk设备上。设备上。Transact-SQL代码如下:代码如下:Backup database Backup database 教学管理教学管理 to to jxgldiskjxgldiskWith differentialWith differential执行结果如图执行结果如图13-7所示。所示。图13-7 差异备份13.3.3 事务日志备份事务日志备份备份事务日志的语法格式如下:备份事务日志的语法格式如下:BACKUP LOG database_nameBACKUP LOG database_nameTO nTO nWITHWITH, NAME=backup_set_name, N
31、AME=backup_set_name, DESCRIPITION=TEXT, DESCRIPITION=TEXT,INIT|NOINIT,INIT|NOINIT,COMPRESSION|NO_COMRESSION,COMPRESSION|NO_COMRESSION 【例【例13-5】备份】备份“教学管理教学管理”数据库的日数据库的日志到备份设备志到备份设备jxgldisk。Transact-SQL代码如下:代码如下:Backup log Backup log 教学管理教学管理 to jxgldisk to jxgldisk执行结果如图执行结果如图13-8所示。所示。图13-8 事务日志备份1
32、3.4 在在SQL Server Management Studio中还原数据库中还原数据库 还原是备份的逆向操作,可以通过还原是备份的逆向操作,可以通过SQL Server Management Studio图形化工图形化工具和使用具和使用Transact-SQL语句两种方法来语句两种方法来进行还原。此处仅介绍使用工具还原数据库。进行还原。此处仅介绍使用工具还原数据库。具体操作步骤如下:具体操作步骤如下:(1) 在在“对象资源管理器对象资源管理器”窗口中,单击服务窗口中,单击服务器名称,展开服务器,展开器名称,展开服务器,展开“数据库数据库”节点,节点,然后选中要还原的数据库。然后选中要还原
33、的数据库。(2) 右击选中的数据库,从弹出的快捷菜单右击选中的数据库,从弹出的快捷菜单中选择中选择“任务任务”|“还原还原”|“数据库数据库”命令,如图命令,如图13-9所示,将弹出所示,将弹出“还原数据库还原数据库”对话框,对话框,如图如图13-10所示。所示。图13-9 选择命令图13-10 “还原数据库”对话框(3) 在“目标”区域的“数据库”下拉列表框中选择要还原的数据库的名称。在“还原计划”中选中要还原的备份集。(4) 选择“文件”选项卡,可以将数据库文件重新定位,也可以还原到原位置,如图13-11所示。图13-11 “文件”选项页(5) 选择“选项”选项卡,如图13-12所示。(6
34、) 如果还原数据库时想覆盖现有数据库,则选中“覆盖现有数据库”复选框。(7) 如果要修改恢复状态,可以选择相应的选项。(8) 设置完成后,单击“确定”按钮。图13-12 “选项”选项页13.5 用用Transact-SQL语句还原数语句还原数据库据库13.5.1 完整备份还原完整备份还原语法格式如下:语法格式如下:R E S T O R E D A T A B A S E database_nameFROM ,nWITHFILE=file_number, MOVE logical_file_name TOoperating_system_file_name ,n , R E C O V E R
35、 Y |NORECOVERY |STANDBY =standby_file_name, REPLACE其中:其中: := logical_backup_device_name| DISK|TYPE=physical_backup_device_name13.5.2 差异备份还原 差异备份还原与完整备份还原的语法基本一样,必须先还原完整备份,之后才能进行差异备份还原。13.5.3 事务日志还原语法格式如下:RESTORE LOG database_nameFROM ,nWITHFILE=file_number, MOVE logical_file_name TOoperating_system_
36、file_name ,n, RECOVERY |NORECOVERY |STANDBY =standby_file_name, REPLACE其中:其中: := := logical_backup_device_name logical_backup_device_name| | DISK|TYPE=physical_backup_device_nDISK|TYPE=physical_backup_device_name ame : :=: :=FILE =logical_file_name |FILEGROUP = FILE =logical_file_name |FILEGROUP = l
37、ogical_filegroup_namelogical_filegroup_name【例【例13-6】对】对“教学管理教学管理”数据库进行完整、数据库进行完整、差异和事务日志还原。差异和事务日志还原。Transact-SQL代码如下:代码如下:Restore database Restore database 教学管理教学管理 from from jxgldiskjxgldiskWith file=1,norecoveryWith file=1,norecoveryRestore database Restore database 教学管理教学管理 from from jxgldiskjxg
38、ldiskWith file=2,norecoveryWith file=2,norecoveryRestore logRestore log教学管理教学管理 from jxgldisk from jxgldiskWith file=3,recoveryWith file=3,recovery13.5 建立自动备份的维护计划建立自动备份的维护计划 创 建 数 据 库 维 护 计 划 可 以 让创 建 数 据 库 维 护 计 划 可 以 让 S Q L Server自动而有效地维护数据库,从而为自动而有效地维护数据库,从而为系统管理员节省大量时间,也可以防止延误系统管理员节省大量时间,也可以防止
39、延误数据库的维护工作。在数据库的维护工作。在SQL Server数据库数据库引擎中,维护计划可以创建一个作业,以按引擎中,维护计划可以创建一个作业,以按预定间隔自动执行这些维护任务。预定间隔自动执行这些维护任务。 维护计划向导可以用于设置核心维护任维护计划向导可以用于设置核心维护任务,从而确保数据库执行良好,做到定期备务,从而确保数据库执行良好,做到定期备份数据库以防止系统出现故障,对数据库实份数据库以防止系统出现故障,对数据库实施不一致性检查。维护计划向导可以创建一施不一致性检查。维护计划向导可以创建一个或多个个或多个SQL Server代理作业,代理作业代理作业,代理作业将按计划间隔自动执
40、行这些维护计划。将按计划间隔自动执行这些维护计划。 SQL Server 2016和和SQL Server 2008一样,都可以做维护计划,对数据库一样,都可以做维护计划,对数据库进行自动备份。进行自动备份。 假设我们现在有一个学生管理系统的数假设我们现在有一个学生管理系统的数据库需要进行备份,由于数据库中的数据很据库需要进行备份,由于数据库中的数据很多,数据文件很大,如果每次都进行完整备多,数据文件很大,如果每次都进行完整备份那么硬盘会占用很大空间,而且备份时间份那么硬盘会占用很大空间,而且备份时间很长,维护起来也很麻烦。因此,我们可以很长,维护起来也很麻烦。因此,我们可以采用完整备份和差异
41、备份的方式,每周日进采用完整备份和差异备份的方式,每周日进行一次完整备份,每天晚上进行一次差异备行一次完整备份,每天晚上进行一次差异备份。使用差异备份可以减小备份文件的大小,份。使用差异备份可以减小备份文件的大小,同时还可以提高备份的速度,但其缺点是必同时还可以提高备份的速度,但其缺点是必须使用上一次完整备份的文件和差异备份的须使用上一次完整备份的文件和差异备份的文件才能还原差异备份时刻的数据库,单独文件才能还原差异备份时刻的数据库,单独只有差异备份文件是没有意义的。只有差异备份文件是没有意义的。 下面介绍如何通过维护计划来实现完整备份和下面介绍如何通过维护计划来实现完整备份和差异备份:差异备
42、份:(1) 在做计划之前,需要先启用在做计划之前,需要先启用SQL Server代理,并将启动模式设为自动。代理,并将启动模式设为自动。( 2 ) 接 下 来 , 打 开接 下 来 , 打 开 S Q L S e r v e r Management Studio,展开服务器下面的,展开服务器下面的“管理管理”节点,右击节点,右击“维护计划维护计划”,从弹出的快捷,从弹出的快捷菜单中选择菜单中选择“维护计划向导维护计划向导”命令,如图命令,如图13-13所示,启动所示,启动“维护计划向导维护计划向导”,如图,如图13-14所示。所示。图13-13 “对象资源管理器”的“维护计划” 图13-14
43、 维护计划向导(3) 单击单击“下一步下一步”按钮,进入按钮,进入“选择计划属性选择计划属性”界面,输入计划的名称,由于我们的计划包括界面,输入计划的名称,由于我们的计划包括完整备份和差异备份,这两部分的执行计划是完整备份和差异备份,这两部分的执行计划是不一样的,一个是一周执行一次,另一个是一不一样的,一个是一周执行一次,另一个是一天执行一次,因此要选中天执行一次,因此要选中“每项任务单独计划每项任务单独计划”单选按钮,如图单选按钮,如图13-15所示。所示。(4) 单击单击“下一步下一步”按钮,选择维护任务,这里按钮,选择维护任务,这里列出了可以在维护计划中执行的任务,如果要列出了可以在维护
44、计划中执行的任务,如果要执行的任务在这里没有列出,那就不能用维护执行的任务在这里没有列出,那就不能用维护计划来做,需要自己写计划来做,需要自己写SSIS包或者包或者SQL语句。语句。本例中要执行的任务都已列出,所以在此选中本例中要执行的任务都已列出,所以在此选中了这两个任务,如图了这两个任务,如图13-16所示。所示。图13-15 选择计划属性图13-16 选择计划执行的任务(5) 单击单击“下一步下一步”按钮,进入按钮,进入“选择维护任务选择维护任务顺序顺序”界面,在该界面中可以看到我们选中的界面,在该界面中可以看到我们选中的任务出现在列表中,但是我们并不能调整其顺任务出现在列表中,但是我们
45、并不能调整其顺序,这是因为在步骤序,这是因为在步骤(3)中我们选中的是中我们选中的是“每项每项任务单独计划任务单独计划”单选按钮,所以这两个任务是单选按钮,所以这两个任务是独立的,没有先后顺序可言。如果当时选择的独立的,没有先后顺序可言。如果当时选择的是另一个选项,那么在此就可以调整顺序了,是另一个选项,那么在此就可以调整顺序了, 如图如图13-17所示。所示。(6) 选中选中“备份数据库备份数据库(完整完整)”选项,然后单击选项,然后单击“下一步下一步”按钮,系统将转到如图按钮,系统将转到如图13-18所示的所示的界面。界面。图13-17 选择维护任务顺序 图13-18 定义完整备份数据库任
46、务(7) 这个界面实在太长了,无法完整显示任务这个界面实在太长了,无法完整显示任务栏,出现了滚动条。在该界面中我们选择要进栏,出现了滚动条。在该界面中我们选择要进行备份的数据库,选择为每个数据库创建备份行备份的数据库,选择为每个数据库创建备份文件,文件保存在文件,文件保存在D盘的盘的Backup目录下,扩目录下,扩展名为展名为bak。出于安全起见,可以选中。出于安全起见,可以选中“验证验证备份完整性备份完整性”复选框,当然也可以不选。在复选框,当然也可以不选。在SQL Server 2016中提供了压缩备份的新特中提供了压缩备份的新特性,使得备份文件更小,备份速度更快,这里性,使得备份文件更小
47、,备份速度更快,这里我们选择的就是压缩备份。最后是选择执行计我们选择的就是压缩备份。最后是选择执行计划,单击划,单击“更改更改”按钮,打开按钮,打开“新建作业计划新建作业计划”对对话框,如图话框,如图13-19所示,这里选择的是在每周所示,这里选择的是在每周日晚上的日晚上的0点执行备份,单击点执行备份,单击 “确定确定”按钮。按钮。图13-19 “新建作业计划”对话框(8) 单击单击“下一步下一步”按钮,进入差异备份任务的按钮,进入差异备份任务的设置界面,该界面与上一步的界面一样,其操设置界面,该界面与上一步的界面一样,其操作也是一样的,在此选择每天晚上作也是一样的,在此选择每天晚上0点进行差
48、点进行差异备份,如图异备份,如图13-20所示。所示。图13-20 差异备份新建作业计划(9) 单击单击“下一步下一步”按钮,进入按钮,进入“选择报告选项选择报告选项”界面,通过该界面可以将这个维护计划的执行界面,通过该界面可以将这个维护计划的执行报告写入文本文件中,也可以将报告通过电子报告写入文本文件中,也可以将报告通过电子邮件发送给管理员,如图邮件发送给管理员,如图13-21 所示。如果所示。如果要发送邮件,那么需要配置要发送邮件,那么需要配置SQL Server的数的数据库邮件,还需要设置据库邮件,还需要设置SQL Server代理中的代理中的操作员,关于邮件通知操作员的配置在此就不操作
49、员,关于邮件通知操作员的配置在此就不详述了。详述了。图13-21 “选择报告选项”界面(10) 单击单击“下一步下一步”按钮,进入按钮,进入“完成该向导完成该向导”界面,系统列出了向导要完成的工作,如图界面,系统列出了向导要完成的工作,如图13-22所示。所示。图13-22 向导要完成的工作(11) 单击单击“完成完成”按钮,向导将创建对应的按钮,向导将创建对应的SSIS包和包和SQL作业,如图作业,如图13 -23所示。所示。(12) 完成后,刷新完成后,刷新“对象资源管理器对象资源管理器”窗口,窗口,就可以看到对应的维护计划和该计划对应的作就可以看到对应的维护计划和该计划对应的作业,如图业
50、,如图13-24所示。所示。 图13-23 “维护计划向导进度”界面图13-24 维护计划和该计划对应的作业 现在维护计划已创建完毕,若迫切想要现在维护计划已创建完毕,若迫切想要看看执行后的效果如何,不需要等到晚上看看执行后的效果如何,不需要等到晚上12点 。 在点 。 在 “ 作 业作 业 ” 下 面 , 右 击下 面 , 右 击DbBackupPlan.Subplan_1,从弹出的,从弹出的快捷菜单中选择快捷菜单中选择“作业开始步骤作业开始步骤”命令,系统命令,系统便立即执行该作业,系统运行完毕后,便可便立即执行该作业,系统运行完毕后,便可以在以在D:Backup文件夹下看到我们做的完文件