WinForm实现文件夹及SQLServer数据库备份

最近接到任务,要做一个SQLServer数据库和文件夹的备份。

一、实现本地备份

  SQLServer的本地备份只有两种:

    1、运用SQL语句:backup database  DB to disk='Path ' with init

    2、运用SQLServer的组件:SQLDMO.dll

  文件夹备份方法我采用的是:递归复制

  protected static void FileCopy(string prePath, string newPath)//递归执行复制文件夹
        {
            if (!Directory.Exists(newPath))
            {
                Directory.CreateDirectory(newPath);
            }
            DirectoryInfo directoryInfo = new DirectoryInfo(prePath);
            if (directoryInfo.GetDirectories().Length < 0)
            {
                FileInfo[] fileInfos = directoryInfo.GetFiles();
                foreach (FileInfo fileInfo in fileInfos)
                {
                    File.Copy(prePath + "\\" + fileInfo.Name, newPath + "\\" + fileInfo.Name, true);
                }
                return;
            }
            else
            {
                FileInfo[] fileInfos = directoryInfo.GetFiles();
                foreach (FileInfo fileInfo in fileInfos)
                {
                    File.Copy(prePath + "\\" + fileInfo.Name, newPath + "\\" + fileInfo.Name, true);
                }
                DirectoryInfo[] directoryInfos = directoryInfo.GetDirectories();
                foreach (DirectoryInfo dirInfo in directoryInfos)
                {
                    FileCopy(prePath + "\\" + dirInfo.Name, newPath + "\\" + dirInfo.Name);
                }

            }
        }

    

二、远程备份(目前还在进行中。。。)

  SQLServer数据库远程备份:在CSDN上找到的几种方法

    1、你的机器administrator密码与服务器相同!你可以直接或你是98且完全共享了某个目录,你就可以:
        exec   xp_cmdshell   'copy   c:\你的旧文件   \\你的机器名或ip\你的共享目录\新的文件 '
        go
    2、如果对方有web服务器把它考到iis的某个目录下,在ie里下载

    3、exec   xp_cmdshell   'net   user   mm   123   /add '     --添加一用户
      exec   xp_cmdshell   'net   localgroup   administrators   mm   /add '     --为用户添加管理员权限
      再用\\对方机器\c$入侵
      最后用   exec   xp_cmdshell   'net   user   admin   /delete '把用户给删除掉
      改密码:
      xp_cmdshell   'net   user   administrator   "123 " ' 

    4、--创建共享目录
      exec   master.dbo.XP_cmdshell   'md   c:\bak '
      exec   master.dbo.XP_cmdshell   'net   share   bak=c:\bak ' 

      exec   xp_cmdshell   'copy   c:\你的旧库的备份文件   c:\bak\你的旧库的备份文件 '
      通过网上邻居拷贝后

      --删除共享及共享目录
      exec   master.dbo.XP_cmdshell   'net   share   c:\txt   /delete   /y '
      exec   master.dbo.XP_cmdshell   'rd   c:\txt '

posted @ 2012-03-10 12:24  @#¥%……  阅读(1387)  评论(0)    收藏  举报