如何远程备份sql server数据库

server|备份|数据|数据库

方法一(不使用SQLDMO):

///
///备份方法
///
SqlConnection conn = new SqlConnection("Server=.;Database=master;User ID=sa;Password=sa;");

SqlCommand cmdBK = new SqlCommand();
cmdBK.CommandType = CommandType.Text;
cmdBK.Connection = conn;
cmdBK.CommandText = @"backup database test to disk='C:\ba' with init";

try
{
conn.Open();
cmdBK.ExecuteNonQuery();
MessageBox.Show("Backup successed.");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
conn.Dispose();
}

///
///还原方法
///
SqlConnection conn = new SqlConnection("Server=.;Database=master;User ID=sa;Password=sa;Trusted_Connection=False");
conn.Open();

//KILL DataBase Process
SqlCommand cmd = new SqlCommand("SELECT spid FROM sysprocesses ,sysdatabases WHERE sysprocesses.dbid=sysdatabases.dbid AND sysdatabases.Name='test'", conn);
SqlDataReader dr;
dr = cmd.ExecuteReader();
ArrayList list = new ArrayList();
while(dr.Read())
{
list.Add(dr.GetInt16(0));
}
dr.Close();
for(int i = 0; i < list.Count; i++)
{
cmd = new SqlCommand(string.Format("KILL {0}", list[i]), conn);
cmd.ExecuteNonQuery();
}

SqlCommand cmdRT = new SqlCommand();
cmdRT.CommandType = CommandType.Text;
cmdRT.Connection = conn;
cmdRT.CommandText = @"restore database test from disk='C:\ba'";

try
{
cmdRT.ExecuteNonQuery();
MessageBox.Show("Restore successed.");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}

方法二(使用SQLDMO):

///
///备份方法
///
SQLDMO.Backup backup = new SQLDMO.BackupClass();
SQLDMO.SQLServer server = new SQLDMO.SQLServerClass();
//显示进度条
SQLDMO.BackupSink_PercentCompleteEventHandler progress = new SQLDMO.BackupSink_PercentCompleteEventHandler(Step);
backup.PercentComplete += progress;

try
{
server.LoginSecure = false;
server.Connect(".", "sa", "sa");
backup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
backup.Database = "test";
backup.Files = @"D:\test\myProg\backupTest";
backup.BackupSetName = "test";
backup.BackupSetDescription = "Backup the database of test";
backup.Initialize = true;
backup.SQLBackup(server);
MessageBox.Show("Backup successed.");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
server.DisConnect();
}
this.pbDB.Value = 0;

///
///还原方法
///
SQLDMO.Restore restore = new SQLDMO.RestoreClass();
SQLDMO.SQLServer server = new SQLDMO.SQLServerClass();
//显示进度条
SQLDMO.RestoreSink_PercentCompleteEventHandler progress = new SQLDMO.RestoreSink_PercentCompleteEventHandler(Step);
restore.PercentComplete += progress;

//KILL DataBase Process
SqlConnection conn = new SqlConnection("Server=.;Database=master;User ID=sa;Password=sa;Trusted_Connection=False");
conn.Open();
SqlCommand cmd = new SqlCommand("SELECT spid FROM sysprocesses ,sysdatabases WHERE sysprocesses.dbid=sysdatabases.dbid AND sysdatabases.Name='test'", conn);
SqlDataReader dr;
dr = cmd.ExecuteReader();
ArrayList list = new ArrayList();
while(dr.Read())
{
list.Add(dr.GetInt16(0));
}
dr.Close();
for(int i = 0; i < list.Count; i++)
{
cmd = new SqlCommand(string.Format("KILL {0}", list[i]), conn);
cmd.ExecuteNonQuery();
}
conn.Close();

try
{
server.LoginSecure = false;
server.Connect(".", "sa", "sa");
restore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
restore.Database = "test";
restore.Files = @"D:\test\myProg\backupTest";
restore.FileNumber = 1;
restore.ReplaceDatabase = true;
restore.SQLRestore(server);
MessageBox.Show("Restore successed.");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
server.DisConnect();
}
this.pbDB.Value = 0;

 

时间: 2024-09-20 00:28:43

如何远程备份sql server数据库的相关文章

改进的ASP备份SQL Server数据库

server|备份|数据|数据库 <form method="post" name="myform" action="?action=backupdatabase"> 选择操作:<INPUT TYPE="radio" NAME="act" id="act_backup"value="backup"><label for=act_backu

asp备份sql server数据库实例程序

<HTML> <HEAD> <TITLE>数据库操作_网页设计家园</TITLE> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </HEAD> <BODY> <form method="post" name=myform> <%if action=&qu

ASP备份SQL Server数据库改进版_应用技巧

复制代码 代码如下: <form method="post" name="myform" action="?action=backupdatabase"> 选择操作:<INPUT TYPE="radio" NAME="act" id="act_backup"value="backup"><label for=act_backup>备

ASP备份SQL Server数据库改进版

复制代码 代码如下: <form method="post" name="myform" action="?action=backupdatabase"> 选择操作:<INPUT TYPE="radio" NAME="act" id="act_backup"value="backup"><label for=act_backup>备

用python脚本远程清除sql server数据库服务器日志

python远程清除sqlserver数据库服务器日志,供参考: # coding=gbk from encodings import gbk import re import sys import  os import  pyodbc import traceback import decimal #连接数据库 conn = pyodbc.connect('DRIVER={SQL Server};SERVER=192.168.1.43;DATABASE=master;UID=sa;PWD=pa

如何远程连接SQL Server数据库图文教程_MsSql

一.设置客户端网络实用工具点击"开始"-"程序",在"Microsoft SQL Server"菜单中选择"客户端网络实用工具". 在"别名"选项中点击"添加".在"服务器别名"中,填入您网站域名,在"网络库"区域中点击"TCP/IP",在"连接参数"区域取消"动态决定端口",指定&quo

如何远程连接SQL Server数据库图文教程

一.设置客户端网络实用工具 点击"开始"-"程序",在"Microsoft SQL Server"菜单中选择"客户端网络实用工具". 在"别名"选项中点击"添加". 在"服务器别名"中,填入您网站域名,在"网络库"区域中点击"TCP/IP",在"连接参数"区域取消"动态决定端口",指定&q

.NET中备份SQL Server数据库的方法

前言:我们在开发网站时,在管理后台,管理员通常要定期对数据库进行备份(当然也可以让sqlserver服务器定期自动备份,但我此处讲的是asp.net中的备份),备份的代码很简单: 下面是我做一个网站后台时在"备份"按扭下写的一个事件: protected void Button1_Click(object sender, EventArgs e) ...{ string newname = "WebJake" + DateTime.Now.Year.ToString

ASP.NET中备份SQL Server数据库的方法

前言:我们在开发网站时,在管理后台,管理员通常要定期对数据库进行备份(当然也可以让sqlserver服务器定期自动备份,但我此处讲的是asp.net中的备份),备份的代码很简单: 下面是我做一个网站后台时在"备份"按扭下写的一个事件: protected void Button1_Click(object sender, EventArgs e) ...{ string newname = "WebJake" + DateTime.Now.Year.ToString