1 ضمیمه
مشکل بازیابی از پشتیبان گرفته شده
با تمام دستورات بازیابی در این سایت امتحان کردم
و همچنین کد زیر که دقیقن بر روی یک پروژه دیگر در همین سیستمم جواب می دهد ولی بر روی پروژه من جواب نمی دهد
پیغام خطا را هم فرستادم
SqlConnection con = new SqlConnection("Server=(local);uid=sa;pwd=;database =master");
SqlCommand cmd = new SqlCommand("restore database Gold_Database from disk='" + textBox1.Text + "'", con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
نقل قول: مشکل بازیابی از پشتیبان گرفته شده
کسی چیزی به خاطرش خطور نمی کنه؟!
نقل قول: مشکل بازیابی از پشتیبان گرفته شده
پشتیبان گیری
string strBack = "Backupname.bak";
SqlCommand scom = new SqlCommand("BACKUP DATABASE [" + dbname + "] TO DISK ='" + textAddress.text + "\\" + strBack + "'", sc);
sc.Open();
scom.ExecuteNonQuery();
sc.Close();
بازیابی
SqlCommand scom = new SqlCommand("use master ALTER DATABASE [" + dbname + "] SET SINGLE_USER WITH ROLLBACK IMMEDIATE RESTORE DATABASE [" + dbname + "] FROM DISK = '" + textAddress.text + "' ALTER DATABASE [" + dbname + "] SET MULTI_USER", sc);
sc.Open();
scom.ExecuteNonQuery();
sc.Close();
نقل قول: مشکل بازیابی از پشتیبان گرفته شده
بازم همون خطا رو روی خط اجرای کوئری می ده
The tail of the log for the database "Gold_Database" has not been backed up. Use
BACKUP LOG WITH NORECOVERY to backup the log if it contains work you do not want
to lose. Use the WITH REPLACE or WITH STOPAT clause of the RESTORE statement to
just overwrite the contents of the log.
RESTORE DATABASE is terminating abnormally.
Changed database context to 'master'.
نقل قول: مشکل بازیابی از پشتیبان گرفته شده
برای من هم همین ارور را میده لطفا بگید مشکل از چیه
نقل قول: مشکل بازیابی از پشتیبان گرفته شده
به اخر رشته Restore خودتون WITH REPLACE را اضافه کنید مشکل 100درصد حل می شود
نقل قول: مشکل بازیابی از پشتیبان گرفته شده
بازم این خطا رو میده
Incorrect syntax near 'REPLACE'.
SqlConnection con = new SqlConnection("Server=(local);uid=sa;pwd=;database =Gold_Database");
SqlCommand cmd = new SqlCommand("use master ALTER DATABASE [Gold_Database] SET SINGLE_USER WITH ROLLBACK IMMEDIATE RESTORE DATABASE [Gold_Database] FROM DISK = N'D:\\Gold_Database.bak' ALTER DATABASE [Gold_Database] SET MULTI_USER WITH REPLACE", con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
نقل قول: مشکل بازیابی از پشتیبان گرفته شده
private void Restore(string strfilename)
{
try
{
string command = "ALTER DATABASE alarm SET SINGLE_USER with ROLLBACK IMMEDIATE " +
"use master " +
" RESTORE DATABASE alarm FROM DISK='" + strfilename + "'WITH REPLACE";
this.Cursor = Cursors.WaitCursor;
SqlConnection con = new SqlConnection();
con.ConnectionString = connection;
if (con.State != ConnectionState.Open)
con.Open();
SqlCommand cmd = new SqlCommand(command, con);
cmd.ExecuteNonQuery();
this.Cursor = Cursors.Default;
MessageBox.Show("بازیابی اطلاعات با موفقیت انجام شد");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message );
}
}
private void buttonRestore_Click(object sender, EventArgs e)
{
string strfilename = string.Empty;
openFileDialog1.Filter = @"SQL Backup files files(*.BAK)|*.BAK|All files(*.*)|*.*";
openFileDialog1.Title = "Restore SQL File";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
strfilename = openFileDialog1.FileName;
Restore(strfilename);
}
نقل قول: مشکل بازیابی از پشتیبان گرفته شده
ممنون با این کد آخری حل شد ولی من که ندونستم برای چی هر چی کوئری می نوشتم جواب نمی داد ولی با این جواب داد؟!
نقل قول: مشکل بازیابی از پشتیبان گرفته شده
با سلام و خسته نباشید به همه ی دوستان گرامی
من با این کد بازیابی پشتیبان رو نوشتم که از کد هایی خودتان گذاشتید ، هست:
try
{
string command = "ALTER DATABASE Ara SET MULTI_USER with ROLLBACK IMMEDIATE RESTORE DATABASE Ara FROM DISK='" + txtadress.Text + "'WITH REPLACE";
this.Cursor = Cursors.WaitCursor;
SqlConnection con = newSqlConnection();
con.ConnectionString = "Data Source= .;Initial Catalog=master;Integrated Security=True";
if (con.State != ConnectionState.Open)
con.Open();
SqlCommand cmd = newSqlCommand(command, con);
cmd.ExecuteNonQuery();
this.Cursor = Cursors.Default;
MessageBox.Show("بازيابي اطلاعات با موفقيت انجام شد");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
ولی این ارور رو میده :
Exclusive access could not be obtained because the database is in use.
RESTORE DATABASE is terminating abnormally.
لطفا" هر چه سریعتر کمکم کنید ممنون می شم .
نقل قول: مشکل بازیابی از پشتیبان گرفته شده
با سلام
دوست عزیز این خطا واسه اینه که کانکشن باز داری
این خط رو به اول برنامه ات اضافه کن درست میشه :
SqlConnection.ClearAllPools();
نقل قول: مشکل بازیابی از پشتیبان گرفته شده
نقل قول:
نوشته شده توسط
roolinjax
با سلام
دوست عزیز این خطا واسه اینه که کانکشن باز داری
این خط رو به اول برنامه ات اضافه کن درست میشه :
SqlConnection.ClearAllPools();
مشکلم حل شد ، خیلی خیلی ممنون .
نقل قول: مشکل بازیابی از پشتیبان گرفته شده
ایشالا همه مشکلات جوونا به همین راحتی و با یه خط کد حل بشه !!!!!
موفق باشید