从 .bak 文件恢复数据
Recover Data from .bak File
我可以使用有关如何恢复非标准 SQL 服务器 .bak
备份文件的提示。
背景:我们有一个正常运行的发票程序,其中包含来自一家已停业提供商的超过 10 年的数据。在过去的通信中,提供商告诉我们该产品是在 SQL 服务器上构建的,但从未告诉我们是什么版本。
我们的目标是从程序中导出数据,重新格式化,然后将其加载到另一个会计系统中。该程序本身没有一套完整的导出工具,因此我们希望从它创建的 .bak
文件中访问数据,以获取所有数据以导入到新系统中。
我尝试了以下 SQL 服务器版本但没有成功:
- 2000
- 2005
- 2008
- 2008 R2
- 2012
- 2014
- 2016
- 2017
我也试过用...恢复...
- Microsoft SQL Server Management Studio 18 但没有列出要恢复的备份集
- SysTools SQL备份恢复但它returns"Could not identify SQL Server version for the selected .bak file."
- SQL Linux 机器上的 Server 2017 并获得以下输出...
1> restore database newhouse from disk='/home/me/test.bak'
2> go
Msg 3241, Level 16, State 1, Server 8350, Line 1
The media family on device '/home/me/test.bak' is incorrectly formed. SQL Server cannot process this media family.
Msg 3013, Level 16, State 1, Server 8350, Line 1
RESTORE DATABASE is terminating abnormally.
1> restore verifyonly from disk='/home/me/test.bak'
2> go
Msg 3241, Level 16, State 1, Server 8350, Line 1
The media family on device '/home/me/test.bak' is incorrectly formed. SQL Server cannot process this media family.
Msg 3013, Level 16, State 1, Server 8350, Line 1
VERIFY DATABASE is terminating abnormally.
1> restore headeronly from disk='/home/me/test.bak' with nounload
2> go
Msg 3241, Level 16, State 1, Server 8350, Line 1
The media family on device '/home/me/test.bak' is incorrectly formed. SQL Server cannot process this media family.
Msg 3013, Level 16, State 1, Server 8350, Line 1
RESTORE HEADERONLY is terminating abnormally.
1> restore headeronly from disk='/home/me/test.bak'
2> go
Msg 3241, Level 16, State 1, Server 8350, Line 1
The media family on device '/home/me/test.bak' is incorrectly formed. SQL Server cannot process this media family.
Msg 3013, Level 16, State 1, Server 8350, Line 1
一个 .bak
包含虚构数据的文件 is available here。
更新#1 - 回复@DavidJamesSmith
这是我得到的...
1> restore headeronly
2> from disk = N'/home/me/test.bak'
3> go
Msg 3241, Level 16, State 1, Server 8350, Line 1
The media family on device '/home/me/test.bak' is incorrectly formed. SQL Server cannot process this media family.
Msg 3013, Level 16, State 1, Server 8350, Line 1
RESTORE HEADERONLY is terminating abnormally.
更新#2 - 再次回复@DavidJamesSmith
据我所知,文件是未加密的。我可以使用 gHex(GNOME 中的十六进制编辑器)打开文件并读取数据。
关于文件损坏的问题,我不相信。无论 .bak
文件是在创建 .bak
的机器上还是在我将文件传输到的另一台机器上,我都会在该程序创建的任何 .bak
文件上遇到相同的错误。
如果文件已损坏,则程序本身正在导出损坏的版本。
这是我在具有帐户软件本身的机器上的新导出 运行 中得到的。
1> use newhouse
2> restore database newhouserecovery from
3> disk = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\Backup\test.bak'
4> with
5> file = 1,
6> move N'test' to N'C:\Users\me\Backup\test.mdf',
7> move N'test_log' to N'C:\Users\me\Backup\test_log.ldf',
8> nounload,
9> stats = 5
10> go
Changed database context to 'newhouse'.
Msg 3241, Level 16, State 1, Server DESKTO\SQLEXPRESS, Line 2
The media family on device 'C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\Backup\test.bak' is incorrectly formed. SQL Server cannot process this media family.
Msg 3013, Level 16, State 1, Server DESKTO\SQLEXPRESS, Line 2
RESTORE DATABASE is terminating abnormally.
帐户软件使用的是 Microsoft SQL Server Compact 3.5 Service Pack 2。
感谢大家的帮助,尤其是@lptr 给我的提示,让我走上了正确的轨道。
我可以使用有关如何恢复非标准 SQL 服务器 .bak
备份文件的提示。
背景:我们有一个正常运行的发票程序,其中包含来自一家已停业提供商的超过 10 年的数据。在过去的通信中,提供商告诉我们该产品是在 SQL 服务器上构建的,但从未告诉我们是什么版本。
我们的目标是从程序中导出数据,重新格式化,然后将其加载到另一个会计系统中。该程序本身没有一套完整的导出工具,因此我们希望从它创建的 .bak
文件中访问数据,以获取所有数据以导入到新系统中。
我尝试了以下 SQL 服务器版本但没有成功:
- 2000
- 2005
- 2008
- 2008 R2
- 2012
- 2014
- 2016
- 2017
我也试过用...恢复...
- Microsoft SQL Server Management Studio 18 但没有列出要恢复的备份集
- SysTools SQL备份恢复但它returns"Could not identify SQL Server version for the selected .bak file."
- SQL Linux 机器上的 Server 2017 并获得以下输出...
1> restore database newhouse from disk='/home/me/test.bak'
2> go
Msg 3241, Level 16, State 1, Server 8350, Line 1
The media family on device '/home/me/test.bak' is incorrectly formed. SQL Server cannot process this media family.
Msg 3013, Level 16, State 1, Server 8350, Line 1
RESTORE DATABASE is terminating abnormally.
1> restore verifyonly from disk='/home/me/test.bak'
2> go
Msg 3241, Level 16, State 1, Server 8350, Line 1
The media family on device '/home/me/test.bak' is incorrectly formed. SQL Server cannot process this media family.
Msg 3013, Level 16, State 1, Server 8350, Line 1
VERIFY DATABASE is terminating abnormally.
1> restore headeronly from disk='/home/me/test.bak' with nounload
2> go
Msg 3241, Level 16, State 1, Server 8350, Line 1
The media family on device '/home/me/test.bak' is incorrectly formed. SQL Server cannot process this media family.
Msg 3013, Level 16, State 1, Server 8350, Line 1
RESTORE HEADERONLY is terminating abnormally.
1> restore headeronly from disk='/home/me/test.bak'
2> go
Msg 3241, Level 16, State 1, Server 8350, Line 1
The media family on device '/home/me/test.bak' is incorrectly formed. SQL Server cannot process this media family.
Msg 3013, Level 16, State 1, Server 8350, Line 1
一个 .bak
包含虚构数据的文件 is available here。
更新#1 - 回复@DavidJamesSmith
这是我得到的...
1> restore headeronly
2> from disk = N'/home/me/test.bak'
3> go
Msg 3241, Level 16, State 1, Server 8350, Line 1
The media family on device '/home/me/test.bak' is incorrectly formed. SQL Server cannot process this media family.
Msg 3013, Level 16, State 1, Server 8350, Line 1
RESTORE HEADERONLY is terminating abnormally.
更新#2 - 再次回复@DavidJamesSmith
据我所知,文件是未加密的。我可以使用 gHex(GNOME 中的十六进制编辑器)打开文件并读取数据。
关于文件损坏的问题,我不相信。无论 .bak
文件是在创建 .bak
的机器上还是在我将文件传输到的另一台机器上,我都会在该程序创建的任何 .bak
文件上遇到相同的错误。
如果文件已损坏,则程序本身正在导出损坏的版本。
这是我在具有帐户软件本身的机器上的新导出 运行 中得到的。
1> use newhouse
2> restore database newhouserecovery from
3> disk = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\Backup\test.bak'
4> with
5> file = 1,
6> move N'test' to N'C:\Users\me\Backup\test.mdf',
7> move N'test_log' to N'C:\Users\me\Backup\test_log.ldf',
8> nounload,
9> stats = 5
10> go
Changed database context to 'newhouse'.
Msg 3241, Level 16, State 1, Server DESKTO\SQLEXPRESS, Line 2
The media family on device 'C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\Backup\test.bak' is incorrectly formed. SQL Server cannot process this media family.
Msg 3013, Level 16, State 1, Server DESKTO\SQLEXPRESS, Line 2
RESTORE DATABASE is terminating abnormally.
帐户软件使用的是 Microsoft SQL Server Compact 3.5 Service Pack 2。
感谢大家的帮助,尤其是@lptr 给我的提示,让我走上了正确的轨道。