نمایش نتایج 1 تا 19 از 19

نام تاپیک: Backup گرفتن از SQL Express 2005

  1. #1

    Backup گرفتن از SQL Express 2005

    این سوال به طور مستقیم و غیر مستقیم چندین بار در این سایت مطرح شده ولی هیچ کدوم به جواب آخر نرسیدند و من می خوام به شکل صریح تر اون رو مطرح کنم.
    من از طریق روش اتصال به فایل به دیتابیس خودم متصل می شم (AttachDBFileName). چون در این روش دیتابیس به سرور Attach نمی شه تا اونجایی که من متوجه شدم امکان گرفتن پیشتیبان از طریق اسکریپت های معمول، امکان پذیر نیست.
    آیا تنها راه Backup گرفتن از دیتابیس Copy نمودن فایل های MDF هستش یا روش دیگری هم وجود داره؟
    متشکرم.

  2. #2

    نقل قول: Backup گرفتن از SQL Express 2005

    نقل قول نوشته شده توسط morteza57 مشاهده تاپیک
    این سوال به طور مستقیم و غیر مستقیم چندین بار در این سایت مطرح شده ولی هیچ کدوم به جواب آخر نرسیدند و من می خوام به شکل صریح تر اون رو مطرح کنم.
    من از طریق روش اتصال به فایل به دیتابیس خودم متصل می شم (AttachDBFileName). چون در این روش دیتابیس به سرور Attach نمی شه تا اونجایی که من متوجه شدم امکان گرفتن پیشتیبان از طریق اسکریپت های معمول، امکان پذیر نیست.
    آیا تنها راه Backup گرفتن از دیتابیس Copy نمودن فایل های MDF هستش یا روش دیگری هم وجود داره؟
    متشکرم.
    SqlCommand com = new SqlCommand("backup database ChestRenal to disk= "
    + "'" + textBox1.Text.ToString() + "'" , sc);

    SC=SqlConnection

  3. #3

    نقل قول: Backup گرفتن از SQL Express 2005

    این روش ها برای دیتابیس هایی که به سرور Attach شدن کارساز هست و در مورد دیتابیس هایی که از AttachDBFileName استفاده می کنند کارایی نداره.

  4. #4
    VIP آواتار Sajjad.Aghapour
    تاریخ عضویت
    مهر 1386
    محل زندگی
    اهل کاشانم .. روزگارم بد نیست
    پست
    1,265

    نقل قول: Backup گرفتن از SQL Express 2005


    cmd.CommandText="backup database db_name to disk=@path with format";
    cmd.Parameters.AddWithValue("@path","C:\\db.bak");
    از smo هم میتونید استفاده کنید...
    Close your eyes, take a deep breath, click your heels three times, and say, "There's no better thing than Inversion of Control and Dependency Injection, generic specialization, the decorator pattern, chains of responsibilities, and extensible software."

  5. #5

    نقل قول: Backup گرفتن از SQL Express 2005

    دوست گرامی، همونطور که قبلا گفتم این روش ها برای دیتابیس هایی کارایی داره که به سرور Attach شده باشند. برنامه ای که من نوشتم از نوع مالتی مدیا هستش.
    از طرفی اگر بخوام یک Instance جدید از SQL Express نصب کنم هم کلی مشکل دیگه داره.
    بنابراین من از طریق AttachDBFileName به این پایگاه داده وصل شدم. حالا مشکل من اینه که آیا روشی برای گرفتن پیشتیبان از این طریق وجود داره یا نه؟
    آخرین ویرایش به وسیله morteza57 : یک شنبه 01 شهریور 1388 در 23:52 عصر

  6. #6
    VIP آواتار Sajjad.Aghapour
    تاریخ عضویت
    مهر 1386
    محل زندگی
    اهل کاشانم .. روزگارم بد نیست
    پست
    1,265

    نقل قول: Backup گرفتن از SQL Express 2005

    بنابراین من از طریق AttachDBFileName به این پایگاه داده وصل شدم. حالا مشکل من اینه که آیا روشی برای گرفتن پیشتیبان از این طریق وجود داره یا نه؟
    شما به مشکل برخوردید یا اینکه فقط دارید سوال میپرسید ؟!!.....
    ..
    Close your eyes, take a deep breath, click your heels three times, and say, "There's no better thing than Inversion of Control and Dependency Injection, generic specialization, the decorator pattern, chains of responsibilities, and extensible software."

  7. #7

    نقل قول: Backup گرفتن از SQL Express 2005

    نقل قول نوشته شده توسط sajjadlove مشاهده تاپیک
    شما به مشکل برخوردید یا اینکه فقط دارید سوال میپرسید ؟!!.....
    ..
    این دیگه از اون سوال ها بود ((:


    هنگام اجرای دستورات فوق، خطای زیر به وجود می یاد.


    Could not locate entry in sysdatabases for database 'RuleManager'. No entry found with that name. Make sure that the name is entered correctly.
    BACKUP DATABASE is terminating abnormally.

    لازم به ذکر هستش که نام دیتابیس من RuleManager هستش.

  8. #8
    VIP آواتار Sajjad.Aghapour
    تاریخ عضویت
    مهر 1386
    محل زندگی
    اهل کاشانم .. روزگارم بد نیست
    پست
    1,265

    نقل قول: Backup گرفتن از SQL Express 2005

    کدی رو که گذاشته بودم یه بار تست کردم، مشکلی نداشت....

    //Con_Str
    "data source=.\\SQLEXPRESS;attachdbfilename=|datadirecto ry|db.mdf;initial catalog=db;integrated security=true;user instance=true"
    //

    اینجا رو هم یه نگاه بندازید...
    http://support.microsoft.com/kb/290787
    Close your eyes, take a deep breath, click your heels three times, and say, "There's no better thing than Inversion of Control and Dependency Injection, generic specialization, the decorator pattern, chains of responsibilities, and extensible software."

  9. #9

    نقل قول: Backup گرفتن از SQL Express 2005

    نقل قول نوشته شده توسط morteza57 مشاهده تاپیک
    من نمی تونم هنگام نصب برنامه روی سیستم کاربر دیتابیس رو Attach کنم (چون نام کاربری و رمز عبور سرور رو ندارم)
    بی ربطه ها٬ ولی من متوجه نشدم٬ Attach کردن یا نکردن دیتابیس چه ارتباطی با نام کاربری و رمز عبور سرور داره؟
    اگه رمز عبور یا به عبارتی کاربری در سرور نداشته باشی از این روش هم نمیتونی استفاده کنی
    اینطور نیست؟

  10. #10

    نقل قول: Backup گرفتن از SQL Express 2005

    نقل قول نوشته شده توسط mn_zandy63 مشاهده تاپیک
    بی ربطه ها٬ ولی من متوجه نشدم٬ Attach کردن یا نکردن دیتابیس چه ارتباطی با نام کاربری و رمز عبور سرور داره؟
    اگه رمز عبور یا به عبارتی کاربری در سرور نداشته باشی از این روش هم نمیتونی استفاده کنی
    اینطور نیست؟
    ممنون، حرف شما کاملا صحیح هست. جمله مورد نظر رو حذف کردم، اینقدر این موضوع اعصاب من رو خورد کرده بود که چند تا مطلب رو با هم قاطی کردم.

    اما مشکل بلاخره حل شد. پس از چندین ساعت بررسی فاروم ها و سایت ها و بلاگ های مختلف و پس از بررسی روش های مختلف، بلاخره تونستم مشکل مورد نظر رو حل کنم.

    این مشکل از یک غفلت کوچک توسط من به وجود اومده بود. این دیتابیس رو من توسط Management Studio به وجود آورده و توسعه داده بودم و در نهایت اون رو داخل پروژه خودم کپی کرده و با استفاه از ویژوال استودیو به اون کانکت شدم. از دیتابیس Property گرفتم و کانکشن استرینگ اون رو داخل فایل App.Config کپی کردم.
    دیتابیس بدون مشکل بالا میومد و اعمال مختلف روی اون اجرا می شد و لذا من هیچ شکی به رشته اتصال دیتابیس نداشتم.
    ولی غافل از این که در رشته اتصالی که من از ویژوال استودیو کپی کرده بودم، مشخصه Initial Catalog وجود نداشت و چون دیتابیس در زمان RunTime به سرور Attach می شد، و من در رشته اتصال دیتابیس مشخصه Initial Catalog رو ذکر نکرده بودم، سرور نام دیتابیس من رو برابر با محل قرارگیری اون در نظر می گرفت(مثلا [E:\DB\RuleMANAGER.MDF]).
    بنابراین هنگامی که من دستور گرفتن پشتیبان از دیتابیس رو می دادم، سرور می گفت که نام RuleMANAGER رو پیدا نمی کنه (و حق با اون بود)
    پس از اینکه این مشخصه Initial Catalog رو به رشته اتصال اضافه کردم، خطای مورد نظر عوض شد و یه چیزی تو این مایه ها شد:
    Unable to open the phisycal file

    این مشکل نیز بدین جهت به وجود اومده بود که دیتابیس به حالت ReadOnly رفته بود. (این که چرا به این حالت رفته بود برای من هم سواله)
    احتمالا می دونید که وقتی یک دیتابیس به حالت ReadOnly می ره هنگامی که به Management Studio اون رو Attach می کنیم رنگش خاکستری می شه و مشخص می شه که ReadOnly شده ولی نمی دونم چرا در این مورد این عمل انجام نمی شد و کاملا عادی نمایش داده می شد.
    پس از اجرای دستور زیر تونستم از روش های معمول جهت گرفتن پشتیبان استفاده کنم.
    ALTER DATABASE [E:\DB\RuleMANAGER.MDF] SET read_write

    این بود داستان گرفتاری من!
    آخرین ویرایش به وسیله morteza57 : دوشنبه 02 شهریور 1388 در 00:41 صبح

  11. #11

    نقل قول: Backup گرفتن از SQL Express 2005

    خوشحالم که مشکلت حل شد

    Happy Coding...

  12. #12
    کاربر دائمی آواتار f_pakzad
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    مازندران
    پست
    185

    نقل قول: Backup گرفتن از SQL Express 2005

    نقل قول نوشته شده توسط morteza57 مشاهده تاپیک
    م
    این بود داستان گرفتاری من!
    برای من دقیقا همین مشکل پیش اومد
    هرچی می زدم تو سر خودم نمی فهمیدم اشکال از کجاست
    پست شما رو دیدم ذوق زده شدم

  13. #13

    نقل قول: Backup گرفتن از SQL Express 2005

    نقل قول نوشته شده توسط f_pakzad مشاهده تاپیک
    برای من دقیقا همین مشکل پیش اومد
    هرچی می زدم تو سر خودم نمی فهمیدم اشکال از کجاست
    پست شما رو دیدم ذوق زده شدم
    چه فایده ؟ وقتی init catalog رو به کانکشن استرینگ اضافه کنی با جابجایی برنامه در هارد دیسک دیگه بکاپ عمل نمی کنه

  14. #14
    کاربر دائمی آواتار a.maleki
    تاریخ عضویت
    تیر 1386
    محل زندگی
    یه جائی تو گرانشهر تهران
    پست
    310

    نقل قول: Backup گرفتن از SQL Express 2005

    دوستان سلام
    من از کدی که فرمودید استفاده کردم ولی خطای زیر رو می ده ممنون میشم که راهنمایم کنید

    Connection property has not been initialized.


  15. #15
    کاربر دائمی آواتار viper2009
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    گوشه کویر
    پست
    728

    نقل قول: Backup گرفتن از SQL Express 2005

    نقل قول نوشته شده توسط sajjadlove مشاهده تاپیک
    کدی رو که گذاشته بودم یه بار تست کردم، مشکلی نداشت....

    //Con_Str
    "data source=.\\SQLEXPRESS;attachdbfilename=|datadirecto ry|db.mdf;initial catalog=db;integrated security=true;user instance=true"
    //

    اینجا رو هم یه نگاه بندازید...
    http://support.microsoft.com/kb/290787
    آیا این دستور دیتا بیس رو Attach می کنه منظورم اینکه وقتی SqlServer را باز کنیم این دیتا بیس Attach یا وصل در SQLserver?

    من یک دیتا بیس از شما می گیرم و حالا می خوام بدون Attach کردن دستی با استفاده از یک دکمه این کار صورت بگیره

  16. #16
    کاربر دائمی آواتار f_pakzad
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    مازندران
    پست
    185

    نقل قول: Backup گرفتن از SQL Express 2005

    نقل قول نوشته شده توسط saadi2 مشاهده تاپیک
    چه فایده ؟ وقتی init catalog رو به کانکشن استرینگ اضافه کنی با جابجایی برنامه در هارد دیسک دیگه بکاپ عمل نمی کنه

    اره..درست میگید.حالا چیکار کنم؟؟؟

  17. #17

    نقل قول: Backup گرفتن از SQL Express 2005

    عبارت initial catalog رو در رشته اتصال استفاده نکنید. مشکلات زیادی داره که چند تای اون همین ها بود که گفتید.
    من دو تا تابع با زبان C#‎‎ نوشتم که عمل Backup و Restore رو بدون مشکل (تا اونجایی که من تست کردم) انجام می دن. اینجا می ذارم تا همه استفاده کنند.
    لطفا اگه مشکلی داشت حتما ذکر کنید تا یه فکری به حالش بکنیم.
    فایل های ضمیمه فایل های ضمیمه

  18. #18
    کاربر دائمی آواتار f_pakzad
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    مازندران
    پست
    185

    نقل قول: Backup گرفتن از SQL Express 2005

    نقل قول نوشته شده توسط morteza57 مشاهده تاپیک
    عبارت initial catalog رو در رشته اتصال استفاده نکنید. مشکلات زیادی داره که چند تای اون همین ها بود که گفتید.
    من دو تا تابع با زبان C#‎‎‎ نوشتم که عمل Backup و Restore رو بدون مشکل (تا اونجایی که من تست کردم) انجام می دن. اینجا می ذارم تا همه استفاده کنند.
    لطفا اگه مشکلی داشت حتما ذکر کنید تا یه فکری به حالش بکنیم.
    شما در این زیربرنامه آدرس فیزیکی فایل mdf رو قرار دادید
    یعنی منظورتون اینه که یه openfiledialog بذاریم و ادرس دیتا بیس رو از کاربر بیریم؟
    در غیر این صورت از کجا بفهمیم کاربر نرم افزار رو در چه ادرسی نصب کرده؟

  19. #19

    نقل قول: Backup گرفتن از SQL Express 2005

    OpernFileDialog در تابعی استفاده شده که وظیفه اون، Restore کردن هستش و نه Backup گرفتن! طبیعتا کاربر باید آدرس فایل Backup رو بده تا بتونه اون رو Restore کنه.
    ولی اینکه از کجا بفهمیم که نرم افزار در کدوم آدرس نصب شده که کاری نداره. کافیه که آدرس فایل اجرایی برنامه رو داشته باشید و آدرس نسبی دیتابیس نسبت به فایل اجرایی رو هم که دارید. پس خیلی راحت می تونید کل آدرس رو بدست بیارید.
    مثلا اگر دیتابیس رو در یک پوشه به نام DB در دایرکتوری نرم افزار گذاشته باشید، آدرس کامل اون رو می تونید در هنگام اجرای نرم افزار از طریق زیر بدست بیارید.
    System.Windows.Forms.Application.StartupPath+"DB\\ MyDatabase.MDF"

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •