///<summary> ///备份数据库到本地磁盘 ///</summary> public bool BackUp(string BackUpFile) { try { //第一步:在服务器上创建临时文件夹 ExecuteSql(@"master..xp_cmdshell 'md C:\temp'"); ExecuteSql(@"master..xp_cmdshell 'del C:\temp\*.* /q'"); //第二步:备份数据库到服务器目录 ExecuteSql(@"backup database " + DataBaseName() + @" to disk='C:\temp\HSSY'"); //第三步:共享服务器的备份目录 ExecuteSql(@"master..xp_cmdshell 'net share SQLDATABACK=C:\temp'"); //第四步:复制服务器上的备份文件到本地 File.Copy(@"\\" + ServerIP() + @"\SQLDATABACK\HSSY", BackUpFile,true); return true; } catch (System.Data.SqlClient.SqlException E) { throw new Exception(E.Message); } finally { //第五步:取消服务器共享目录的共享 ExecuteSql(@"master..xp_cmdshell 'net share SQLDATABACK /delete'"); } } /// <summary> /// 从本地磁盘恢复数据库 /// </summary> public bool Restore(string RestoreFile) { try { //第零步:关闭用户进程,防止其它用户正在使用数据库,导致数据恢复失败 KillServerUser(); //第一步:在服务器上创建临时文件夹 ExecuteSql(@"master..xp_cmdshell 'md C:\temp'"); ExecuteSql(@"master..xp_cmdshell 'del C:\temp\*.* /q'"); //第二步:共享服务器的恢复目录 ExecuteSql(@"master..xp_cmdshell 'net share SQLRESTORE=C:\temp'"); //第三步:复制服务器上的备份文件到本地 File.Copy(RestoreFile, @"\\" + ServerIP() + @"\SQLRESTORE\HSSY",true); //第四步:取消服务器共享目录的共享 ExecuteSql(@"master..xp_cmdshell 'net share SQLDATABACK /delete'"); //第五步:恢复数据库到服务器目录 ExecuteSql(@"restore database " + DataBaseName()+ @" from disk='C:\temp\HSSY'"); return true; } catch (System.Data.SqlClient.SqlException E) { throw new Exception(E.Message); } finally { //第六步:取消服务器共享目录的共享 //DbHelperSQL.ExecuteSql(@"master..xp_cmdshell 'net share SQLDATABACK /delete'"); } } 相关文章: