首页 > 其他分享 >5.31

5.31

时间:2024-06-14 21:24:29浏览次数:16  
标签:SC students 备份 Course 5.31 backup1 数据库

今天完成数据库原理实验四

1、开始→程序→Microsoft SQL Server→SQL Server Management Stdio。

2、 在“连接到服务器”对话框中,选择“Windows 身份验证”,点击“连接”,进

入 SQL Server Management Stdio 操作界面。

3、 创建 students 数据库。利用如下 sql 语句在 students 数据库中创建表(具体含义

见课本 P33 页)。

CREATE TABLE Student (

Sno char ( 7 ) PRIMARY KEY,

Sname char ( 10 ) NOT NULL,

Ssex char (2),

Sage tinyint ,

Sdept char (20)

)

CREATE TABLE Course (

Cno char(10) NOT NULL,

Cname char(20) NOT NULL,

Ccredit tinyint ,

Semester tinyint,

PRIMARY KEY(Cno)

)

CREATE TABLE SC

(

Sno char(7) NOT NULL,

Cno char(10) NOT NULL,

Grade tinyint,

XKLB char(4) ,

PRIMARY KEY ( Sno, Cno ) ,

FOREIGN KEY (Sno) REFERENCES Student (Sno),

FOREIGN KEY (Cno) REFERENCES Course (Cno)

)

4、 数据库的备份与恢复实验(238页)

上机练习
分别采用SSMS工具和T-SQL 语句, 利用第10章上机练习建立的“学生数据库”和第11章上机练习建立的表,完成下列各题。
1.利用 SSMS 工具按顺序完成下列操作:
(1) 创建永久备份设备: backup1, backup2。

  • 在SSMS中,服务器对象 -> "备份设备" -> "新建备份设备",然后输入名称backup1,选择路径或类型,确定;重复此步骤创建backup2。

路径为:E:\JavaJdk\SqlServer\SqlServer1\MSSQL16.MSSQLSERVER\MSSQL\Backup\backup1.bak

E:\JavaJdk\SqlServer\SqlServer1\MSSQL16.MSSQLSERVER\MSSQL\Backup\backup2.bak


(2)对“学生数据库”进行一次完整备份,并以追加的方式备份到backup1设备上。

 

BACKUP DATABASE students TO DISK = 'E:\JavaJdk\SqlServer\SqlServer1\MSSQL16.MSSQLSERVER\MSSQL\Backup\backup1.bak' WITH INIT;

 


(3)执行下述语句删除“学生数据库”中到 SC表:
DROP TABLE SC


(4)利用backupl设备上对“学生数据库”进行的完整备份, 恢复出“学生数据库”

 

RESTORE DATABASE students FROM DISK = 'E:\JavaJdk\SqlServer\SqlServer1\MSSQL16.MSSQLSERVER\MSSQL\Backup\backup1.bak' WITH RECOVERY;

(在主控制台运行)
(5)查看SC表是否被恢复出来了。

 


2.利用SSMS 工具按顺序完成下列操作:
(1)对“学生数据库”进行一次完整备份,并以覆盖的方式备份到backupl设备上,覆盖掉backup1设备上已有的备份内容。

 

 

BACKUP DATABASE students TO DISK = 'E:\JavaJdk\SqlServer\SqlServer1\MSSQL16.MSSQLSERVER\MSSQL\Backup\backup1.bak' WITH FORMAT;
(2) 执行下述语句在 Course 表中插入一行新记录:
INSERT INTO Course VALUES(‘C201’, ‘离散数学’,3,4)
(3)将“学生数据库”以覆盖的方式差异备份到 backup2设备上。


(4)执行下述语句删除新插入的记录:
use students

DELETE FROM Course WHERE Cno = 'C201';
(5)利用backup1 和backup2备份设备对“学生数据库”的备份, 恢复“学生数据库”。完全恢复完成后,在Course 表中有新插入的记录吗?为什么?

 

  • 恢复后Course表不会有新插入记录,因为日志备份是在删除记录后做的,恢复到删除点。


3.利用 SSMS 工具按顺序完成下列操作:
(1)将“学生数据库”的恢复模式改为“完整”的。

 


(2)对“学生数据库”进行一次完整备份,并以覆盖的方式备份到backup1设备上。


(3) 执行下述语句向 Course 表中插入一行新记录:
INSERT INTO Course VALUES('C202', ' 编译原理',5,4)


(4)对“学生数据库”进行一次差异备份,并以追加的方式备份到backupl设备上。

与上文的backup1同一路径。


(5)执行下述语句删除新插入的记录:
DELETE FROM Course WHERE Cno = 'C202'


(6)对“学生数据库”进行一次日志备份,并以覆盖的方式备份到backup2设备上。

 


(7)利用 backup1 和backup2 备份设备恢复“学生数据库”,恢复完成后, 在 Course 表中有新插入的记录吗?为什么?

 

在完成利用backup1(包含完整备份和差异备份)和backup2(包含日志备份)恢复“学生数据库”的操作后,Course表中不会出现新插入的记录,即之前插入的C202记录不会恢复。原因如下:

  1. 完整备份:首先,你对数据库进行了完整备份并存储在backup1上,此时数据库中还没有插入C202记录。
  2. 差异备份:接着进行了差异备份,它记录了从完整备份以来的所有变化,包括插入C202记录的事务。这个差异备份也存储在backup1上。
  3. 日志备份:在差异备份之后,你删除了C202记录,并对数据库进行了日志备份,该日志备份包含了删除操作的信息,存储在backup2上。
  4. 恢复过程:当你利用backup1backup2恢复数据库时,首先会应用完整备份和差异备份,此时Course表中会包含C202记录。但随后,当恢复日志备份(backup2)时,数据库会重做日志中的事务,包括了删除C202的事务。这意味着C202记录会被再次删除。

因此,最终恢复完成后,Course表中不会出现C202这一新插入的记录,因为该记录虽然在差异备份中被包含,但在恢复日志备份的过程中被对应的删除操作回滚了。这就体现了数据库恢复过程中事务日志的连续性和一致性保障机制。

 

 

 

 

运行此任务时需断开连接

 

USE [master]

RESTORE DATABASE students

FROM DISK = 'E:\JavaJdk\SqlServer\SqlServer1\MSSQL16.MSSQLSERVER\MSSQL\Backup\backup1.bak'

WITH REPLACE;

GO
4.利用备份和恢复数据库的T-SQL 语句按顺序完成下列操作:
 (1) 新建备份设备back1 和 back2,它们均存放在D:\BACKUP 文件夹下(假设此文件夹已存在),对应的物理文件名分别为back1. bak 和 back2. bak。

EXEC sp_addumpdevice 'disk', 'back1', 'E:\JavaJdk\SqlServer\SqlServer1\MSSQL16.MSSQLSERVER\MSSQL\Backup\backup1.bak';

EXEC sp_addumpdevice 'disk', 'back2', 'E:\JavaJdk\SqlServer\SqlServer1\MSSQL16.MSSQLSERVER\MSSQL\Backup\backup2.bak';
(2)对“学生数据库”进行一次完整备份,以覆盖的方式备份到 back1上。

BACKUP DATABASE students TO back1 WITH FORMAT;
(3) 删除 SC表。

DROP TABLE SC;
(4)对“学生数据库”进行一次差异备份,以追加的方式备份到 back1 上。

 

BACKUP DATABASE students TO back1 WITH DIFFERENTIAL;
(5) 删除“学生数据库”。

DROP DATABASE students;


 (6)利用back1备份设备恢复“学生数据库”的完整备份,并在恢复完成之后使数据库成为可用状态。

RESTORE DATABASE students FROM back1 WITH REPLACE, RECOVERY;
 (7)在SSMS工具的对象资源管理器中查看是否有“学生数据库”?为什么?如果有,展开此数据库中的“表”节点,查看是否有 SC表?为什么?

数据库存在,SC表不存在,因为SC表在备份前已被删除。
 (8)再次利用back1备份设备恢复“学生数据库”,首先恢复完整备份并使恢复后的数据库成为正在恢复状态,然后再恢复差异备份并使恢复后的数据库成为可用状态。

 

RESTORE DATABASE students FROM back1 WITH NORECOVERY; -- 完整备份,保持数据库为恢复中状态

RESTORE DATABASE students FROM back1 WITH FILE=2, RECOVERY; -- 差异备份,使数据库可用,记得使用FILE参数指明差异备份
 (9)在SSMS工具的对象资源管理器中展开“学生数据库”和其下的“表”节点,这次是否有SC表?为什么?

 

此时SC表仍不应存在,因为虽然恢复了数据库,但差异备份是在删除SC表后进行的,所以恢复后也不会有SC表。
 (10)对“学生数据库”进行一次完整备份,直接备份到D:\BACKUP 文件夹下,备份文件名为:students. bak。

 

BACKUP DATABASE students TO DISK = 'E:\JavaJdk\SqlServer\SqlServer1\MSSQL16.MSSQLSERVER\MSSQL\Backup\students.bak' WITH FORMAT;
(11)对“学生数据库”进行一次事务日志备份,以追加的方式备份到 back2设备上。

请注意,进行事务日志备份前,数据库必须处于“完整”恢复模式。若之前更改过,需先确认恢复模式。

 

(需要首先有完整备份)

BACKUP DATABASE students TO back2 WITH FORMAT;

BACKUP LOG students TO back2 WITH NOFORMAT;

标签:SC,students,备份,Course,5.31,backup1,数据库
From: https://www.cnblogs.com/gjsgjs/p/18248664

相关文章

  • 5.31
    //注册功能Future<void>register(BuildContextcontext,Stringusername,Stringpassword,Stringusername2,StringphoneNumber,Stringemail)async{try{Diodio=Dio();StringcheckUrl="http://192.168.211.14:9090/user/c......
  • 2024.5.31
    8-3【Python0027】函数图形绘制分数10全屏浏览作者 doublebest单位 石家庄铁道大学【题目描述】设,,,其中,完成下列操作:(1)在同一坐标系下用不同的颜色和线型绘制y1、y2和y3三条曲线;(2)在同一绘图框内以子图形式绘制y1、y2和y3三条曲线。【练习要求】......
  • AI推介-多模态视觉语言模型VLMs论文速览(arXiv方向):2024.05.25-2024.05.31
    文章目录~1.EmpoweringVisualCreativity:AVision-LanguageAssistanttoImageEditingRecommendations2.Bootstrap3D:Improving3DContentCreationwithSyntheticData3.Video-MME:TheFirst-EverComprehensiveEvaluationBenchmarkofMulti-modalLLMsin......
  • [2024.5.31晚~2024.6.1早鲜花] 余生的第一天
    [2024.5.31晚~2024.6.1早鲜花]余生的第一天来\(GF\)集训一两周了,宿舍居然有电梯,而且学生居然可以乘坐,\(GF\)的饭也十分好吃,比\(XF\)的好吃一万倍,听\(yzj\)说清华附的比\(GF\)好吃一万倍,难以想象了认识了好多别的学校的女生!大家都好可爱(●'◡'●),传奇的原神传教大师\(cyl\)有......
  • 5.31 CF R 949 (Div.2)
    5.31CFR949(Div.2)Solve:A~D(4/6)Rank:99Rating:\(1939+131=2070\)(\(1989+81=2070\))发挥评价:Normal失误:小失误是做2B时候没有注意,第一次错了之后就急了,接连交了\(4\)发罚时。注意如果交上去WA了,想清楚、找清楚问题再交。CF1981E(me*2200)给定\(n\)......
  • 2024.5.31 做题记录
    1.外星千足虫公元\(2333\)年\(2\)月\(3\)日,在经历了\(17\)年零\(3\)个月的漫长旅行后,“格纳格鲁一号”载人火箭返回舱终于安全着陆。此枚火箭由美国国家航空航天局(NASA)研制发射,行经火星、金星、土卫六、木卫二、谷神星、“张衡星”等\(23\)颗太阳系星球,并最终在小行......
  • 《旋转的快速傅里叶变换》——2024.5.31
    $$\aleph$$——发疯记录(无题,不知道起什么好,用前几天看书看到的符号阿列夫表示了)我很久没发过阶段性总结类的博文了,对比去年来是少之又少。一是因为我觉得现在的日子比去年枯燥多了;二是其实我平时会写记录,但没有总的;三是上了高中以后几次语文考试我的作文成绩都很差,老师说我写的......
  • 【2024潇湘夜雨】WIN11_Pro_23H2.22635.3139软件选装纯净版2.04
    【系统简介】=============================================================1.本次更新母盘来自WIN11_Pro_23H2.22635.3139.2.增加部分优化方案,手工精简部分较多。3.OS版本号为22635.3139。精简系统只是为部分用户安装,个别要求高的去MSDN下。4.集成《DrvCeo-2.16.0.0》网卡版、运......
  • 运行 'Tomcat 8.5.31' 出错: 无法打开调试器端口 (127.0.0.1:62511): java.net.Socket
    多个中间件占用一个端口,修改端口  ......
  • 不忘初心 Windows10 22H2 19045.3155 x64 无更新 纯净 深度精简 2023.7.9
    注意此版不能更新补丁,支持人脸和指纹,此为深度精简版体积小、精简的比较多,适合软件不多的朋友使用,可以安装商店、以及其他UWP程序,可以登录微软账号。如有第三方软件打不开,请自行安装资源包里的微软常用运行库,为了保证稳定初心的系统全部都是离线精简和优化,非二次封装。系统纯净、流......