导入数据,日志文件撑满磁盘,怎么办?

昨天在做变更时,遇到这样一个问题。
在同一个SQL Server实例上,要将一个库中的一个表的数据,全量导入到另一个数据库中,表结构完全一致的空表中。目的数据库的恢复模式是简单。
原定的实施计划是用导入导出向导做,但在向导执行时报错某一列的数据无效。

需要导入的数据有6000W行,要找到哪一行的数据有问题会非常耗时,于是就打算用

insert into destination_table select * from source_table with(nolock)

导入数据。


导入的过程中,执行


select count(1) from destination_table with(nolock)


随时查看导入的进度。
当运行了10分钟,插入了2000W行时,监控系统告警磁盘空间不足。检查磁盘空间发现,数据库日志文件所在的盘,可用空间只剩几十MB了。

只插入了1/3的数据, 日志文件增长20多GB,导致磁盘空间耗尽。服务器上暂时没有别的磁盘空间可用,于是就取消了insert的操作,让事务回滚,时不时执行


select count(1) from destination_table with(nolock)


看着行数不断减少,估计回滚完成的时间。回滚完成后,赶紧收缩了日志文件。在这种情况下,inser
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值