[英]Opening a SQL Server .bak file (Not restoring!)
我一直在阅读很多关于如何从.bak文件恢复SQL Server中的数据库的google帖子和StackOverflow问题。
但是它们都没有说明如何只读取数据库备份中的表。 (无论如何我都找不到?)
我只想查看一些现已删除的旧信息,而不是实际恢复完整的数据库。 这可能吗?
。
编辑:
我只是想发布我的T-SQL解决方案来解决这个问题,所以其他人可能会使用它,我可以回去查看它;)
首先,我创建了一个名为backup_lookup
的新数据库,并使其脱机。 在此之后,我可以将我的旧数据库mydb
恢复到新数据库,而不会触及我的原始数据库。
USE master
GO
RESTORE DATABASE backup_lookup
FROM DISK = 'D:\backup\mydb.bak'
WITH REPLACE,
MOVE 'mydb' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\backup_lookup.mdf',
MOVE 'mydb_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\backup_lookup_log.ldf'
GO
我希望这有帮助 :)
从SQL Server 2008 SSMS(SQL Server Management Studio),只需:
或者:
右键单击“任务”,“还原”,“数据库”
PS:我再次强调的是:你可以很容易地做到这一点了“从无到有数据库”上-你不需要覆盖当前的数据库。 但是你确实需要恢复 。
PPS:如果您希望编写脚本,也可以使用T-SQL命令完成相同的操作。
唯一可行的解决方案是恢复 .bak
文件。 这些文件的内容和结构没有记录 ,因此,实际上没有办法(除了糟糕的黑客之外)才能使用它 - 绝对不值得花时间和精力!
我所知道的唯一可以理解.bak
文件而不需要恢复的工具是Red-Gate SQL Compare Professional (和随附的SQL数据比较),它允许您将数据库结构与.bak
文件的内容进行比较。 红门工具绝对是绝对的 - 非常值得推荐,非常值得花费每一分钱!
我刚刚检查了他们的网站 - 看起来你确实可以使用SQL Compare Pro从.bak
文件中恢复单个表! :-)
没有标准的方法可以做到这一点。 您需要使用第三方工具,如ApexSQL Restore或SQL Virtual Restore 。 这些工具并不直接读取备份文件。 他们让SQL Server“思考”备份文件,就好像这些是实时数据库一样。
只是添加我的TSQL脚本解决方案:
首先; 添加名为backup_lookup
的新数据库。 然后只需运行此脚本,插入自己的数据库的根路径和备份文件路径
USE [master]
GO
RESTORE DATABASE backup_lookup
FROM DISK = 'C:\backup.bak'
WITH REPLACE,
MOVE 'Old Database Name' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\backup_lookup.mdf',
MOVE 'Old Database Name_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\backup_lookup_log.ldf'
GO
单独使用SQL Server 2008似乎不可能。 您将需要第三方工具的帮助。
它将帮助您使.bak充当实时数据库:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.