博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C#实现数据库备份学习

Posted on 2007-07-20 17:05  jisen  阅读(3091)  评论(4编辑  收藏  举报

因为公司的的数据库比较多(但数据量很小),每个星期都要完全备份,以前就是一个库挨着一个库备份,sql server备份完了还有oracle,觉得很麻烦,这两天用业余时间做一个数据库备份工具,从网上查大部分都用的数据库自带的定时作业进行备份,由于考虑到这个小工具将来可能交给客户使用,需要融进我们自己的产品中,所以就想自己做一个小usercontrol,(我们主要是基于winform开发),分为oracle和sqlserver两种,
oracle9i :先创建一个临时的bat文件,然后把执行脚本写入该文件,然后在执行bat文件,使用脚本为
                 exp userid/pwd@servicename file = "backupfilepath" owner = user
                 注意userid为系统管理员,backupfilepath为文件保存路径(文件后缀为dmp) ,user是针对那个用 户进行 备份,如果不写该参数,则默认针对userid用户进行备份,对多个数据库,多谢几条exp语句,就可以了。
                   最后在bat文件末尾加上exit,就是当执行完备份工作的时候自动退出dos窗口。
                    执行该文件:
                   ProcessStartInfo psi = new ProcessStartInfo(batFilePath);
                    Process.Start(psi);
sql server 2000 :备份脚本:backup database to disk = "filepath";sql server2000备份文件后缀为dat
                           把直接该备份脚本当作一个普通sql语句拿到master数据库中执
                           行即可。(在做这个测试的时候发现不能对sqlserver2000自带
                             的数据库进行备份和恢复,这是个意外收获)但是sql  server2000不能实现远程备份,遗 憾,这个usercontrol还必须要放到 数据库服务器上执行。
目前仅仅完成一个备份功能,还没有实现完全自动化,下一步考虑把添加定时器,做成一个windows托盘程序,好好偷把懒。