SQL2023 数据库还原操作步骤详解
作为一名数据库管理员,数据库的还原操作是我们日常工作中的必备技能之一。尤其在数据库出现了问题或者需要迁移数据时,我们需要借助数据库还原操作来恢复数据。SQL Server 2023 是目前仍在使用的数据库版本之一,今天我们将详细介绍 SQL2023数据库还原操作步骤。
一、 检查备份文件完整性
在进行恢复操作之前,我们需要检查备份文件的完整性。如果备份文件受损或错误,还原操作将失败。可以使用以下命令来检查备份文件的完整性:
RESTORE VERIFYON FROM DISK = ‘备份路径备份文件名.bak’
请将上述命令中的“备份路径备份文件名.bak”替换为您要还原的文件的路径和文件名。执行完该命令后,如果备份文件完整且可用,将会出现“Backup set is valid” 的消息。
二、选择恢复模式
根据实际情况选择不同的恢复模式。SQL Server 2023支持简单恢复、完整恢复和大容量日志恢复三种恢复模式。
1、 简单恢复模式(Simple recovery model)
该模式下数据库的备份只会保留一个完整备份和最后一个增量备份。如果数据库出现故障,只能够恢复到最近一次的备份版本。此模式下日志文件中的数据不会自动清空,如果数据库文件受损或出现问题,将无法进行完整地还原,需左右手动人工恢复。
2、 完整恢复模式(Full recovery model)
该模式下可以将数据恢复到最后一次完整备份之后的任意时间点,并可恢复所有的事务日志。但是该模式下每次的日志备份都会覆盖前一次的日志备份,用户需要手动进行日志备份,否则还原操作将无法使用。
3、 大容量日志恢复模式(Bulk-logged recovery model)
该模式可以在特定情况下提高恢复速度,比如大规模的数据加载、索引重建等操作。但是在使用该模式时,不能进行定期的日志备份,且在发生日志损坏时需要进行常规的完整日志恢复操作。
三、选择恢复操作对象
在选择恢复操作对象之前,我们需要先查询当前数据库中的备份文件信息,以确保能够恢复到正确的版本。可以使用以下命令查询:
RESTORE HEADERON FROM DISK = ‘备份路径备份文件名.bak’
执行此命令后将显示备份文件的详细信息,包括备份版本、备份的时间、备份类型等。
接下来选择要恢复的对象,可以选择全部恢复或部分恢复,包括数据库、文件组、表、视图等。对于需要恢复的对象,可以使用以下命令进行操作:
RESTORE DATABASE 数据库名 FROM DISK = ‘备份路径备份文件名.bak’
使用此命令可以将整个数据库进行还原操作。
RESTORE FILELISTON FROM DISK = ‘备份路径备份文件名.bak’
可以查询备份文件中所有的数据和日志文件信息。
RESTORE FILE 数据库数据或事务日志文件名 FROM DISK = ‘备份路径备份文件名.bak’
此命令可以选择性恢复指定的数据或日志文件。
四、确定还原设备
在进行还原操作之前,需要确定恢复设备,即决定将备份文件还原到什么位置。数据文件和事务日志文件具有不同的还原位置。
对于数据文件,可以使用以下命令进行还原操作:
RESTORE DATABASE 数据库名 FROM DISK = ‘备份路径备份文件名.bak’ WITH MOVE ‘数据文件名称’ TO ‘本地磁盘路径文件名.mdf’
对于事务日志文件,可以使用以下命令进行恢复:
RESTORE LOG 数据库名 FROM DISK = ‘备份路径备份文件名.bak’ WITH FILE = ‘事务日志文件名称’ TO ‘C:本地磁盘路径文件名.ldf’
五、执行还原操作
在进行还原操作前,需要确保以下两点:
1、如果要还原的数据库已经存在,则需要使用以下命令先行关闭该数据库:
ALTER DATABASE 数据库名 SET SINGLE_USER WITH ROLLBACK IMMEDIATE
2、执行还原操作前需要备份原数据库,以防还原操作失败。执行还原操作的命令如下:
RESTORE DATABASE 数据库名 FROM DISK = ‘备份路径备份文件名.bak’
执行完以上命令之后,即可完成数据库恢复操作。
SQL2023 数据库的还原操作步骤其实并不复杂,但是需要管理员根据实际情况形成适合自己的操作模式。在还原操作之前,建议先行查看备份文件的完整性,选择恰当的恢复模式,选择要恢复的操作对象,确定还原设备,最后再执行数据库还原操作。以上就是 SQL2023 数据库还原操作步骤详解,希望对大家在实际工作中的数据库恢复操作有所帮助。
相关问题拓展阅读:
SQLServer2023数据库怎样备份还原和数据恢复
在完整恢复模式或大容量日志恢复模式下,必须先备份活动事务日志(称为日志尾部),然后才能在SQLServerManagementStudio中还原数据库。有关详细信息,请参阅如何备份事务日志(SQLServerManagementStudio)。若要还原已加密的数据库,您必须有权访问用于加密数据库的证书或非对称密钥。如果没有证书或非对称密钥,数据库将无法还原。
认识数据库备份和事务日志备份
数据库备份与日志备份是数据库维护的日常工作,备份的目的是在于当数据库出现故障或者遭到破坏时可以根据备份的数据库及事务日志文件旅亮还原到最近的时间点将损失降到更低点。
数据库备份
数据库备份可以手动备份和语句备份
一.手动备份数据库
1.鼠标右键选择你要进行备份的数据库-任务-备份
可以在常规选项页面你可以选择备份类型是进行完整数据库备份还是差异数据库备份
2.点击添加选项,选择数据库文件的存放路径
注意文件名记得加后缀.bak,便于恢复时的查找
3.你还可以在选项页面是追加到现有的备份集,还是覆盖所有的现有备份集,还可以选择备份验证完整性(建议选择),还可以选择是否压缩备份等。
二.语句备份数据库
use master goBACKUP DATABASE TO DISK = N’D:Microsoft sql serverMSSQL10.MSSQLSERVERMSSQLBackupest.bak’ WITH NOFORMAT, NOINIT, NAME = N’test-完整 数据库 备份’, SKIP, NOREWIND, NOUNLOAD, STATS = 10GO
数据库日志备份
首先需要注意,数据库日志的备份是基于数据库完整备份,也就是说你备份数据缓明库日志之前你首先要先对数据库进行一次完整的备份,因为之间会涉及到坚持到检查点
lsn,
这也是本文接下来要讲的重点。
一.手动备份数据库日志
1.右键数据库-任务-备份-选择备份类型(事务日志)
2.点添加,添加日志文件备份存储路径
3.同数据库完整备份一样,你也可以选择覆盖现有备份集或者追加到现有备份集,这里现在覆盖现有备份集、验证完整性,然后确认备份
二.语句备份数据库事务日志
BACKUP LOG TO DISK = N’D:est.trn’ WITH NOFORMAT, INIT, NAME = N’test-事务日志 备份’, SKIP, NOREWIND, NOUNLOAD, STATS = 10GO
数据库还原
右键数据库-还原数据库-添加需要进行还原的数据库文件路径
在还原源选项中你可以选择‘源数据库’,‘源设备’。1.选择源数据库工具会自动显示该数据库之前的一些备份,然后直接选择需要还原的数据库备份集。
2.选择源设备点击后面的…,添加需要还原的数据库文件
2.点击确认还原数据库
数据库恢复
数据库恢复的前提是1.一个完整的数据库备份2.包含这个完整数据库备份的事务日志备份3.完整备份之间也可以存在数个差异备份
对于数据库维护空间始终是一个比较头疼的问题,特别是对于大型数据库而言,每天的日志文件增长是庞大的,很多数据库管理员会定时对数据库日志文件进行收缩,但是经常收缩会存在收缩完日志文件还是不能扰镇告减少,这是因为存在很多活动的日志无法收缩可以用
DBCC LOGINFO(‘数据库名称’)
我们看到
status=0的日志,代表已经备份到磁盘的日志文件;而
status=2的日志还没有备份。当我们收缩日志文件时,收缩掉的空
间其实就是
status=0的空间,如果日志物理文件无法减小,这里一
定能看到非常多status=2的记录
解决办法:1.可以分离要收缩的数据库,然后手动删除日志文件,然后附加数据库,数据库就会产生一个很小的日志文件(不推荐使用这种方法)
2.右键要出来的数据库选择“属性”-“选项”,将恢复模式改成”简单”,然后利用收缩工具可以讲日志文件收缩到很小,收缩完记得讲恢复模式改成”完整”
也可以用语句进行处理(dbname是你要进行收缩的数据库名,dbname_log是你要进行收缩的数据库的逻辑日志名称)
USE
GO ALTER DATABASE SET recovery SIMPLE WITH NO_WAIT GO
ALTER DATABASE SET RECOVERY SIMPLE –简单模式
GO
USE
GO
DBCC SHRINKFILE (N’dbname_log’ , 11, TRUNCATEON) GO
USE
GO
ALTER DATABASE SET RECOVERY FULL WITH NO_WAIT ALTER DATABASE SET RECOVERY FULL
对于之一种方法不赞同使用,首先对于数据库的分离与附加有时候会破坏数据库,造成数据库无法还原,还有就是对于在线数据库也不允许进行分离操作。
对于第二种方法是slq2023收缩日志文件的一种方法,但是此方法也不能使用过于频繁,因为进行数据库恢复模式的更改会截断事务日志文件,这样的话当时利用事务日志文件进行恢复的时候检查点不能包含数据库文件,而且当你要对事务日志进行备份的时候会重新提示你需要对数据库进行完整备份。
举个例子:比如你昨天晚上进行了一次完整备份,然后同时你也进行了一次日志备份(提前日志未被截断),然后你每个小时进行过一次差异备份,最近的差异备份时间点是14点,如果此时数据库错误修改了数据,你可以立马备份一个日志文件将数据库恢复到日志备份开始到日志备份终点前的任意时间点 。
如果此时你进行了修改数据库模式,截断日志进行了收缩,那么你的数据只能恢复到昨天晚上备份的那个日志备份时间前的任意时间点,也就是今天所做的数据库更改无法再恢复了,因为日志文件已经被截断了,不知道这样解释是否明白
因为日志文件的检查点(lsn)是连续的,每一次日志备份都是在上一次备份的基础上lsn往后增加的,lsn的范围也包括了数据库文件的lsn,也只有日志文件的lsn包括了数据库文件的lsn,才能将数据库文件进行回滚。
上图中总共有三个备份文件,一个完整备份、一个差异备份、一个日志备份,大家可以注意观察完整备份的之一个lsn与最后一个lsn,和检查点
sql2023数据库还原步骤的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于sql2023数据库还原步骤,SQL2023数据库还原操作步骤详解,SQLServer2023数据库怎样备份还原和数据恢复的信息别忘了在本站进行查找喔。
来源地址:SQL2023数据库还原操作步骤详解 (sql2023数据库还原步骤)
转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:www.88531.cn资享网,谢谢!^^