现象
在备用机上还原数据库备份时报错
Microsoft SQL-DMO (ODBC SQLState: 42000) 试图扩大物理文件时,MODIFY FILE
遇到操作系统错误 112(磁盘空间不足)。 未能创建一个或多个文件。请考虑使用 WITH MOVE 选项来标识有效位置。 RESTORE
DATABASE 操作异常终止。
原因
但是磁盘空间明明很充足,经过分析,原因如下,备用机对于还原数据的分区文件系统为FAT32,FAT32不支持超过4GB的文件,而还原后的数据库文件已经6个G了。
处理
转换文件系统
针对磁盘空间充足、恢复后单个文件超过4GB、文件系统为FAT32的情况,可以把文件系统转换为NTFS
convert d: /fs:ntfs
改变备份还原的位置
你可以用下面的语句查询还原的数据库有多少个文件,这些文件有多大,还原后文件会放到那个磁盘上
restore filelistonly from disk='f:\20170113.bak'
如果你要把数据文件放到其他空间足够的磁盘上,使用 move 选项来改变还原后的文件位置,示例
restore database dbname from disk='f:\20170113.bak'
with move '逻辑文件名' to 'd:\DBnew.mdf'
--逻辑文件名可以用restore filelistonly 查询,d:\DBnew.mdf是逻辑文件名还原后的位置及文件名