PDA

View Full Version : مشکل در گرفتن back up



mehrab1387
یک شنبه 01 اسفند 1389, 13:34 عصر
مشکل در گرفتن back up



من از اس کیو ال خود ویژوال استودیو استفاده میکنم و وقتی که میخواهم از پایگاه داده پشتیبان بگیرم با خطای زیر مواجه میشوم.

DataBase does not exist. make sure that the name is entered correctly. back up DataBase is terminating abnormally

در صورتی که هم پایگاه داده موجود است و هم نام آن درست وارد شده است.البته من قبلا که از

management sql server express edition استفاده میکردم راحت پشتیبان میگرفت.
لطفا راهنمایی کنید

Ishtar_4552
دوشنبه 13 شهریور 1391, 19:42 عصر
سلام
من هم دقیقا چنین مشکلی دارم از sql express خود ویژوال استودیو 2010 استفاده کردم، با اینکه کدهای نوشته شده درست است.. ولی با چنین خطایی مواجه می شوم..
ضمن اینکه می خواهم موقع ساخت ستاپ و نصب برنامه در سیستم دیگر برنامه ام جواب بدهد..

کد استفاده شده:
'backup database db to disk='e:\backup\b.bak

aminaltavista
سه شنبه 14 شهریور 1391, 07:40 صبح
سلام
من هم دقیقا چنین مشکلی دارم از sql express خود ویژوال استودیو 2010 استفاده کردم، با اینکه کدهای نوشته شده درست است.. ولی با چنین خطایی مواجه می شوم..
ضمن اینکه می خواهم موقع ساخت ستاپ و نصب برنامه در سیستم دیگر برنامه ام جواب بدهد..


یه سری به این لینک (http://barnamenevis.org/showthread.php?313523-%DA%A9%D8%A7%D8%B1%DA%AF%D8%A7%D9%87-%D8%B9%D9%85%D9%84%DB%8C-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D8%AB%D8%A8%D8%AA-%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%D8%A7%D8%AA-%D9%85%D8%B1%D8%AD%D9%84%D9%87-%D8%A8%D9%87-%D9%85%D8%B1%D8%AD%D9%84%D9%87) بزن و آموزش هاش رو دانلود کن

موفق باشی

Ishtar_4552
سه شنبه 14 شهریور 1391, 09:45 صبح
متشکرم از توجه شما.. :-)
ولی من مشکلی در چگونگی ثبت اطلاعات و .. ندارم ، برنامه ام هم یک نرم افزار حسابداری کوچک ثبت آمار هستش که کاملا درست کار می کند ، فقط موقع بک آپ گیری با این مشکل مواجه می شوم .. آموزش هایی که گفتید فکر نمی کنم کمکی به حل مشکل من بکنه..

barnamenevisforme
چهارشنبه 15 شهریور 1391, 15:45 عصر
سلام
این یه نمونه کد در vb.net
Private Sub تهیهنسخهپشتیبانToolStripMenuItem_Cl ick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles تهیهنسخهپشتیبانToolStripMenuItem.Cl ick
Me.SaveFileDialog1.FileName = get_date_of_edit()
Dim reslt As DialogResult = Me.SaveFileDialog1.ShowDialog()
If reslt = Windows.Forms.DialogResult.OK Then
Dim file_name As String = Me.SaveFileDialog1.FileName
Dim mybackupcmd As String = "BACKUP DATABASE db TO DISK='" + file_name + "'"

Dim myConnectionString As String
myConnectionString = My.Settings.db.ToString
Dim myConnection As New System.Data.SqlClient.SqlConnection(myConnectionSt ring)
Dim mycommand As New System.Data.SqlClient.SqlCommand(mybackupcmd, myConnection)
Try
myConnection.Open()
mycommand.ExecuteNonQuery()
myConnection.Close()
MsgBox("تهیه نسخه پشتیبان با موفقیت انجام شد", MsgBoxStyle.Information, "عملیات موفق")

Catch ex As Exception
MsgBox("تهیه نسخه پشتیبان با موفقیت انجام نشد", MsgBoxStyle.Critical, "عملیات نا موفق")

End Try
End If
End Sub
دقت کنید،اگر نام پایگاه داده شما دارای فاصله باشد،در sql server با _ جایگزین میشود ولی موقع تهیه backup با خطا مواجه میشید.
اگر اینطوره حتما نام پایگاه داده رو تصحیح کنید.

Ishtar_4552
چهارشنبه 15 شهریور 1391, 18:58 عصر
مشکل از نحوه کد نویسی نیست ،کدهای من کاملا درسته، من در خود sql server 2008 می تونم بک آپ بگیرم ، ولی الان مشکل من با sql express هست ؛من از چند دیتابیس دیگر که در خود sql express ایجاد کردم سعی کردم بک آپ بگیرم دقیقا همین مشکل را داشتند و با این خطا مواجه می شدم با اطلاعات کمی که دارم فکر می کنم که sql sexpress نمی تونه دیتابیس رو بشناسه و احتمالا اتچ نشده ،دلیلش رو نمی دونم، ، از اونجایی که من می خوام روی سیستم دیگر sql express مربوط به خود ویژوال استودیو را نصب کنم ، می خواهم که از این طریق بک آپ بگیرم..

من ابتدا دیتابیسم را از طریق این کدهای اسکیو ال اتچ می کنم :

USE master;
EXEC sp_attach_single_file_db @dbname = 'NBDB',
@physname = N'Address';

بعد از اینکه دیتابیس با موفقیت اضافه شد.. می تونم درج و حذف و نمایش اطلاعات جدول هام رو به درستی انجام بدم..
ولی موقع پشتیبان گیری با خطای زیر مواجه می شم:


