用PHP读取MSSQL .bak文件

时间:2011-12-14 00:53:52

标签: php sql-server

我最近继承了从旧的MSSQL .bak文件中恢复数据的悲惨任务。当它进入一个Web数据库时,如果可以通过PHP访问和读取它将既有趣又理想。

我目前无法访问从MS加载SQL管理控制台的Windows计算机,这允许我恢复此备份文件。

有没有人知道是否有任何库可以方便访问此.bak文件中的数据?

3 个答案:

答案 0 :(得分:1)

不幸的是,从这些二进制.bak文件中读取数据的唯一可行方法是通过MS SQL管理控制台。正如你可能已经注意到它不是纯文本可以用任何其他工具轻松解析,并且就我和(谷歌)所知,没有可靠的工具可以处理那些bak文件而不是实际提供的MS工具来完成说任务。您将不得不安装正确版本的SQL来读取该文件。

答案 1 :(得分:1)

如果您没有MS SQL但是您有某个版本的Windows,则可以尝试使用Microsoft SQL Server 2000桌面引擎。可从http://www.microsoft.com/en-us/download/details.aspx?id=22661

免费下载

我发现这是http://forums.mysql.com/read.php?65,72796,207081#msg-207081 Tim提到可以创建一个实时ODBC数据源。

到目前为止,我自己并没有成功(它不是在我的虚拟机上安装XP),而且我可能会在最近的一天中获得正确的SQL转储。

答案 2 :(得分:0)

有这样一个工具Red-Gate Virtual Restore。但是,它确实需要完整的SQL Server安装,因为该工具只是一个虚拟文件映射器,它允许SQL Server实例通过将来自SQL Server的IO请求映射到适当的恢复来读取.bak文件。 bak文件(见Hyperbak)。该工具的好处是允许检查.bak文件内容和检索数据而不进行完全恢复(主要是不创建恢复数据库所需的实际.MDF / .LDF文件)。

在您的情况下,您应该在适当版本的SQL Server实例中恢复.bak文件。如果您很幸运并且原始数据库不包含仅Enterprise的功能(sys.dm_db_persisted_sku_features为空)并且数据库未超过10Gb SQL Express限制,那么您将能够使用免费{恢复备份文件'。 {3}}实例。