资源描述
学生成绩管理系统的备份方案
针对学生成绩数据库进行备份,就是制作数据库架构、对象以及数据的副本,以便在数据库遭到严重破坏的时候能够修复数据库。
一.造成数据损失的原因:
1. 存储介质故障:保存有数据库文件的磁盘驱动器损坏。
2. 用户的错误操作:无意或恶意地在数据库上进行了大量的非法操作。
3. 服务器的彻底崩溃。
4. 自然灾害,地震、水灾,火灾或其他原因造成的严重故障。
5. 电源故障,指一般的UPS无法保护的异常电源故障。
假如没有数据备份,一旦产生故障(主要是系统发生故障)那就不可能恢复丢失的数据,如果是这样的话,不得不返回物理文件重新输入所有数据,试想一下,输入以前那些信息曾花费了多少个日夜,并且在重新输入旧数据时,新数据还在不断的到来,所以应该为服务器配置一个有效的备份设备,省去麻烦。
二.备份策略的因素
定期备份数据库是最稳妥的防止磁盘故障(主要是系统发生故障)的方法,它能有效的恢复数据,这是一种比较方便的保险形式,同时也是最简单的确保能恢复大部分信息的方法。建立一个完整的备份策略需要考虑很多因素,包括:
1. 备份周期。(根据数据的重要程序,可以选择每周、每日、每时进行备份)。
为本管理系统每天做一次完整备份,两小时或1小时(根据数据量)差异备份,再细分就做日志备份,数据库备份与恢复。
2. 使用静态备份还是动态备份,(动态备份即允许数据库运行时进行备份)。
在这里,我采用静态备份。
3. 单独使用全备份还是共同使用全备份和增量备份。
4. 使用什么介质,(磁带还是磁盘)。
本管理系统采用的是磁盘介质进行备份。
5. 使用人工备份还是设计好的自动备份程序。
不同的时间段,可以采用不同的方式进行备份程序,白天可以自己手工的进行备份,而晚上的备份,可以采取自动备份,比较方便。
6. 检验备份完整性的周期。
7. 是否指定其他人实行备份,他们是否享有必要的登录号和口令。
为了数据库的安全备份的进行,在必要的时候需要设置其他的登录号和口令,防止数据被人为的破坏。
此外,定期的把某些数据,某些表或全部数据备份到光盘,软盘中,放于保险的安全处,也不失为一种好方法。
三.恢复模型的优点和含义的概述
恢复模型
优点
工作损失表现
能否恢复到即时点
简单
允许高性能大容量复制操作。
收回日志空间以使空间要求最小。
必须重做自最新的数据库或差异备份后所发生的更改。
可以恢复到任何备份的结尾处。随后必须重做更改。
完全
数据文件丢失或损坏不会导致工作损失。
可以恢复到任意即时点(例如,应用程序或用户错误之前)。
正常情况下没有。
如果日志损坏,则必须重做自最新的日志备份后所发生的更改。
可以恢复到任何即时点。
大容量日志记录的
允许高性能大容量复制操作。
大容量操作使用最少的日志空间。
如果日志损坏,或者自最新的日志备份后发生了大容量操作,则必须重做自上次备份后所做的更改。
否则不丢失任何工作。
可以恢复到任何备份的结尾处。随后必须重做更改。
四.实施方案
(一)采用SQL Server2000的企业管理器进行备份
在数据库XSCJ的右击菜单选择属性,在选项(option)选项卡中选择。如下图所示:
2.利用企业管理器TSQL备份数据库完整备份
展开“服务器”节点——>“管理”——>右击“备份”——>新建备份设备DB1,以及存放的路径,如下图所示:
在XSCJ数据库中建立Table1,t0时刻的备份不添加数据,为空表,再进行t0时刻的完整备份和还原。t1时刻,往表中添加4个1,再进行备份还原等;t2时刻往表中添加4个2,再进t2时刻的差异备份和还原等操作。
右击数据库XSCJ——>“所有任务”——>“备份数据库”,弹出如下图所示的对话框,选择各个选项,如图中所示:
选择“添加”选项,弹出下图所示的对话框,并选择备份设备的路径:
点击“确定”,弹出以下对话框:
3.利用企业管理器备份数据库差异备份
右击数据库XSCJ——>“所有任务”——>“备份数据库”,弹出如下图所示的对话框,选择各个选项,如图中所示:
4. 利用企业管理器TSQL恢复数据库(简单模式)
利用完整备份和差异备份完成简单模式恢复:右击XSCJ数据库——>属性——>选项——>模型:选择简单——>确定
将XSCJ数据库删除,再新建一个名为:XSCJ的数据库,之后进行恢复(还原):
至此,t0时刻的完全已经做完,下面做差异,但是差异备份是基于完整备份的,所以在常规中重新还原一次t0时刻的备份,再选择选项,选择恢复完成状态的第二或者第三个选项,还原t0时刻。即t1时刻是基于t0时刻的,如下图所示:
还原t0时候以后,在XSCJ数据库节点下没有项目,如下图所示:
再做差异备份,在XSCJ数据库——>所有任务——>还原数据库,弹出以下对话框:
点击“确定”,至此t1时刻的差异备份还原完成。
t2时刻的差异备份与t1时刻的差异备份相似。但是,t1时刻恢复的时候,也要在选项中选择第二或者第三项,才能完成t2时刻的差异备份。也就是说t2时刻还原是基于t0和t1时刻的,打开XSCJ中的表,查看是否有你在t1时刻备份之前,往表中添加的信息,如下图所示:
说明,t1时刻的还原完成。同理,t2时刻也是如此。
5. 利用企业管理器TSQL备份数据库日志
只有将数据的故障还原模型设置成完全时才可以备份日志,设置成简单时不能备份日志。按下图所示,设置故障还原模型:
6.利用企业管理器TSQL恢复数据库(完整备份)
完整备份属于动态备份,而不是单独的日志备份。
右击“XSCJ”——>“所有任务”——>“备份数据库”——>进行数据库的完整备份,如下图所示进行操作,即可完成完整备份。
(二)采用SQL Server2000的企查询管理器进行备份
语法部分:
(1)RESTORE DATABASE { database_name | @database_name_var }
[FROM < backup_device > [ ,...n ] ]
[WITH [RESTRICTED_USER]
[[,] FILE = {file_number | @file_number } ]
[[,] PASSWORD = {password | @password_variable}]
[[,] MEDIANAME = {media_name | @media_name_variable }]
[[,] MEDIAPASSWORD = {mediapassword | @mediapassword_variable }] [[ ,] MOVE 'logical_file_name' TO 'operating_system_file_name'] [,...n ]
[ [,] KEEP_REPLICATION ]
[ [,] { NORECOVERY | RECOVERY | STANDBY = undo_file_name } ]
[ [,] { NOREWIND | REWIND } ]
[[,] {NOUNLOAD | UNLOAD}]
[[,] REPLACE]
[[,] RESTART]
[[,] STATS [=percentage ]]]
(2)还原数据库的部分内容:
RESTORE DATABASE { database_name | @database_name_var }
< file_or_filegroup > [ ,...n ]
[FROM < backup_device > [ ,...n ] ]
[WITH
{ PARTIAL }
[[,] FILE = { file_number |@file_number}]
[[,] PASSWORD = {password |@password_variable } ]
[[,] MEDIANAME = {media_name | @media_name_variable } ]
[[,] MEDIAPASSWORD = {mediapassword | @mediapassword_variable }] [[ ,] MOVE 'logical_file_name' TO 'operating_system_file_name' ] [ ,...n ]
[[,] NORECOVERY]
[[,] {NOREWIND | REWIND }]
[[,] {NOUNLOAD | UNLOAD }]
[[,] REPLACE ]
[[,] RESTRICTED_USER]
[[,] RESTART]
[[,] STATS [= percentage ] ] ]
(3)还原特定的文件或文件组:
RESTORE DATABASE { database_name |@database_name_var }
< file_or_filegroup > [ ,...n ]
[FROM < backup_device > [ ,...n ] ]
[WITH
[RESTRICTED_USER ]
[[,] FILE = { file_number | @file_number}]
[[,] PASSWORD = {password | @password_variable}]
[[,] MEDIANAME = {media_name | @media_name_variable}]
[[,] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ] [[ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ] [ ,...n ]
[[,] NORECOVERY ]
[[,] { NOREWIND | REWIND }]
[[,] { NOUNLOAD | UNLOAD }]
[[,] REPLACE ]
[[,] RESTART ]
[[,] STATS [= percentage ]]]
(4)还原事务日志:
RESTORE LOG { database_name | @database_name_var }
[FROM < backup_device > [ ,...n ] ]
[WITH [ RESTRICTED_USER ]
[[,] FILE = { file_number | @file_number } ]
[[,] PASSWORD = { password | @password_variable } ]
[[,] MOVE 'logical_file_name' TO 'operating_system_file_name' ][ ,...n ]
[[,] MEDIANAME = { media_name | @media_name_variable } ]
[[,] MEDIAPASSWORD = {mediapassword | @mediapassword_variable }] [[,] KEEP_REPLICATION ]
[[ ,] { NORECOVERY | RECOVERY | STANDBY = undo_file_name }]
[[,] { NOREWIND | REWIND }]
[[,] { NOUNLOAD | UNLOAD }]
[[,] RESTART ]
[[] STATS [= percentage ]]
[[,] STOPAT = {date_time | @date_time_var}
| [,] STOPATMARK = 'mark_name' [ AFTER datetime]
| [,] STOPBEFOREMARK = 'mark_name' [ AFTER datetime ] ] ]
展开阅读全文