View Full Version : سوال: backup sqlexpress
sagad_13
چهارشنبه 12 اسفند 1388, 10:51 صبح
با سلام
من توی سایت کلی جستجو کردم ولی متاسفانه مطالبی که در مورد بکاپ گیری از دیتابیس تو sqlexpress بود هیچ کدوم جوابگو نبود و هرکدوم یه پیغام خطایی می داد
از دوستان خواهش می کنم بکاپ گیری و ریستور رو به صورت کامل در sqlexpress آموزش بدن تا این موضوع تو این تاپیک حل بشه
(دیتابیسم فایل های mdf و ldf هستش)
با تشکر
SMRAH1
چهارشنبه 12 اسفند 1388, 12:07 عصر
سلام
بارها این سئوال مطرح شده و بار ها هم جواب داده شده و حتما کار می کنه که کسی ایرادی رو مطرح نکرده (یک نمونه رو خودم گذاشتم که الان در برنامه هام دارم استفاده می کنم و کار میکنه)!
حالا اگر «هرکدوم یه پیغام خطایی می داد» رو کامل توضیح بدی،میشه راهنمایی کرد که ایراد کار «شما» کجاست یا ایراد کد!
موفق باشید
sagad_13
شنبه 15 اسفند 1388, 10:00 صبح
salam dooste man
man harchi emtehan kardam javab nadad
shayad eirad tooye connection stringame
esme data basam dbase.mdf hastesh
mishe begi conectionesh chi bayad bashe
ba tashakkor
ASKaffash
شنبه 15 اسفند 1388, 10:38 صبح
salam dooste man
man harchi emtehan kardam javab nadad
shayad eirad tooye connection stringame
esme data basam dbase.mdf hastesh
mishe begi conectionesh chi bayad bashe
ba tashakkor
سلام
اتفاقا محتوای ConnectionString مهم است ConnectionString شما چیست ؟
sagad_13
شنبه 15 اسفند 1388, 11:13 صبح
کانکشن من اینه
Data Source=.\\SQLEXPRESS;AttachDbFilename="+Application.StartupPath+"\\dbase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True
ASKaffash
شنبه 15 اسفند 1388, 11:25 صبح
سلام
خودش است این ConnectionString نمی تواند ConnectionString را عوض کنید و از روش AttachDbFilename استفاده نکنید
sagad_13
شنبه 15 اسفند 1388, 11:30 صبح
سلام
میشه بگید باید چیکار کنم.یعنی بیشتر توضیح بدید ممنون میشم.
این کانکشن تو کل برنامه جواب داده بغیر از همین بکاپ و ری استور کردنش
ASKaffash
شنبه 15 اسفند 1388, 13:22 عصر
سلام
با این ConnectionString مشکل شما حل می شود :
"Persist Security Info=False;Integrated Security=SSPI;Initial Catalog=" + DataBaseName + ";server=";
sagad_13
شنبه 15 اسفند 1388, 15:21 عصر
سلام
بازم نشد
پیغام زیر رو میده.
تو ضمیمه کدی هم که نوشتم مشخصه
ASKaffash
یک شنبه 16 اسفند 1388, 07:36 صبح
سلام
بازم نشد
پیغام زیر رو میده.
تو ضمیمه کدی هم که نوشتم مشخصه
سلام
باید DataBase شما به SQLExpress قبلا Attached شده باشد
sagad_13
یک شنبه 16 اسفند 1388, 07:49 صبح
سلام
کل برنامه ی من با اون کانکشن استرینگی که کد اتچ رو داره کار می کنه(یعنی بانک اتچ شده) درسته؟
فقط تو این قسمت بکاپ گیری من این کانکشن استرینگی که شما دادین رو گذاشتم که بازم کار نمی کنه و اون پیغام رو می ده.
اگه اتچ نیست لطفا بگین چطور اتچ بشه؟
ممنون
ASKaffash
یک شنبه 16 اسفند 1388, 08:38 صبح
سلام
خیر Attached نشده است با استفاده از Sp بنام Sp_Attached اولین بار باید اتصال صورت گیرد بعد بقیه مراحل...
sagad_13
یک شنبه 16 اسفند 1388, 10:09 صبح
سلام
میشه کامل بهم توضیح بدین
(در ضمن ممنونم که این مشکل منو پیگیری می کنین)
ASKaffash
یک شنبه 16 اسفند 1388, 12:36 عصر
سلام
باید این مراحل را طی کنید تا با ConnectionString اعلام شده بتوانید Backup بگیرید :
- در ابتدای برنامه یک ارتباط با بانک Master برقرار کنید اگر خطا دریافت شد که SQLExpress احتمالا ندارید
- اگر به یک شی درون بانک خودتان ارتباط برقرار نکردید باید SP_Attached را برای ارتباط با بانک ولی با ConnectionString به جدول master اجرا کنید
پس از این مرحله با ConnectionString اعلام شده Backup و Restore خواهید داشت
یک حسن دیگر هم این است که وقتی attached می کنید بدون Stop اس کیو ال نمی توان بلائی سر بانک آورد.
sagad_13
یک شنبه 16 اسفند 1388, 16:14 عصر
سلام
یکم برا من سخت فهمیدنش
اینکه گفتی مستر رو ارتباط بدم.از منوی tool گزینه ی connect to database رو زدم و بانک رو نشونم داد(.\sqlexpress)
ولی بقیشو نفهمیدم
میشه مرحله ای برای یه نفر مبتدی توضیح بدی
ممنون
ASKaffash
دوشنبه 17 اسفند 1388, 08:00 صبح
سلام
نمی خواستم کد بذارم ولی مجبور شدم :
string MyDataBase = "Test";
string MyPathName = @"D:\Temp";
string Master_CS = "Persist Security Info=False;Integrated Security=SSPI;Initial Catalog=master;server=";
string MyDB_CS = "Persist Security Info=False;Integrated Security=SSPI;Initial Catalog=" + MyDataBase + ";server=";
string MySP_Attached = @"EXEC sp_attach_db @dbname = N'" + MyDataBase + @"',@filename1 = N'" + MyPathName + @"\" + MyDataBase + @"_Data.MDF',@filename2 = N'" + MyPathName + @"\" + MyDataBase + @"_Log.LDF'";
try
{
var C = new SqlConnection(Master_CS);
C.Open();
new SqlCommand(MySP_Attached, C).ExecuteNonQuery(); }
catch { }
اینطوری اگر بانک شما متصل نباشد متصل میشود این مثال 2000 قرار دادم شما از ConnectionString مربوط به SQLExpress استفاده کنید
sagad_13
دوشنبه 17 اسفند 1388, 12:13 عصر
سلام
واقعا خسته نباشید و ممنونم.
من این کد رو میزارم بعدشم دستورات بکاپ رو می نویسم ولی بازم جواب نمی ده
دیتابیس من تو مسیر استارت آپ نصب برنامس. آدرس هارو هم گذاشتم و لی بازم همون پیغام قبلی رو داد
دیگه از چی میتونه باشه؟
ASKaffash
دوشنبه 17 اسفند 1388, 12:18 عصر
سلام
پیام را قرار دهید چون من با همین روش اصلا مشکلی ندارم.
اینهم SP مربوط به Backup گیری :
CREATE Proc BacKUpApplication
@DBDrv VarChar(1000),
@DBStr VarChar(200)
As
Declare @DBPath VarChar(1000),@DBBack VarChar(150)
Set @DBPath=@DBDrv+@DBStr+'_BackUp.Bak'
Set @DBBack=@DBStr+'_BackUp'
ExEc sp_addumpdevice 'disk',@DBBack,@DBPath
ExEc('BackUp DataBase '+@DBStr+' To '+@DBStr+'_BackUp')
sagad_13
دوشنبه 17 اسفند 1388, 12:38 عصر
سلام
این کدی که نوشتین که vb هستش
من با سی شارپ دارم می نویسم
شاید بخاطر اینه که نمیشه؟
ASKaffash
دوشنبه 17 اسفند 1388, 12:40 عصر
سلام
VB ؟ نه با #C است.
sagad_13
دوشنبه 17 اسفند 1388, 12:59 عصر
ببخشید اشتباه شد
الان به عنوان یه دستور sql فرستادمش
پارامترهاش هم یه جورایی تعریف کردم
ولی بازم پیغام میده که
excute non query: connection property has not been instalize
میشه یه نمونه برنامه بنویسین(ممنون میشم چون دیگه داره خستم میکنه)
ASKaffash
دوشنبه 17 اسفند 1388, 13:23 عصر
سلام
اینطوری :
try
{
string MyDB = "ForTesting";
var C = new SqlConnection("Persist Security Info=False;Integrated Security=SSPI;Initial Catalog=" + MyDB + ";server=");
C.Open();
new SqlCommand(@"BacKUpApplication 'D:\','" + MyDB + "'", C).ExecuteNonQuery();
}
catch { }
sagad_13
دوشنبه 17 اسفند 1388, 14:23 عصر
سلام
کدی که نوشتم اینه:
string MyDataBase = "dbase";
string MyPathName = Application.StartupPath;
string Master_CS = "Data Source=.\\sqlexpress;Integrated Security=True";
string MyDB_CS = "Persist Security Info=False;Integrated Security=SSPI;Initial Catalog=" + MyDataBase + ";server=";
string MySP_Attached = @"EXEC sp_attach_db @dbname = N'" + MyDataBase + @"',@filename1 = N'" + MyPathName + @"\" + MyDataBase + @"_Data.MDF',@filename2 = N'" + MyPathName + @"\" + MyDataBase + @"_Log.LDF'";
try
{
var C = new SqlConnection(Master_CS);
C.Open();
new SqlCommand(MySP_Attached, C).ExecuteNonQuery();
C.Close();
}
catch
{
MessageBox.Show("0");
}
try
{
string MyDB = "dbase";
var C = new SqlConnection("Persist Security Info=False;Integrated Security=SSPI;Initial Catalog=" + MyDB + ";server=");
C.Open();
new SqlCommand(@"BacKUpApplication 'D:\','" + MyDB + "'", C).ExecuteNonQuery();
}
catch
{
MessageBox.Show("1");
}
الان بازم جواب نمیده و تو جفه catch ها میره
ایرادش چیه؟:ناراحت:
ASKaffash
دوشنبه 17 اسفند 1388, 14:31 عصر
سلام
کدی که نوشتم اینه:
string MyDataBase = "dbase";
string MyPathName = Application.StartupPath;
string Master_CS = "Data Source=.\\sqlexpress;Integrated Security=True";
string MyDB_CS = "Persist Security Info=False;Integrated Security=SSPI;Initial Catalog=" + MyDataBase + ";server=";
string MySP_Attached = @"EXEC sp_attach_db @dbname = N'" + MyDataBase + @"',@filename1 = N'" + MyPathName + @"\" + MyDataBase + @"_Data.MDF',@filename2 = N'" + MyPathName + @"\" + MyDataBase + @"_Log.LDF'";
try
{
var C = new SqlConnection(Master_CS);
C.Open();
new SqlCommand(MySP_Attached, C).ExecuteNonQuery();
C.Close();
}
catch
{
MessageBox.Show("0");
}
try
{
string MyDB = "dbase";
var C = new SqlConnection("Persist Security Info=False;Integrated Security=SSPI;Initial Catalog=" + MyDB + ";server=");
C.Open();
new SqlCommand(@"BacKUpApplication 'D:\','" + MyDB + "'", C).ExecuteNonQuery();
}
catch
{
MessageBox.Show("1");
}
الان بازم جواب نمیده و تو جفه catch ها میره
ایرادش چیه؟:ناراحت:
سلام
قسمت قرمز رنگ باید به بانک master اشاره کند
string Master_CS = "Data Source=.\\sqlexpress;Integrated Security=True";
string MyDB_CS = "Persist Security Info=False;Integrated Security=SSPI;Initial Catalog=master;server=";
بار اول باید اجرا شود و هربار که بانک متصل نباشد نیز اجرا می شود
sagad_13
دوشنبه 17 اسفند 1388, 14:47 عصر
سلام
قسمت قرمز رنگ رو به این کد تغییر دادم
Data Source=.\sqlexpress;Initial Catalog=master;Integrated Security=True
ولی بازم نشد
قسمت سبز رنگ رو هم منظورتونو نفهمیدم که چجوری باید تغییرش بدم
بازم همون مشکل رو داره
sagad_13
سه شنبه 18 اسفند 1388, 07:52 صبح
سلام
فکر کنم دیگه خسته شدین
ولی هنوز این مشکل من حل نشده
میشه کمک کنید
ASKaffash
سه شنبه 18 اسفند 1388, 07:57 صبح
سلام
این مثال برای 2000 است برای 2005 باید این تغییر را ایجاد کنید:
string MySP_Attached = @"EXEC sp_attach_db @dbname = N'" + MyDataBase + @"',@filename1 = N'" + MyPathName + @"\" + MyDataBase + @"_Data.MDF',@filename2 = N'" + MyPathName + @"\" + MyDataBase + @"_Log.LDF'";
قسمتهای قرمز رنگ باید متناسب با فایل Data و Log شما تغییر کند
نام کامل Log و Data شما چیست ؟
sagad_13
سه شنبه 18 اسفند 1388, 08:55 صبح
سلام
اسم دیتابیسمdbase.mdf و لاگ فایلش همdbase_log.ldf هستش
این کد هم الان جواب نداد.میشه بگید کجاش ایراد داره
string MyDataBase = "dbase";
string MyPathName = Application.StartupPath;
string MyDB_CS = "Persist Security Info=False;Integrated Security=SSPI;Initial Catalog=" + MyDataBase + ";server=";
string MySP_Attached = @"EXEC sp_attach_db @dbname = N'" + MyDataBase + @"',@filename1 = N'" + MyPathName + @"\" + MyDataBase + @"_Data.MDF',@filename2 = N'" + MyPathName + @"\" + MyDataBase + @"_Log.LDF";
try
{
var C = new SqlConnection(MyDB_CS);
C.Open();
new SqlCommand(MySP_Attached, C).ExecuteNonQuery();
C.Close();
}
catch
{
MessageBox.Show("0");
}
try
{
string MyDB = "dbase";
var C = new SqlConnection("Persist Security Info=False;Integrated Security=SSPI;Initial Catalog=" + MyDB + ";server=");
C.Open();
new SqlCommand(@"BacKUpApplication 'D:\','" + MyDB + "'", C).ExecuteNonQuery();
}
catch
{
MessageBox.Show("1");
}
ASKaffash
سه شنبه 18 اسفند 1388, 10:15 صبح
سلام
اگر Path شما صحیح باشد اینطوری است :
string MySP_Attached = @"EXEC sp_attach_db @dbname = N'" + MyDataBase + @"',@filename1 = N'" + MyPathName + @"\dbase.mdf',@filename2 = N'" + MyPathName + @"\dbase_log.ldf'";
sagad_13
سه شنبه 18 اسفند 1388, 10:28 صبح
سلام
پسش رو هم درست کردم باز.
ولی نشد
میره تو کتچ:گریه:
ASKaffash
سه شنبه 18 اسفند 1388, 12:20 عصر
سلام
درون بلاک اول فقط اولین بار باید برود وباردوم به بعد به catch میرود ولی در catch دوم نباید برود
sagad_13
سه شنبه 18 اسفند 1388, 13:55 عصر
سلام
هردفعه خطا میده و میره تو کتچ
کد رو که دیدی دوست من.
دیگه از چی میتونه باشه؟
vBulletin® v4.0.8, Copyright ©2000-1391, Jelsoft Enterprises Ltd.