还原数据库bak文件有时候会要求很高的磁盘空间,这是因为你的备份文件bak含有很大的ldf文件
所以还原数据库以后,被还原的数据库也会附加着非常大的ldf文件,解决方法如下:
1、分离数据库后
到目录下删除.ldf文件后
到sql server中附加数据库
(会提示找不到ldf文件,不用管,直接删除就可以了)
附加成功后 ,ldf文件 504K
经确认可行,并且对网站的内容没有影响。。。。呵呵
2、用sql语句收缩事务日志文件
不过我还没有成功过
步骤操作:1. 备份事务日志文件,以使大多数活动虚拟日志文件处于非活动状态。因此,可在以后的步骤中删除非活动的虚拟日志文件。为此,请运行与以下 Transact-SQL 语句相似的 Transact-SQL 语句。BACKUP LOG <DatabaseName> TO DISK = '<BackupFile>'
注意:在此语句中,<DatabaseName> 是要备份的数据库名称的占位符。在此语句中,<BackupFile> 是备份文件完整路径的占位符。
例如,运行以下 Transact-SQL 语句。BACKUP LOG TestDB TO DISK='C:\TestDB1.bak'
2. 收缩事务日志文件。为此,请运行与以下 Transact-SQL 语句相似的 Transact-SQL 语句。DBCC SHRINKFILE (<FileName>, <TargetSize>) WITH NO_INFOMSGS
注意:在此语句中,<FileName> 是事务日志文件名称的占位符。在此语句中,<TargetSize> 是事务日志文件目标大小的占位符。目标大小必须合理。例如,您不能将事务日志文件收缩为小于 2 个虚拟日志文件的大小。
3. 如果 DBCC SHRINKFILE 语句未将事务日志文件收缩为目标大小,则运行步骤 1 中提到的 BACKUP LOG 语句,以使更多的虚拟日志文件处于非活动状态。
4. 运行步骤 2 中提到的 DBCC SHRINKFILE 语句。执行此操作后,事务日志文件就应接近目标大小了。