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

نام تاپیک: نرم افزار Restore کردن کامل دیتابیس SQL Server + کد برنامه

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    Cool نرم افزار Restore کردن کامل دیتابیس SQL Server + کد برنامه


    نرم افزار Restore کردن کامل دیتابیس SQL Server + کد برنامه

    با سلام خدمت دوستان عزیز

    همانگونه که مستحضرید Restore کردن صحیح و کامل دیتابیس های MSSQL همیشه دردسرهای خاص خودش را داشته است .

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

    البته سورس کد خاصی نداره . غیر از یک Loading Overlay که با یک ترفند ساده نمایش داده میشه .

    محیط برنامه :


    نام سرور و نحوه اتصال را مشخص کنید و Connect را بزنید .


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


    کلید Restore database from backup file را کلیک کنید .
    در ابتدا برنامه اطلاعات فایل پشتیبان را می خواند .


    و پس از تست صحیح بودن فایل پشتیبان و گرفتن اطلاعات آن یک تایید مجدد از کاربر برای انجام عمل Restore گرفته می شود .



    در صورت تایید عملیات Restore آغاز می شود .

    و انشالله اگر خطایی رخ ندهد پیغام Restore Completed نمایش داده خواهد شد .


    اگر موردی یا خطایی مشاهده کردید لطفاً در ادامه همین تاپیک مطرح کنید تا در صورت امکان نسبت به رفع آن اقدام شود .

    برنامه توسط VS 2008 و تحت dotNetFramework v2 نوشته شده است .

    با تشکر
    فایل های ضمیمه فایل های ضمیمه

  2. #2

    Smile الگوریتم کاری برنامه

    الگوریتم کاری برنامه

    برای Restore کردن یک دیتابیس در برنامه از دستور زیر استفاده میشه .
    که عبارت های داخل {} نمایش دهنده مقادیری است که باید جایگزین شوند .

    RESTORE DATABASE [DBName] FROM DISK = N'.Bak File path' WITH FILE = 1, MOVE N'.bak Data LogicalName' TO N'DB MDF path', MOVE N'.bak Log LogicalName' TO N'DB LDF path', NOUNLOAD, REPLACE, STATS = 10

    فایل های backup دیتابیس MSSQL شامل هر دو فایل Data,Log می باشند که هر کدام یک LogicalName دارند .
    که در دستور بالا توسط bak Data LogicalName و bak Log LogicalName مشخص شده اند .

    DB MDF path و DB LDF path نیز مسیر فایل های Data,Log دیتابیسی که میخواهیم فایل پشتیبانی را روی آن بریزیم مشخص می کند.

    برای بدست آوردن اطلاعات فایل پشتیبان (LogicalName های Data,Log) باید از این دستور استفاده کرد .
    RESTORE FILELISTONLY from disk='Bak FilePath'


    که ما به LogicalName و Type نیاز داریم .در ستون Type ، حرف D مشخص کننده Data و L مشخص کننده Log است .

    همانگونه که قبل تر گفته شد ما به مسیر فایل های Data و Log دیتابیس مقصد نیز احتیاج داریم .
    که توسط sys.master_files به مسیر فایل ها و sys.sysdatabases به اطلاعات دیتابیس ها دسترسی خواهیم داشت .

    که برای لیست کردن کلیه دیتابیس ها همراه با مسیر فایل های Data و Log کوئری زیر را نوشتم :


    فقط تنها نکته ای که باقی می ماند این است که پس از Restore کردن دیتابیس از روی فایل پشتیبان LogicalName های دیتابیس به LogicalName های فایل پشتیبان (یا در واقع دیتابیس مبدأ) تغییر نام پیدا می کنند .

    برای مثال اگر از دیتابیس MYDB با LogicalName های MYDB_MDF و MYDB_LDF یک پشتیبانی بگیریم و بخواهیم روی دیتابیس دیگری به نام YOURDB بازگردانی کنیم ، LogicalName های دیتابیس YOURDB به MYDB_MDF و MYDB_LDF تغییر می کنند .

    به همین دلیل پس از انجام عمل Restore در صورتی که LogicalName های دیتابیس مقصد تغییر کرده باشند توسط دستور های زیر آن ها را به مقادیر اولیه تغییر نام می دهیم.

    ALTER DATABASE {DBNAME} MODIFY FILE (NAME = {NewLogic_Data}, NEWNAME='{OldLogic_Data}')
    ALTER DATABASE {DBNAME} MODIFY FILE (NAME = {NewLogic_Log}, NEWNAME='{OldLogic_Log}')

    توضیح خاص دیگری نیست .

  3. #3
    کاربر دائمی آواتار elahe1364
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اصفهان
    پست
    187

    نقل قول: نرم افزار Restore کردن کامل دیتابیس SQL Server + کد برنامه

    با تشکر از برنامه کاملتون

    زمانيکه اين برنامه يا کد restore که خودم نوشتم رو اجرا ميکنم اين خطا رو ميده.

    Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
    The backup or restore was aborted.
    14 percent processed.
    24 percent processed.
    34 percent processed.
    44 percent processed.
    54 percent processed.
    64 percent processed.
    74 percent processed.
    84 percent processed.
    94 percent processed.
    100 percent processed.

  4. #4

    نقل قول: نرم افزار Restore کردن کامل دیتابیس SQL Server + کد برنامه

    با سلام

    این برنامه همان طور که شرح داده شد کار خیلی خاص و منحصربفردی انجام نمیده .

    فقط توسط همین چند مرحله دستوراتی که توضیح داده شد مراحل Restore کردن یک دیتابیس را تسهیل و تسریع می بخشد .

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

    واضحه که اگر خطایی از سمت سرور رخ بده برنامه نیز همان خطا را خواهد داد .

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

    موفق باشید .

  5. #5

    نقل قول: نرم افزار Restore کردن کامل دیتابیس SQL Server + کد برنامه

    با تشکر از برنامه خوبی که گذاشتید ...

    من در برنامه ام در زمانی که سیستم مشغول انجام عملیاتی هست از backgroundWorker استفاده کردم و متد ماسکی رو که شما در برنامتون نوشتید اجرا کردم به شکل زیر :


    backgroundWorker1.RunWorkerAsync();
    this.Cursor = Cursors.WaitCursor;

    ShowMask("Sending ...");

    //do somthing

    HideMask();

    backgroundWorker1.CancelAsync();
    this.Cursor = Cursors.Default;


    اما همچنان سیستم در زمان انجام عملیات هنگ میکند ... ( در نمونه ای که خودتون هم نوشتید این حالت هست)

    در صورتی که در متد DoWork بنویسم با ارور زیر در متد ماسک مواجه میشم:
    Cross-thread operation not valid: Control 'Pnl_Container' accessed from a thread other than the thread it was created on.

    - برای اینکه در زمان انجام عملیات ماسک روی فرم رو بگیرد و سیستم هنگ نکند چه باید کرد؟

  6. #6

    نقل قول: نرم افزار Restore کردن کامل دیتابیس SQL Server + کد برنامه

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

    من در برنامه ام در زمانی که سیستم مشغول انجام عملیاتی هست از backgroundWorker استفاده کردم و متد ماسکی رو که شما در برنامتون نوشتید اجرا کردم به شکل زیر :

    اما همچنان سیستم در زمان انجام عملیات هنگ میکند ... ( در نمونه ای که خودتون هم نوشتید این حالت هست)
    این ماسک کار خاصی انجام نمیده که از هنگ شدن فرم جلوگیری بکنه .
    هنگ شدن فرم نیز به این دلیل است که در همین thread جاری عملیات را انجام می دهیم.

    نقل قول نوشته شده توسط ostovarit مشاهده تاپیک
    در صورتی که در متد DoWork بنویسم با ارور زیر در متد ماسک مواجه میشم:
    Cross-thread operation not valid: Control 'Pnl_Container' accessed from a thread other than the thread it was created on.

    - برای اینکه در زمان انجام عملیات ماسک روی فرم رو بگیرد و سیستم هنگ نکند چه باید کرد؟
    کار با عناصر فرم در هنگام استفاده از Thread و یا BGWorker باعث این مسئله می شود .

    پیشنهاد میکنم این مقاله را مطالعه بفرمایید .
    http://msdn.microsoft.com/en-us/library/ms171728.aspx

    اگر در آینده فرصت شد برنامه را اصلاح میکنم تا عملیات در یک Thread جداگانه انجام شود.
    موفق باشید .

  7. #7

    نقل قول: نرم افزار Restore کردن کامل دیتابیس SQL Server + کد برنامه

    نقل قول نوشته شده توسط Chabok مشاهده تاپیک
    با سلام
    اگر در آینده فرصت شد برنامه را اصلاح میکنم تا عملیات در یک Thread جداگانه انجام شود.
    موفق باشید .
    مشکلم رو حل کردم ماسک تا زمان عملیات نمایش داده میشه و بعد از اون محو میشه هنگم نمیکنه ... ولی progressbar که گذاشتم توی ماسک الکی زیاد میشه واسش راه حلی پیدا نکردم که در زمان واقعی پر بشه ... من منتظر نمونه شما هستم ... از راهنماییتون ممنونم...

  8. #8

    نقل قول: نرم افزار Restore کردن کامل دیتابیس SQL Server + کد برنامه

    سلام
    ببخشيد يه برنامه مي خواستم براي پشتيبان گرفتن از بانكي كه به روش
    service based <<- Add new Item
    ساختم . براي كار كردن با اين نوع بانك ها لازم نيست به اسكيو ال وصل شد . حالا مي شه
    با كدنويسي از اين بانك backup گرفت در صورتي كه به اسكيوال Attach نباشه ؟ ممنون مي شم زودتر جواب بديد .

  9. #9
    کاربر دائمی آواتار b.paseban
    تاریخ عضویت
    آبان 1388
    محل زندگی
    گم شده وسط سورس ها
    سن
    35
    پست
    590

    نقل قول: نرم افزار Restore کردن کامل دیتابیس SQL Server + کد برنامه

    سلام دوست عزیز.
    من از ظهره که میخوام از دیتا بیسم بک آپ بگیرم اما اول روش گرفتن بک آپ رو نمیدونستم.
    حالام که روش اون رو یاد گرفتم برنامه sql server روی سیستمم نصب نیست.برنامه sql server managment studioرو دانلود کردم و نصبش کردم.اما موقع کانکت شدن ارور میده.
    کلی تاپیک زیرورو کردم تا به تاپیک شما رسیدم.فکر کردم برنامه شما بدرد کار من میخوره.اما بعد از نصب برنامه شما موقع کانکت شدن این ارور رو میده.
    از شما بخاطر این برنامه تشکر میکنم.
    اگه میشه بگین این برنامه اولا بدرد کار من میخوره یا نه ؟اگه بدرد کار من میخوره چطوری این ارور رو برطرف کنم.
    باتشکر فراوان.
    عکس های ضمیمه عکس های ضمیمه

  10. #10

    نقل قول: نرم افزار Restore کردن کامل دیتابیس SQL Server + کد برنامه

    با سلام

    این پیغام نشان دهنده نصب نبودن و یا متوقف بودن MSSQL روی Instance مورد نظر می باشد .
    از صحت نصب نسخه MSSQL خود اطمنیان حاصل نمایید .
    در پست دوم {این تاپیک} اشاره شده است .

    در مورد این که این برنامه به درد کار شما میخوره یا نه هم از اسم و شرح تاپیک مشخصه که کار برنامه چیه
    امیدوارم که به کار شما بیاد . موفق باشید

  11. #11

    Smile دانلود فیلم آموزش restore کردن دیتابیس در sql 2008

    دانلود فیلم آموزش restore کردن دیتابیس در sql 2008

    0



    در این فیلم آموزش نحوه restore کردن database در Sql server 2008 را می توانید دانلود نمایید



  12. #12

    نقل قول: نرم افزار Restore کردن کامل دیتابیس SQL Server + کد برنامه

    با سلام
    برنامه همچین خطایی دارد

  13. #13

    نقل قول: نرم افزار Restore کردن کامل دیتابیس SQL Server + کد برنامه

    نرم افزار مشکل داره داداش

برچسب های این تاپیک

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

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