WEB开发网
开发学院数据库MSSQL Server 靠BCP恢复SQL Server 2000数据库 阅读

靠BCP恢复SQL Server 2000数据库

 2007-05-15 09:32:43 来源:WEB开发网   
核心提示: ' ind:recoveryBCP' +name + '.txt -c -Stech-Usa -P123456 >d: recoveryBCPerrorin _'+name+'.txt' from sysobjects where ty

' in d:recoveryBCP' +name + '.txt -c -Stech -Usa -P123456 >d: recoveryBCPerrorin _'+name+'.txt' from sysobjects where type = 'U' order by name

将上述SQL脚本的查询结果全选后另存为批处理文件zytk015.bat。用于将上述各表的txt文件导回到数据库ZYTK015。执行zytk.bat,执行完毕后要检查D:recoveryBCPerror下的每个out_表名.txt文件(见Error_outFiles.rar),查看是否有误。当然导入后要检查in表名.txt文件,查看是否有误。这是必须的,笔者因想偷懒,结果因导入数据不完整而重新恢复多花了半天,教训啊!我处理的数据库表一共有166个,为了提高恢复准确性,最好能找个人一起帮助看着过程是否有误。

新建ZYTK015要保证跟ZYTK一样的表结构(如主键、索引等,本文不再赘述,本文是从ZYTK中生成SQL脚本,然后新建数据库(下转第71页)(上接第70页)ZYTK015后执行创建表、主键、索引脚本。当然一般还有视图、存储过程等加密过的,是不能导出为SQL脚本,那得想其它的办法,本文是还原2004年的数据库来实现的)。

执行zytk015.bat,执行完毕后要检查D:recoveryBCPerror每个in_表名.txt文件(见Error_inFiles.rar)。笔者遇到一个历史流水表导入失败,后来经过分时间段导入,多次试验才得以成功。恢复的时候一定要细心,并且记录关键步骤的操作内容,否则做到哪一步,自己都晕菜了,更不用说成功地恢复数据库了!如果在zytk015数据库中能看到数据,那就是大功告成了。不过不要得意哦,还得运行游泳收费系统来测试数据的正确性。测试之前记得要备份数据库哦。

最后,有个问题要说明一下:如果表间有关联,使用BCP恢复起来就麻烦一点。一般的做法可以把外键之类的表间关系去掉,等导入数据后在用SQL脚本重新创建这些关系。这个做法数据的有效性得由我们自己去判断了,如果有问题还得手工修改(一般需要开发人员协助,因为只有他们才能去查代码)。

上一页  1 2 3 4 5 

Tags:BCP 恢复 SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接