数据库备份问题huabian - 超凡娱乐

数据库备份问题huabian

2019-02-09 11:12:27 | 作者: 依丝 | 标签: 数据库,备份,数据 | 浏览: 8682

backup database db_CSManage to disk=c:\backup.bak 复原数据库,必须先备份该数据库的日志文件到原先的备份文件中 backup log db_CSManage to disk=c:\backup.bak restore database db_CSManage from disk=c:\backup.bak

    其间db_CSManage是数据库称号,disk后的途径便是备份文件存储的途径。 知道了SQL句子,那么在.NET代码中就简单多了,备份的.NET代码如下:

 

当康复模型为 SIMPLE 时,不允许运用 BACKUP LOG 句子

解决方法:

 

入MSSQL的企业管理器,挑选相应的数据库实体,点击右键挑选"特点",挑选"选项"标签页,把毛病复原模型修改成"大容量日志记载的",然后从头备份
try
 if (txtPath.Text != "" txtName122.Text != "")
 getSqlConnection geCon = new getSqlConnection();
 SqlConnection con = geCon.GetCon();
 string strBacl = "backup database db_CSManage to disk=" + txtPath.Text.Trim() + "\\" + txtName.Text.Trim() + ".bak";
 SqlCommand Cmd = new SqlCommand(strBacl, con);
 if (Cmd.ExecuteNonQuery() != 0)
 MessageBox.Show("数据备份成功!", "提示框", MessageBoxButtons.OK, MessageBoxIcon.Information);
 this.Close();
 else
 MessageBox.Show("数据备份失利!", "提示框", MessageBoxButtons.OK, MessageBoxIcon.Information);
 else
 MessageBox.Show("请填写备份的正确方位及文件名!", "提示框", MessageBoxButtons.OK, MessageBoxIcon.Information);
 }// end 
catch (Exception ee)
 MessageBox.Show(ee.Message.ToString());


以下是复原数据库的代码,在示例中发现最初得先删去与该数据库相关的进程,然后在复原之前得先把数据库日志备份到开端的备份文件中,然后才复原备 份文件,要不然会犯错的,代码如下:

if (textPaht.Text != "")
 getSqlConnection geCon = new getSqlConnection();
 SqlConnection con = geCon.GetCon();
 if (con.State  ConnectionState.Open)
 con.Close();
 string DateStr = "Data Source=niunan\\sqlexpress;Database=master;User id=sa;PWD=123456";
 SqlConnection conn = new SqlConnection(DateStr);
 conn.Open();
 //-杀掉一切衔接 db_CSManage 数据库的进程
 string strSQL = "select spid from master..sysprocesses where dbid=db_id( db_CSManage) ";
 SqlDataAdapter Da = new SqlDataAdapter(strSQL, conn);
 DataTable spidTable = new DataTable();
 Da.Fill(spidTable);
 SqlCommand Cmd = new SqlCommand();
 Cmd.CommandType = CommandType.Text;
 Cmd.Connection = conn;
 for (int iRow = 0; iRow = spidTable.Rows.Count - 1; iRow++)
 Cmd.CommandText = "kill " + spidTable.Rows[iRow][0].ToString(); //强行封闭用户进程 
 Cmd.ExecuteNonQuery();
 conn.Close();
 conn.Dispose();
 //
 SqlConnection sqlcon = new SqlConnection(DateStr);
 sqlcon.Open();
 string sql = "backup log db_CSManage to disk=" + textPaht.Text.Trim() + " restore database db_CSManage from disk=" + textPaht.Text.Trim() + "";
 SqlCommand sqlCmd = new SqlCommand(sql, sqlcon);
 sqlCmd.ExecuteNonQuery();
 sqlCmd.Dispose();
 sqlcon.Close();
 sqlcon.Dispose();
 MessageBox.Show("数据复原成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
 MessageBox.Show("为了必免数据丢掉,在数据库复原后将封闭整个体系。");
 Application.Exit();
 MessageBox.Show("请挑选备份文件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

由于数据库正在运用,所以未能取得对数据库的排它拜访权的解决方法(转自百度空间)。

在备份按钮里写:

 protected void Button1_Click(object sender, EventArgs e)
 string path = "e:\\MAZ数据库备份\\" + Menu+ ".bak";
 if (File.Exists(path))
 File.Delete(path);//留意,这个过程很重要,假如重复,在备份的数据,就会变成,
//你刚开端的数据,所以每次都要先删去.
 if (!File.Exists(path))
 FileStream fs = File.Create(path);
 fs.Close();
 string backupstr="backup database Test to disk="+path+";";
 SqlConnection con = new SqlConnection("server=localhost;database=Menu;uid=sa;pwd=sa;");
 SqlCommand cmd = new SqlCommand(backupstr, con);
 con.Open();
 cmd.ExecuteNonQuery();
 MessageBox.Show("备份成功!");
 connection.Close();
 catch (Exception ex)
 string stringError = ex.ToString();
 MessageBox.Show("备份失利!");
 connection.Close();
 }

在复原按钮里写:

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表超凡娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1
  • 2

    oracle权限传递tengxun

    权限,用户,时分
  • 3
  • 4
  • 5

    主题:ORACLE函数大全sohu

    字符串,字符,函数
  • 6

    数据库备份问题huabian

    数据库,备份,数据
  • 7

    MySQL刺进数据报错处理sina

    文件,目录,数据库
  • 8

    mysql计算句子ITeye头条

    数据,汇总,季度
  • 9

    zz 彻底卸载mysqlITeyeitjob

    目录,数据库,问题
  • 10