sql server客户端损坏如何备份数据
发布网友
发布时间:2022-05-05 12:21
我来回答
共3个回答
热心网友
时间:2022-06-27 12:23
手头上只有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("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 ", 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 ", 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;
热心网友
时间:2022-06-27 12:23
你应该是把系统数据库覆盖了,再重新装吧,装完只要附加非系统数据库就行了。
热心网友
时间:2022-06-27 12:24
在sqlserver启动年的情况把原本的data文件附加一下数据库就行了,直接覆盖过去是不行的
Sql Server如何备份?
日志备份:是自上次备份事务日志后对数据库执行的所有事务的一系列记录。可以使用事务日志备份将数据库恢复到特定的即时点(如输入多余数据前的那一点)或恢复到故障点;文件组备份:可以备份和还原数据库中的个别文件。可以只还原已损坏的文件,而不用还原数据库的其余部分,从而加快了恢复速度。需要注意的...
数据恢复服务要注意什么?
要找正规专业的公司,行业口碑也比较重要。如果想了解更多详细信息,可以咨询下壹寰(深圳)科技文化有限公司。91数据恢复是壹寰(深圳)科技文化有限公司旗下专业数据恢复品牌,91数据恢复专注于勒索病毒数据恢复、勒索病毒数据修复、数据库修复、...
如何备份SqlServer数据库
1、手动操作:利用SqlServer自带的备份功能,登录资源管理器,右键点击要备份的数据库,在弹出来的菜单中选择“备份”,然后按步骤操作即可 2、自动备份:这种方式一般是利用第三方工具或者写脚本,比如说用工具多备份,自动增量备份,操作非常简单
Sqlserver数据库备份的几种方式
(1)数据库整库备份此方式备份数据库是最完整的,可以将数据库中所有的对象都备份下来生成个.Bak文件,后续如果出现问题,可以直接通过.bak文件还原数据库,但备份的耗时会比较长,并且占用磁盘空间会比较大。此方法备份的操作是直接在Sqlserver数据库管理软件中选中数据库,右键选择任务,然后选择备份,如...
sqlserver怎么备份数据库
第一步打开sql server数据库,选择要备份的数据库,鼠标右键选择任务->备份,如下图所示:请点击输入图片描述 第二步进去备份数据库界面之后,备份完整的数据库,然后看到备份数据库的默认路径,如下图所示:请点击输入图片描述 第三步点击添加,可以修改备份的数据库路径,如下图所示:请点击输入图片描述...
sqlserver数据库备份方式有哪些
3. 文件组备份当出现数据比较大的时候,一般情况下,备份的话,会很消耗时间,我们可以把数据放在文件组中,并且将一个文件设置成默认,可以只备份个别文件,不需要对整个数据库都进行备份,从而加快了用户的备份速度。4.日志备份日志备份是对备份日志对所有事务的记录,我们可以使用事务日志将数据恢复到某...
SQL sever 数据备份的操作方法
一、备份数据库 1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server 2、SQL Server组-->双击打开你的服务器-->双击打开数据库目录 3、选择你的数据库名称(如论坛数据库Forum)-->然后点上面菜单中的工具-->选择备份数据库 4、备份选项选择完全备份,目的中的备份到如果原来有路径...
如何备份sqlserver数据库
1 点击开始菜单,打开sql企业管理器。2 依次展开sqlserver根目录,并打开数据库。3 选择要备份的数据库名,鼠标右键所有任务→备份数据库。4 这里需要注意,如果之前有备份的话,一定要先删除之前的备份记录,不用担心只是删除记录而不是删除你的备份文件。5 删除记录再点添加;6 选择备份目的,就是要让...
如何备份sqlserver数据库
一、即时的备份 1、在企业管理器中,选择要备份的数据库,点击鼠标右键,依次在弹出菜单选择 “所以任务”>"备份数据库"2、可以点击添加,选择备份的路径 该方式与SQL备份语句效果相同:BACKUP DATABASE 数据库名称 TO disk = '备份文件路径'二、使用数据库维护计划,实现自动备份 1、将SQLserveragent...
怎么备份sqlserver数据库
1、在开始—>程序(P)—>MicrosoftSQLserver2005—>SQLServerManagementStudio(如下图)2、登录数据库服务器,在打开企业管理器后,逐一展开,找到并展开“数据库”这一项,然后会看到需要备份的数据库“gxbtoc”(如下图)3、选择要备份的数据库单击右键(如下图)4、点击上图的“备份”,进入下图(...
sqlserver2008怎么将所有数据库完整备份(sqlserver2008如何备份和还原...
在开始菜单中点击“SQLServerManagementStudio”在弹出的界面点击连接,在数据库选项中选择需要备份的数据库文件,然后右击选择“任务”中的“备份”在备份数据库TOBHIS,数据库选择“tobhis”,备份类型选择“完整”然后点击“添加”按钮 在出现的界面中点击文件夹后面的“...”选择按钮。在“定位数据库文件...