当SQL Server数据库损坏且无法修复时,可以从最近的备份中还原它以恢复对象和数据。但是,当您需要执行对象级恢复而不是执行完整的数据库备份时,就会出现问题。
换句话说,可能需要从数据库备份而不是整个数据库中还原特定表或任何其他对象。但是,没有直接的方法可以执行对象级恢复。
本文讨论了一些方法来恢复SQL中的特定表或视图。此外,它还讨论了如何使用SQL修复软件来安全恢复选择性数据库对象。
在这里,我们将讨论两种手动方法以及一种在SQL Server中恢复对象的自动解决方案。
注意: 仅当您已对SQL Server数据库进行了完整备份时,此方法才有效。
在SQL Server中,您可以通过执行以下步骤来选择性地恢复单个数据库对象:
让我们详细地完成每个步骤:
在此步骤中,我们将还原“ DBLogTest”的备份并将其另存为名为“ TestDB”的新数据库。
图1:还原SQL数据库
图2:选择“从设备”选项
图3:单击添加以选择数据库备份文件
图4:选择备份文件
图6:将数据库备份还原到新数据库
如果大家在学习中遇到困难,想找一个python学习交流环境,可以加入我们的python裙,关注小编,并私信“01”即可进裙,领取python学习资料,会节约很多时间,减少很多遇到的难题。
图7:进行尾日志备份
图8:还原数据库完成的消息
执行这些步骤将使用其他名称将数据库还原到SQL Server。
在此步骤中,我们将使用“ SQL Server导入和导出向导”。该向导有助于在流行的数据格式(例如数据库(SQL Server和Access),Excel电子表格和文本文件)之间导入和导出特定对象。
若要使用SQL Server导入和导出向导导入数据,请按照下列步骤操作:
图9:选择导入数据选项
图10:SQL Server导入和导出向导
图11:选择数据源
图12:输入服务器和数据库详细信息
图13:选择将数据保存到的目标位置
图14:指定目标的详细信息
注意:使用复制数据库向导复制多个SQL数据库或对象(表和视图除外)。
图15:从表复制数据或编写查询
在此示例中,我们选择了’从一个或多个表或视图复制数据‘选项。
图16:选择要还原的表
图17:“保存并运行包”窗口
图18:完成导入过程
图19:复制到目标的选定表数据
注意:此方法有一个缺点。使用此方法,您将需要还原完整的数据库备份,而不是直接选择要还原的对象。
另一种方法是执行特定对象的时间点恢复。为此,请将该RESTORE LOG命令与一个STOPAT子句一起使用,该子句有助于将T-Log备份还原到对象被删除或数据被删除的特定时间。
从FILE = 4,NORECOVERY,STOPAT =’2021年3月19日02:00 PM’的DBLogTest恢复日志TestDB; |
警告!此命令会将所有打开的事务回滚到特定时间。
将事务日志备份还原到某个时间点后,一旦丢失数据,就可以将数据导入到新数据库中。
通过使用用于MS SQL软件的Stellar Repair在SQL Server中执行对象级恢复,可以节省大量时间和精力。就是这样:
图20:选择损坏的SQL数据库文件
图21:修复SQL数据库文件
图22:预览可恢复的数据库对象
图23:文件保存选项
当数据库表或其他SQL Server对象损坏或被意外删除时,可以通过执行对象级恢复而不是还原数据库来节省时间和精力。不幸的是,没有直接的方法可以在SQL Server中执行对象级恢复。但是,使用本文中讨论的手动方法可以帮助您恢复特定的表或其他对象。但是,这些方法有一定的局限性。更好的选择是使用3次聚会SQL恢复工具,可以帮助你在选择性还原特定的数据库对象,无需恢复完整或事务日志备份。