【SQL Server】数据库异地备份
2017-09-17 20:46
417 查看
需求
服务器上的数据库需要手动备份到本地电脑。
思路
①在服务器上执行数据库备份的sql语句,将其备份到设置好共享文件夹。
②再通过命令将共享文件夹中的数据库备份文件取到本地电脑。
实现
效果图
服务器上的数据库需要手动备份到本地电脑。
思路
①在服务器上执行数据库备份的sql语句,将其备份到设置好共享文件夹。
backup database OOP to disk='D:/共享/OOP.bak' //OOP为数据库名称,单引号中路径为自定义的保存路径
②再通过命令将共享文件夹中的数据库备份文件取到本地电脑。
实现
private void btnBackup_Click(object sender, EventArgs e) { btnBackup.Enabled = false; Thread thread = new Thread(NewMethod); thread.IsBackground = true; thread.Start(); progressBar1.Visible = true; for (int i = 0; i < 100; i++) { Thread.Sleep(20); progressBar1.Value = i; } } private void NewMethod() { //备份数据库到服务器共享文件夹 using (SqlConnection conn = new SqlConnection("server=192.168.2.160;database=OOP;uid=sa;pwd=123456")) { SqlCommand cmd = new SqlCommand(); cmd.CommandText = "backup database OOP to disk='D:/共享/OOP.bak'"; cmd.Connection = conn; conn.Open(); cmd.ExecuteNonQuery(); } if (connectState()) { string newpath = System.IO.Path.GetFullPath(@"////192.168.2.160//共享//OOP.bak"); string origpath = System.IO.Path.GetFullPath(@"D:\\OOP.bak"); //origpath:源文件 newpath:目标文件 true:如有文件存在覆盖掉 fales:不覆盖 //TODO 先删除后保存 File.Copy(newpath, origpath, true); } MessageBox.Show("备份成功!", "温馨提示"); progressBar1.Visible = false; } //建立远程连接 public static bool connectState() { bool Flag = false; Process proc = new Process(); try { proc.StartInfo.FileName = "cmd.exe"; proc.StartInfo.UseShellExecute = false; proc.StartInfo.RedirectStandardInput = true; proc.StartInfo.RedirectStandardOutput = true; proc.StartInfo.RedirectStandardError = true; proc.StartInfo.CreateNoWindow = true; proc.Start(); //远程连接地址和用户名,密码 string dosLine = @"net use \\192.168.2.160\共享 zdfwq123456 /user:192.168.2.160\admin"; //net use \\ip\共享文件夹名称 计算机密码 /user:ip\计算机帐户名 proc.StandardInput.WriteLine(dosLine); proc.StandardInput.WriteLine("exit"); while (!proc.HasExited) { proc.WaitForExit(1000); } string errormsg = proc.StandardError.ReadToEnd(); proc.StandardError.Close(); if (string.IsNullOrEmpty(errormsg)) { Flag = true; } else { throw new Exception(errormsg); } } catch (Exception ex) { throw ex; } finally { proc.Close(); proc.Dispose(); } return Flag; }
效果图
相关文章推荐
- 异地(公网)数据库容灾,SQL SERVER互联网自动备份,SQL SERVER数据库镜像
- SQL Server 数据库实现异地备份
- SQL server 备份数据库到局域网共享文件夹(异地备份)
- sql server异地备份数据库
- 使用SQL Server 2008数据库复制实现异地数据备份
- SQL Server 2005数据库的自动定时备份及异地备份
- SQL Server 数据库使用备份还原造成的孤立用户和对象名‘xxx’无效的错误的解决办法
- sql server 数据库备份方案
- SQL server 2008数据库的备份与还原
- Azure Backup (1) 将SQL Server 2012虚拟机中数据库备份到Azure Storage
- SQL Server 2005“备份集中的数据库备份与现有的数据库不同”解决方法
- SQL Server如何备份远程数据库到本地
- 在SQL Server 2005数据库中实现自动备份
- SQL Server 数据库定时自动备份
- SQL server 数据库自动备份
- SQL SERVER 数据库备份还原
- 用任务计划实现数据库的异地备份
- 在SQL Server 2005和2008获取数据库备份或者恢复完成百分比
- SQL Server 2005 自动备份数据库 维护计划实现数据库定时自动备份
- SQL Server 数据库定时自动备份