PDA

View Full Version : مشکل تو Restore کردن فایل بکاپ گرفته شده



sobijoon
شنبه 13 خرداد 1391, 17:14 عصر
کسی میتونه بگه من مشکلم تو این کد برای ریستور کردن چیه؟

private void button1_Click(object sender, EventArgs e)
{
try
{
if (File.Exists(@"F:\SQLBackup\BackupFile.bak"))
{
if (MessageBox.Show("آیا بازگردانی شود؟", "بازگردانی", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
//Connect SQL-----------
SqlConnection connect;
string con = @"Data Source=.\SQLEXPRESS;AttachDbFilename=F:\My Document\all software that product\9.11\Ostad SW\DB\ostad.mdf;Integrated Security=True;User Instance=True";
connect = new SqlConnection(con);
connect.Open();

SqlCommand command;
command = new SqlCommand("use master", connect);
command.ExecuteNonQuery();
command = new SqlCommand(@"restore database [F:\My Document\all software that product\9.11\Ostad SW\DB\ostad.mdf] from disk = 'F:\SQLBackup\BackupFile.bak' ", connect);
command.ExecuteNonQuery();

connect.Close();

MessageBox.Show("بازگردانی با موفقیت انجام شد", "بازگردانی", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
else
MessageBox.Show(@"Do not make any endorsement above (or is not in the correct path)", "Restoration", MessageBoxButtons.OK, MessageBoxIcon.Information);

}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
}

اینم پیغامیه که میده!
a.bmp - 55.2 Kb (http://uplod.ir/2sz8z9rgeyn5/a.bmp.htm)
اینم اینک مستقیم پیغام خطا
http://uplod.ir/2sz8z9rgeyn5/a.bmp.htm

barnamenevisforme
شنبه 13 خرداد 1391, 19:29 عصر
سلام
موقع بازیابی اطلاعات پایگاه داده نباید در حال استفاده باشه،باید از master استفاده کرد.
یه سر به این موضوع که دوستمون زحمت کشیدن بزنید،امیدوارم که به جوابتون برسید.البته کد ها به زبان vb.net هست ولی کلیت یکیه.
http://barnamenevis.org/showthread.php?333713

sobijoon
جمعه 19 خرداد 1391, 11:34 صبح
ممنون که جواب دادید
خب میدونم که وقتی پایگاه در حال استفاده باشه نباید .....
ولی من بعد هر عملیات اتصال رو قطع میکنم.
آیا راهی دیگر هم و جود داره که بخواهیم بررسی کنیم اتصالی و جود داره که اونو قطع کنیم؟

esteghamat
شنبه 20 خرداد 1391, 13:03 عصر
سلام
بله مي توني از sp_who2 استفاده كني.
exec sp_who2
نتيجه اين اجرا كليه sp هايي است كه به سرور شما به ديتابيس هاي مختلف وصل شدن.
توي اونها مي توني ديتابيس مورد نظر رو پيدا كني و بعد اون sp رو kill كني.
مثلا kill 79
موفق باشي