扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
SQL数据库被损坏分以下几种情况:
成都创新互联公司是一家专注于网站制作、网站设计与策划设计,温泉网站建设哪家好?成都创新互联公司做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:温泉等地区。温泉做网站价格咨询:18980820575
1、严重损坏;2、轻度损坏;3、有些表被损坏或有些表的部分记录被损坏
一,先试试手动启动。控制面板—管理工具—服务—找到SQLServer
2000——手动启动
二,清除sa密码。开始—程序—SQLServer—企业管理器—安全性—登陆—sa—清除sa密码为空—确定退出
启动起来,做正常备份。不行的话。
找到你用友软件安装的文件夹,在找admin文件夹,把他备份一下。这个是硬备份。用友做技术的都会恢复硬备份。这个比较麻烦我就不和你详细说了!
1、确保备份下的master数据库与要恢复的SQL SERVER的版本一致性。
2、关闭打开SQL Server Management Studio,打开服务器管理器,点击“配置”-“服务”,找到SQL SERVER服务,右键点击出快捷菜单。点击“停止”停止MSSQLSERVER服务。
3、以管理员账户打开cmd,输入以下的命令:net start mssqlserver /m。
4、打开SQL Server Management Studio,出现连接到服务器的窗口,点击取消。
5、点击“新建查询”,出现连接到服务器的窗口,点击确定。因为是单用户模式,因此只能有一个链接进入。
6、在查询窗口输入以下的命令。
7、重新启动SQL SERVER(MSSQLSERVER)服务,右键点击出快捷菜单。点击“启动”启动服务就可以了。
我就实话实说了,也不说些假安慰的话了,如果数据损坏,那就看你有没有备份过了,有备份的就幸运了,如果没有的话,而你自己又不懂数据库恢复,那只有请人帮忙恢复了,而且不一定能修复,数据库修复是一个很复杂的问题,而且问题可大可小啊,需要懂的很多,而且没有保证一定就能修复,看情况而定
备份好重要数据,主要是数据库里的数据,找到数据库的文件夹,把文件夹复制一份记住路径就可以了。然后重新安装mysql,把备份的数据库按照原路径拷贝回去,再重新安装用友u8 就可以正常使用了
手头上只有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;
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流