SQL Server 2008 完整与差异备份策略

需积分: 47 0 下载量 166 浏览量 更新于2024-09-11 收藏 992KB PDF 举报
"本文主要介绍了SQL Server 2008中的完整备份与差异备份的概念、优缺点,并提供了如何设计和实施这种备份策略的场景及实战操作步骤。" 在数据库管理中,备份是确保数据安全的重要手段。SQL Server 2008提供了多种备份类型,其中完整备份和差异备份是两种常见的策略。 **完整备份** 是指备份数据库中的所有数据,无论文件是否已更改。它不依赖文件的存档属性,备份过程中会清除这些属性,标记文件为已备份。这种方式的优点是数据恢复时只需要恢复单个备份文件,但缺点是占用存储空间较大,且如果完整备份丢失,所有后续的差异备份也将失效。 **差异备份** 是在完整备份的基础上进行的,只备份自上一次完整备份以来发生更改的数据。它保留文件的存档属性,这意味着在下一次完整备份之前,差异备份会继续记录这些变更。差异备份的优势在于节省存储空间,恢复时只需恢复完整备份和最近的差异备份,而且备份和恢复速度相对较快。但其风险在于,如果完整备份丢失,所有差异备份将失去意义。 **场景设计** 假设数据库规模适中,但数据重要,每天一次备份足够。例如,可以选择在周日进行一次完整备份,然后在周一至周六进行差异备份。这样,如果周六数据损坏,只需恢复周日的完整备份和周五的差异备份。 **实战操作** 在SQL Server 2008中,可以通过以下步骤创建备份计划: 1. 新建维护计划:在数据库的管理菜单中选择“维护计划”,然后右键点击“新建维护计划”。 2. 设置完整备份计划:在维护计划设计界面,将子计划命名为“完整备份计划”,从工具箱中拖拽“备份数据库”任务到右侧,配置备份类型为完整,并选择要备份的特定数据库。 3. 设置差异备份计划:可以按照相同的方式创建另一个子计划,命名为“差异备份计划”,并设置备份类型为差异。 通过这样的设置,你可以定期执行自动备份,确保数据的安全。在实施备份策略时,应考虑业务需求、存储容量和恢复时间目标,以及备份文件的保护,以防止因完整备份文件丢失而导致的灾难性后果。
2021-08-23 上传
实验1 数据库及数据定义 1、创建一个名为XSCJ的数据库,其初始大小为5MB,最大大小10MB,允许数据库自动增长,增长方式是按10%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。 2、将以上XSCJ数据库的主数据文件的最大大小改为不限制。 3、参照教材82页例3.5、例3.6、例3.7分别建立Student表、Course表和SC表,并录入数据库表中相应元组。 4、分别采用SQL编程模式和设计模式修改Course表,为其增加一列开课学期,数据类型自行定义。 5、为Course表的Cname列建立一个唯一索引,索引名Cname_idx。 6、分离数据库XSCJ并拷贝文件至U盘保存好,用于下次实验;然后再将其附加上。 7、删除唯一索引Cname_idx。 8、删除基本表Student。 实验2 数据查询 将上次实验课的学生成绩数据库(XSCJ)附加到SQL SERVER中,录入数据后做如下查询。 1) 查询选修了课程的学生的学号; 2) 查询全体学生的姓名和出生年份,并将列别名改为XM和CSNF; 3) 查询年龄在18到20(包括18岁和20岁)之间学生的学号、姓名和系。 4) 查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。 5) 用LIKE查询课程名为DB_ S的课程号和学分。 6) 查所有有成绩的学生学号和课程号。 7) 查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄升序排列 8) 查询选修了课程的学生人数。 9) 计算1号课程的学生平均成绩。 10) 查询有2人以上(含2人)同学选修课程的课程号。 11) 查询1号课程的间接先修课。 12) 查询每个学生的学号、姓名、选修的课程名及成绩。 13) 找出每个学生高于他选修课程平均成绩的课程号。 实验3 数据更新和视图 将学生成绩数据库(XSCJ)附加到SQL SERVER中,完成如下实验任务。 1) 将一个新学生元组(学号:95007;姓名:张娜丽;性别:女;所在系:IS;年龄:18岁)插入到Student表中。 2) 插入一条选课记录,插入一条选课记录( '95007','1 ')。 3) 对每一个系,求学生的平均成绩,并把结果存入数据库。 (建立一张表,然后通过子查询将结果插入表中。) 4)将全体学生的年龄增加一岁。 5)将信息系全体学生的成绩置零。 6)删除95001学生的记录。 7)删除信息系所有学生的选课记录。 8)建立计算机学生的视图CS_S。(视图中包括学号,姓名,年龄,系),并要求进行修改和插入操作时仍需保证该视图只有计算机系的学生。(视图中包含的属性名称自拟) 9)向CS_S视图中插入分别插入两条信息,如果不能插入说明原因。 (学号:95002;姓名:李华华;所在系:IS;年龄:18岁) (学号:95003;姓名:王冬冬;所在系:CS;年龄:20岁) 10)利用CS_S视图完成以下查询。 查询计算机学生年龄小于20岁的学生(学号、年龄) 查询计算机系选修了2号课程的学生(学号、姓名)。 实验4 数据库的安全性 实验内容 将学生成绩数据库(XSCJ)附加到SQL SERVER中,完成如下实验任务。 (1)在SQL Server Management Studio中创建三个登录帐户:log1、log2、log3。 (2)利用前面建立的XSCJ数据库,用log1登录,能否操作XSCJ数据库?为什么? (3)将log1、log2、log3映射为XSCJ数据库中的用户。 注意:此映射步骤会为登陆名log1在XSCJ中自动建立同名数据库用户log1。log2和log3同理。 (4)用log1登录,能否访问XSCJ数据库?为什么? (5)授予log1、log2、log3具有对Student、Course、SC三张表的查询权。并且log1有权将查询SC表的权限授予其他用户。 (6)分别用log1、log2、log3登录,对上述三张表执行查询。 (7)分别用log1、log2登陆,在查询分析器中执行以下语句,用来授予log3 对SC表的访问权限,会出现什么情况? 实验5 数据库的完整性 将学生成绩数据库(XSCJ)附加到SQL SERVER中,完成如下实验任务。 (1)录入或变更数据,验证所建立的实体完整性规则及其违约处理。 (2)录入或变更数据,验证所建立的参照完整性规则及其违约处理。 (3)自行设定某些列,使得其不允许取空值。 (4)自行设定某些列,使得该列值不允许重复。 (5)自行设定某些列的默认值。 (6)用Check短语限定考试成绩的取值范围在0到100之间。 (7)为Student表设计一个触发器,使得新增一个学生时,自动为其分配一个学号。 实验6 数据库编程
2019-09-21 上传
数据库角色和权限 2 通过本实验的学习,使学生能够掌握建立SQL Server数据库用户的方法,理解SQL Server的数据库角色病能够进行角色的定义,理解SQL Server的数据库权限,能够分配权限 二、实验内容 1、理解数据库角色和权限 在SQL Server Management Studio中创建三个登录帐户:log1、log2、log3。 利用第3章建立的LoanDB数据库,用log1登录,能否操作LoanDB数据库?为什么? 将log1、log2、log3映射为LoanDB数据库中的用户。 用log1登录,能否操作LoanDB数据库?为什么? 授予log1、log2、log3具有对BankT、LegalEntityT、LoanT三张表的查询权。 分别用log1、log2、log3登录,对上述三张表执行查询。 授予log1具有对BankT表的插入、删除权限。 用log2登录,对BankT表插入一行记录,会出现什么情况? 用log1登录,对BankT表插入一行记录,会出现什么情况? (10)在LoanDB数据库中建立用户角色:role1,并将log1、log2添加到此角色中。 (11)让log2具有LoanDB数据库中的全部数据的查询权,比较好的实现方法是什么? (12)如果拒绝role1查询BankT表,则log1、log2、log3是否有权查询BankT表?为什么? 2、请完成下题 新建一个数据库TGDB,然后在SQL Server中创建“SQL Server身份验证”模式的登录帐号:TG_User,其中账户密码为空,默认数据库为Master。并完成如下操作: 让TG_User成为TGDB数据库的合法用户。 在TGDB数据库中建用户自定义角色:MyRole,让TG_User成为MyRole角色中的成员。 用较好的方法授予MyRole在TGDB数据库中具有所有用户表的查询权。 三、实验报告 将实验结果反映在实验报告中,并对实验中遇到的问题及解决方案、进行整理、分析总结,提出实验结论或自己的看法。 数据库备份和恢复 2 通过本实验的学生,使学生了解SQL Server的数据库备份方法,具备将SQL Server的数据库进行备份和对数据库备份进行数据恢复的能力。 二、实验内容 创建永久性备份设备:backup1,backup2,两个备份设备均存放在默认路径下。 按顺序完成下列备份操作: 将LoanDB数据库完全备份到backup1上; 对LoanDB数据库中的贷款表中的数据进行一些修改,然后将LoanDB数据库差异备份到backup2上; 在贷款表中插入一行新记录,然后将LoanDB数据库差异备份到backup2上; 在贷款表中插入一行新的记录,然后将LoanDB数据库日志备份到backup2上; 在贷款表中删除一行记录,然后对LoanDB数据库日志备份到文件上(d:\file1.bak); 在贷款表中删除一行记录。 对LoanDB数据库进行恢复。恢复顺序是什么样的?如果在恢复之前对数据库进行日志备份,则恢复完成后,第2题第(6)步删除的记录在数据库中存在不?如果在恢复之前不再对数据库进行日志备份,则恢复完成后,第2题第(6)步删除的记录在数据库中存在不? 实验报告 将实验结果反映在实验报告中,并对实验中遇到的问题及解决方案、进行整理、分析总结,提出实验结论或自己的看法。