【发布时间】:2012-06-13 19:51:55
【问题描述】:
我最近接手了从旧的 MSSQL .bak 文件中恢复数据的艰巨任务。由于这是一个网络数据库,如果它可以被 PHP 访问和读取,那将是既有趣又理想的。
我目前无法访问从 MS 加载 SQL 管理控制台的 Windows 机器,这允许我恢复此备份文件。
有谁知道是否有任何库可以方便访问此 .bak 文件中的数据?
【问题讨论】:
标签: php sql-server
我最近接手了从旧的 MSSQL .bak 文件中恢复数据的艰巨任务。由于这是一个网络数据库,如果它可以被 PHP 访问和读取,那将是既有趣又理想的。
我目前无法访问从 MS 加载 SQL 管理控制台的 Windows 机器,这允许我恢复此备份文件。
有谁知道是否有任何库可以方便访问此 .bak 文件中的数据?
【问题讨论】:
标签: php sql-server
不幸的是,从这些二进制 .bak 文件中读取数据的唯一可行方法是通过 MS SQL 管理控制台。正如您可能注意到的那样,它不是可以用任何其他工具轻松解析的纯文本,而且据我(和谷歌)所知,除了提供的实际 MS 工具之外,没有可靠的工具可以处理这些 bak 文件说任务。您必须安装正确版本的 SQL 才能读取该文件。
【讨论】:
如果您没有 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 转储。
【讨论】:
有这样一个工具,Red-Gate Virtual Restore。但是,它确实需要完整的 SQL Server 安装,因为该工具只是一个虚拟文件映射器,它允许 SQL Server 实例通过将来自 SQL Server 的 IO 请求映射到 . bak 文件(请参阅Hyperbak)。该工具的好处是允许检查 .bak 文件内容和检索数据而无需完全恢复(主要无需创建恢复数据库所需的实际 .MDF/.LDF 文件)。
在您的情况下,您应该在适当版本的 SQL Server 实例中恢复 .bak 文件。如果您很幸运并且原始数据库不包含仅企业功能(sys.dm_db_persisted_sku_features 为空)并且数据库未超过 10Gb SQL Express 限制,那么您将能够使用免费的SQL Server 2008R2 Express 恢复备份文件实例。
【讨论】: