【发布时间】:2014-04-22 07:56:20
【问题描述】:
在我们的开发环境中,我们长期以来一直通过各种 SQL Server 版本和不同的环境配置为我们的每个产品使用特定的备份和恢复脚本,没有任何问题。
最近我们升级到 SQL Server 2012 作为我们的标准开发服务器,具有 SQL 兼容级别 2005 (90),以保持对旧系统的支持。现在我们发现在一台特定开发人员的机器上尝试备份数据库时出现以下错误:
无法使用备份文件“D:\MyDB.bak”,因为它是 最初格式化为扇区大小 512,现在在一个设备上 扇区大小 4096。BACKUP DATABASE 异常终止。
命令是:
BACKUP DATABASE MyDB TO DISK = N'D:\MyDB.bak' WITH INIT , NOUNLOAD , NAME = N'MyDB backup', NOSKIP , STATS = 10, NOFORMAT
奇怪的是,开发者机器上的硬件和分区都没有改变,尽管它们的扇区大小不同,这在以前不是问题。
根据我的研究(即谷歌搜索),除了使用 WITH BLOCKSIZE 选项的建议之外,关于此问题的信息不多,但这给了我相同的错误消息。
我的查询是:
BACKUP DATABASE MyDB TO DISK = N'D:\MyDB.bak' WITH INIT , NOUNLOAD , NAME = N'MyDB backup', NOSKIP , STATS = 10, NOFORMAT, BLOCKSIZE = 4096
谁能解释我如何将数据库备份和恢复到具有不同扇区大小的 HDD 上?
【问题讨论】:
-
备份正在尝试通过
WITH INIT覆盖旧备份文件。您是否尝试过简单地备份到不同的文件名?BACKUP DATABASE MyDB TO DISK = N'D:\MyDB2.bak'... -
@DMason 我担心同样的错误。
-
嗯。您提到了 SQL 2012 升级,这似乎不是问题。硬件呢?你提到硬件和分区没有改变。所以,它仍然是同一个磁盘系统,对吧?
-
我发现这篇文章提到使用跟踪标志进行调查:social.msdn.microsoft.com/Forums/sqlserver/en-US/…
-
@DMason 硬件实际上是一样的,唯一的增加是新版本的 SQL 服务器。奇怪的是,尽管我注意到我们的其他产品在同一个盒子上不会发生这种情况,即使数据库应该是类似的格式。谢谢你的链接,我试试看。
标签: sql sql-server tsql sql-server-2012 backup