本文目录:
- 1、如何远程备份SQL SERVER数据库
- 2、如何设置远程mysql数据库自动备份数据库
- 3、如何远程把sql server中的数据备份和导入到本地sql server中
- 4、如何远程备份或还原数据库
如何远程备份SQL SERVER数据库
手头上只有C#的代码,不知道对你有没有帮助
远程备份要注意权限的问题,普通的访问帐户没有备份和还原的权限,最好用sa的帐户,并且程序访问的帐户必须添加到远程机器的系统内
你说的远程备份到本地是不可能的,你只有开放远程某个文件夹加入你的特殊访问帐户权限
最好直接用远程桌面,这样最方便
方法一(不使用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("SELECTspidFROMsysprocesses ,sysdatabases WHEREsysprocesses.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 fromdisk='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("SELECTspid FROMsysprocesses ,sysdatabases WHEREsysprocesses.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;
如何设置远程mysql数据库自动备份数据库
使用mysqldump备份数据库
但远程备份一般都比较慢没办法保证数据库的一致性
例如:
备份所有库
mysqldump -h xx.xx.xx.xx -P 3306 -uusername -ppassword --max_allowed_packet=1G -R -E -d --opt --flush-logs --default-character-set=utf8 --all-databases backup.sql
备份单库
mysqldump -h xx.xx.xx.xx -P 3306 -uusername -ppassword --max_allowed_packet=1G -R -E -d --opt --flush-logs --default-character-set=utf8 dbname backup.sql
如何远程把sql server中的数据备份和导入到本地sql server中
一:备份远程数据库,将备份文件拷贝到本地,然后在本地还原数据库。
二:将远程数据库的数据文件跟日志文件拷贝到本地(拷贝之前需要先停止远程数据库服务,否则无法进行拷贝),然后在本地进行附加数据库操作。
三:(需要知道远程数据库的登录名跟密码)打开企业管理器,在“sql server”组上右键选择“新建sql server注册”,点下一步,在“可用的服务器”中输入远程服务器的IP,然后点击“添加”,继续下一步,一步一步按照指导完成。注册完成后就可以像操作本地数据库一样对远程数据库进行操作了backup database sys to disk='\\你的ip\共享目录\a.bak' with init有一点是很关键的,就是启动你远程sql server数据库服务的帐号需要有在本地驱动器共享文件夹写的权限。要不,也是无法进行备份的。
如何远程备份或还原数据库
本地数据库还原到远程数据库跟本地数据库还原到本地数据库的区别不大,只是在登录时要登录到远程数据库。
方法如下:
1、登录到远程数据库。
2、右键点击数据库,并选择还原数据库。
3、如图位置选择要还原到的数据库名称。
4、勾选源设备,然后在右侧...处选择备份文件的路径。
5、添加完数据后依次点击确定。
6、在选择用于还原的备份集出勾选所选的文件,然后点击确定,等待还原完成即可。
【远程备份数据库】的内容来源于互联网,如引用不当,请联系我们修改。
网友留言: