问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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数据库,选择要备份的数据库,鼠标右键选择任务-&gt;备份,如下图所示:请点击输入图片描述 第二步进去备份数据库界面之后,备份完整的数据库,然后看到备份数据库的默认路径,如下图所示:请点击输入图片描述 第三步点击添加,可以修改备份的数据库路径,如下图所示:请点击输入图片描述...

sqlserver数据库备份方式有哪些

3. 文件组备份当出现数据比较大的时候,一般情况下,备份的话,会很消耗时间,我们可以把数据放在文件组中,并且将一个文件设置成默认,可以只备份个别文件,不需要对整个数据库都进行备份,从而加快了用户的备份速度。4.日志备份日志备份是对备份日志对所有事务的记录,我们可以使用事务日志将数据恢复到某...

SQL sever 数据备份的操作方法

一、备份数据库 1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server 2、SQL Server组--&gt;双击打开你的服务器--&gt;双击打开数据库目录 3、选择你的数据库名称(如论坛数据库Forum)--&gt;然后点上面菜单中的工具--&gt;选择备份数据库 4、备份选项选择完全备份,目的中的备份到如果原来有路径...

如何备份sqlserver数据库

1 点击开始菜单,打开sql企业管理器。2 依次展开sqlserver根目录,并打开数据库。3 选择要备份的数据库名,鼠标右键所有任务→备份数据库。4 这里需要注意,如果之前有备份的话,一定要先删除之前的备份记录,不用担心只是删除记录而不是删除你的备份文件。5 删除记录再点添加;6 选择备份目的,就是要让...

如何备份sqlserver数据库

一、即时的备份 1、在企业管理器中,选择要备份的数据库,点击鼠标右键,依次在弹出菜单选择 “所以任务”&gt;"备份数据库"2、可以点击添加,选择备份的路径 该方式与SQL备份语句效果相同:BACKUP DATABASE 数据库名称 TO disk = '备份文件路径'二、使用数据库维护计划,实现自动备份 1、将SQLserveragent...

怎么备份sqlserver数据库

1、在开始—&gt;程序(P)—&gt;MicrosoftSQLserver2005—&gt;SQLServerManagementStudio(如下图)2、登录数据库服务器,在打开企业管理器后,逐一展开,找到并展开“数据库”这一项,然后会看到需要备份的数据库“gxbtoc”(如下图)3、选择要备份的数据库单击右键(如下图)4、点击上图的“备份”,进入下图(...

sqlserver2008怎么将所有数据库完整备份(sqlserver2008如何备份和还原...

在开始菜单中点击“SQLServerManagementStudio”在弹出的界面点击连接,在数据库选项中选择需要备份的数据库文件,然后右击选择“任务”中的“备份”在备份数据库TOBHIS,数据库选择“tobhis”,备份类型选择“完整”然后点击“添加”按钮 在出现的界面中点击文件夹后面的“...”选择按钮。在“定位数据库文件...

sql server数据库备份 sqlserver客户端安装 sqlserver查看客户端状态 客户端连接sqlserver sqlserver手机客户端 sqlserver客户端连接工具 sqlserver数据库 连接sqlserver数据库 sql server和mysql
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
工程基础建设包括哪些内容 基建工程包括哪些 三个质数的最小公倍数是42,这三个质数是什么? 催人奋进的正能量短句摘录四十句 诺基亚5230私货和行货有什么区别 刚买的nokia 5230,不知道是水货还是行货CODE:059C606-YSX12 IMEI:35596... 如果我想买个5230二手的话,私货9成新,交易时要注意什么问题呢?希望有... 想在淘宝买一个港行的5230。买过的给指点下... 5230私货(即水货,最好是欧版的) 据说网上有奸商5233刷成5230的机子卖 怎么识别 花儿全国50强有谁 找找一个姓张的女孩名字,三个字的,1996年12月29号属鼠的,爸爸属马、妈妈属狗、妹妹属蛇。 本人姓张,求一女孩名字,2013阴历二月出生。请各位帮忙想想,谢谢! 微法交通法第97条扣分吗 龙女取名:2012年3月25日凌晨2点11分出生,姓张,最好名字以天字结尾,给出出主意吧。 2010花儿朵朵50强的一号是谁~~ 求各位帮忙给选择个好听的名字吧。。。 山西临猗农商银行的张馨天谁认识,请告诉我一下。最好有联系方式。 花儿朵朵全国50名单 花儿朵朵全国50强名单 谁知道免费TXT手机电子书网站能下载全书的 求一个手机看txt电子书的软件 要免费的 谢谢了 请哪位朋友能告诉我一些免费下载TXT电子书的手机网站 利路修全国散步巡演第五站长沙达成!为何他这么向往自由? 利路修飞奔下班,他有哪些迫不及待下班的表现? 利路修真的在很努力地防爆自己了,采访花絮:我一秒也不想干了!你怎么看? 如何让银行卡余额凭空多出八位数 利路修在《创造营》决赛上翻白眼,他是受了什么刺激? 利路修下班是什么梗? 甘望星回复利路修高仿号,后来他是否知道这是利路修高仿号呢? 拯救者R7000P 性能模式没反应 愚公移山跟三牛精神是什么意思 南京*纱窗,南京哪里有做纱窗,南京纱窗批发价格,*纱窗怎么清洗?我们家以前的老化了。准备换新的了 纱窗 隐形纱窗 南京哪里有做隐形纱窗?价格多少? 南京哪家做金刚网防盗纱窗 纱窗 隐形纱窗 南京哪里有做隐形纱窗?价格多少 纱窗 隐形纱窗 南京哪里有做隐形纱窗?价格多少 南京哪里有做隐形纱窗?价格多少?质量如何? 用法和存放清洗方法现在告诉你,你用对美妆蛋了吗 南京纱窗一般什么价格?塑钢纱窗和隐形纱窗有什么区别,哪个好? 南京隐形纱窗什么牌子好,价格怎样? excel2007中如何将插入的图表的坐标轴调换 也就是把横轴上的参数和纵轴上的参数对调! 我电话被对方拉黑了怎样才能打进去电话? 怎么设qq小号 想知道今年杭州的立秋是几号是几点几分呢? 怎么注册QQ小号? 历年入春入夏入秋入冬最早和最晚的城市都是哪些?分别是什么时候? 明天2021年10月11日杭州入秋,那么温州什么时候入秋呢?温州的夏天什么时候结束 天猫超市购物卡为什么是坑 天猫超市购物卡已经绑定了为什么付款的时候还需要花呗?