SQLserver2008r2 迁移大数据文件

💕关于大SQL文件导入问题

1.特大文件导入会出现,内存不足的错误
image.png
2.可使用命令行进行数据导入

# 以下三行命令均可 -s 为服务器 -u 用户名 -p 为密码 -d 为数据库名称 -i 为数据源路径
sqlcmd -S"127.0.0.1" -U"sa" -P"123456" -d hjh -i "D:\software\sql\weilai\weilai"
osql -S"127.0.0.1" -U"sa" -P"123456" -d hjh -i "D:\software\sql\weilai\weilai"
osql -E -i "D:\software\sql\weilai\weilai"

🎶其他事项

采用附加的模式进行导入数据库,出现日志文件损坏问题

解决办法:
1.首先要备份好mdf文件,不然乐子就大了。
2.在数据库中新建一个需要附加同名的数据库。例如【DM】
3.停止SQL Server服务
4.找到该数据库所在的文件夹、并删除DM_log.ldf与DM.mdf文件
5.把需要附加的数据库【DM.mdf】文件拷贝到当前路径。
6.启动SQL Server服务,通过企业管理器连接数据库。
7.此时的1步中新建的数据库地址已经指向你需要附加数据库的mdf文件了。但是现在数据库还是无法打开的。
8.执行语句:ALTER DATABASE DM SET EMERGENCY
9.执行语句:ALTER DATABASE DM SET SINGLE_USER
10.执行语句:ALTER DATABASE DM REBUILD LOG ON (NAME=DM_log,FILENAME=‘新数据库日志文件绝对路径’)
这一步可能会出现两个问题:
a.如果出现无法操作数据库文件,那么修改DM.mdf文件的权限为完全控制。
b.其中FILENAME为你需要新建ldf日志的路径的ldf文件名称。运行后会出现一条警告“执行后,会有警告信息“警告: 数据库 ‘DM’ 的日志已重新生成。已失去事务的一致性。RESTORE 链已断开,服务器不再有以前的日志文件的上下文,因此您需要了解它们的内容。应运行 DBCC CHECKDB 验证物理一致性。数据库已置于 dbo-only 模式。在准备使数据库可用时,需要重置数据库选项,并删除所有多余的日志文件。”这一步忽略,执行下面步骤
11.DBCC CHECKDB(DM, REPAIR_ALLOW_DATA_LOSS) 这一步会比较卡,可能会导致界面未响应。多等一会。成功后数据库变成了单用户 模式,下面两步骤修改成多用户模式。
12.ALTER DATABASE DM SET MULTI_USER
13.ALTER DATABASE DM SET ONLINE
问题解决!

# RBS_QD_TDH2016 为数据库名称,以下命令真实有效,需要在上述步骤2-3-4-5-6完成后操作
# 执行顺序 由上往下
ALTER DATABASE RBS_QD_TDH2016 SET EMERGENCY;
ALTER DATABASE RBS_QD_TDH2016 SET SINGLE_USER;
# 这步要是出现问题,建议重新导数据 比如page页偏移量数据不对,等等。。。
ALTER DATABASE RBS_QD_TDH2016 REBUILD LOG ON (NAME='RBS_QD_TDH2016_log' , FILENAME='D:\software\sqlserver\log\RBS_QD_TDH2016_log.ldf'); 
# 下面这步要执行很久
DBCC CHECKDB(RBS_QD_TDH2016, REPAIR_ALLOW_DATA_LOSS);
ALTER DATABASE RBS_QD_TDH2016 SET MULTI_USER;
ALTER DATABASE RBS_QD_TDH2016 SET ONLINE;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值