我在SQL Server 2005中将一千万个数据从一个表移动到另一个表。数据传输的目的是使旧数据脱机。
一段时间后,它会抛出一个error Description: "The LOG FILE FOR DATABASE 'tempdb' IS FULL."
。
我的tempdb
和templog
放置在驱动器(C驱动器除外)之间,该驱动器的可用空间大约为200 GB。此外,我在数据库中的tempdb
大小设置为25 GB
。
根据我的理解,我必须将tempdb
的大小从25 GB
增加到50 GB
,并将日志文件自动增长部分设置为“unrestricted file growth (MB)
”。< / p>
请让我知道其他因素,因为我正在使用生产数据库,所以我无法进行多少实验。所以,如果他们的更改会产生一些其他影响,请告诉我。
先谢谢。
答案 0 :(得分:1)
我的猜测是你试图在一个批次中移动所有数据;你可以将它分解成更小的批次,并在插入时减少行数吗?此外,如注释中所述,您可以将目标数据库设置为SIMPLE或BULK-INSERT模式。
答案 1 :(得分:1)
你知道解决方案。似乎您只是移动部分数据以加快查询速度。
我同意你的解决方案
根据我的理解,我必须将tempdb的大小从25 GB增加到50 GB,并将日志文件自动增长部分设置为&#34;不受限制的文件增长(MB)&#34;。
继续
答案 2 :(得分:0)
你为什么要使用日志文件?复制数据(数据和日志文件),然后在SIMPLE上设置模式并再次运行传输。