我的个人计算机上有SQL Server 2005 Standard。 我创build了一个大约21GB的大数据库。 我做了一个备份,并通过一个FTP程序传输.bak文件到我的专用服务器。 我在我的专用服务器上有SQL Server 2008企业版。 我试过恢复传输的.bak文件,但得到一个错误。 我在这里发布错误,被告知数据库已损坏。 怎么样? 我不知道。 ftp传输过程中连接没有中断。 数据库在我自己的机器上工作。 于是我在自己的机器上分离了数据库,并通过ftp再次将mdf和ldf文件转移到了我的专用服务器上,并且没有中断。 现在我尝试附加数据库,并得到这个错误:文件'DB.MDF'头是不是一个有效的数据库文件头。 FILE SIZE属性不正确。 (Microsoft SQL Server,错误:5172)
要获取帮助,请单击: http : //go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.00.1442&EvtSrc=MSSQLServer&EvtID=5172&LinkId=20476
我已经浪费了21 GB转移.bak文件。 现在我用另一个21转移mdf和额外的ldf文件。 请告诉我有一个解决scheme。 数据库可以分离和附加在我的机器在SQL Server 2005中,但不是我的服务器上的SQL Server 2008。
我猜你的转移已经被破坏了,尽pipe看起来已经成功完成了。 它确实发生。
我的技巧是在传输之前压缩BAK文件。 你会发现BAK文件压缩得相当好,从我预期的21GB降至3或4GB。 WinRAR在压缩数据方面甚至更好。
将2005年BAK文件还原到SQL 2008安装程序当然是可能的,因为将原始MDF和LDF文件移动并附加到SQL 2008服务器,如此处所述 。
你使用的是什么FTP程序? 一些便宜的不能处理大于2/4演出的文件,而不能翻转。
此外,抓住一个简单的CRC程序,并运行它对本地存档和远程。 使用CRC32,因为它比MD5要快得多,而且对密码属性不感兴趣。