DataBase does not exist. make sure that the name is entered
correctly. back up DataBase is terminating abnormally

پروسیجری که استفاده کردم هم این هست:


ALTER PROCEDURE CreateBackup
@backupPath nvarchar(150),
@db nvarchar(150)
AS
BACKUP DATABASE @db TO DISK=@backupPath WITH FORMAT,INIT, SKIP, STATS = 10
RETURN

مثال:
NBDB=@db
e:\b.bak=@backupPath

خود پروسیجر را هم به تنهایی اجرا می کنم با پارامترهایی که دستی می دهم با ز هم با همین خطا مواجه می شم.

meisam12
چهارشنبه 15 شهریور 1391, 19:24 عصر
سلام
من به این فروم http://www.dotnetobject.com/Thread-DataBase-backup-in-runtime-in-asp-net-using-sql-server (http://www.dotnetobject.com/Thread-DataBase-backup-in-runtime-in-asp-net-using-sql-server)سری زدم. و دقیقاً همین مشکلات شما را داشتند و در نتیجه پس از بحث طولانی به این نتیجه رسیدند که اون مسیری که داده بودند(طبق پست دوم e:\backup یعنی پوشه backup )پ Read only بود.

Ishtar_4552
چهارشنبه 15 شهریور 1391, 19:47 عصر
هر مسیر دیگری را هم که می دم همین مشکل رو داره..

meisam12
چهارشنبه 15 شهریور 1391, 19:51 عصر
سورس کدتان را بذارید تا ببینم.

هر مسیر دیگری را هم که می دم همین مشکل رو داره..

baktash.n81@gmail.com
چهارشنبه 15 شهریور 1391, 22:17 عصر
سلام
به آدرسی که فایل MDF وجود داره برید و ببینید که فایل در اون آدرس وجود داره یا خیر ...
این روش رو هم امتحان کنید ...



BACKUP DATABASE [D:\testing.mdf] TO disk = 'C:\PathToBackup\BackupFileName.bak'

baktash.n81@gmail.com
چهارشنبه 15 شهریور 1391, 22:18 عصر
ابن لینک (http://blogs.msdn.com/b/sqlexpress/archive/2007/03/20/backup-and-restore-with-user-instances.aspx)هم ممکنه کمک کنه ....

Ishtar_4552
پنج شنبه 16 شهریور 1391, 18:04 عصر
سلام
من یک نمونه سورس شبیه به برنامه ای که نوشتم اینجا گذاشتم..
یا اینکه نمی تونستم دیتا بیس رو اتچ کنم و یک بار دیگر هم که تست کردم دیتابیس اتچ شد ولی اطلاعاتی به من نشان نداد..
موقع اتچ کردن با این پیغام مواجه می شم..
92468

نمونه سورس رو هم قرار دادم..
92470

meisam12
پنج شنبه 16 شهریور 1391, 19:26 عصر
سلام دوست عزیز
در دکمه نسخه پشتیبان این سورس را بنویس

SqlConnection con =new SqlConnection( Properties.Settings.Default.NBConnection);
con.Open();
SqlCommand cmd = new SqlCommand(@"backup database Test1 to disk ='d:\StockDBBackUp1.bak' with init,stats=10",con);
cmd.ExecuteNonQuery();

m0hammad_01
شنبه 18 شهریور 1391, 17:53 عصر
مشکل از نحوه کد نویسی نیست ،کدهای من کاملا درسته، من در خود sql server 2008 می تونم بک آپ بگیرم ، ولی الان مشکل من با sql express هست ؛من از چند دیتابیس دیگر که در خود sql express ایجاد کردم سعی کردم بک آپ بگیرم دقیقا همین مشکل را داشتند و با این خطا مواجه می شدم با اطلاعات کمی که دارم فکر می کنم که sql sexpress نمی تونه دیتابیس رو بشناسه و احتمالا اتچ نشده ،دلیلش رو نمی دونم، ، از اونجایی که من می خوام روی سیستم دیگر sql express مربوط به خود ویژوال استودیو را نصب کنم ، می خواهم که از این طریق بک آپ بگیرم..

من ابتدا دیتابیسم را از طریق این کدهای اسکیو ال اتچ می کنم :

USE master;
EXEC sp_attach_single_file_db @dbname = 'NBDB',
@physname = N'Address';

بعد از اینکه دیتابیس با موفقیت اضافه شد.. می تونم درج و حذف و نمایش اطلاعات جدول هام رو به درستی انجام بدم..
ولی موقع پشتیبان گیری با خطای زیر مواجه می شم:


DataBase does not exist. make sure that the name is entered
correctly. back up DataBase is terminating abnormally

پروسیجری که استفاده کردم هم این هست:


ALTER PROCEDURE CreateBackup
@backupPath nvarchar(150),
@db nvarchar(150)
AS
BACKUP DATABASE @db TO DISK=@backupPath WITH FORMAT,INIT, SKIP, STATS = 10
RETURN

مثال:
NBDB=@db
e:\b.bak=@backupPath

خود پروسیجر را هم به تنهایی اجرا می کنم با پارامترهایی که دستی می دهم با ز هم با همین خطا مواجه می شم.
شما حتما اول از طریق SQL SERVER Managment Studio Express Edition مطمئن شوید که دیتابیستون Attach شده است.
اگر دیتابیستون Attach شده بود، دستور پشتیبان گیریتون زیر رو تو محیط Query Editor خود SQL SERVER Managment Studio Express Edition بنویسید و اجرا کنید.
اگه با موفقیت کارهای بالا انجام شد، میریم سراغ احتمال های دیگه!

BACKUP DATABASE [MyDatabase] TO disk = 'D:\BackupFileName.bak'