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

نام تاپیک: راهنمایی از دوستان و اساتید در باره بازگرداندن اطلاعات دیتابیس

  1. #1
    کاربر دائمی آواتار aminghaderi
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    مشهد
    پست
    1,557

    راهنمایی از دوستان و اساتید در باره بازگرداندن اطلاعات دیتابیس

    با سلام و احترام ، خدمت دوستان و اساتید گرامی.
    من در webAPP می خوام یه قسمت برای بازگردانی فایل پشتیبان (BackupFile.bak) داشته باشم و برای این کار با کلی تحقیق توانستم کد زیر رو بنویسم :



    CommandText = "RESTORE DATABASE [Sab_DB]" +
    " FROM DISK = 'E:\\AS.bak'" +
    " WITH " +
    " MOVE 'Jame_DB' TO 'E:\\ Sab\\App_Data\\Sab_DB.mdf' ," +
    " MOVE 'Jame_DB_Log' TO 'E:\\Sab\\App_Data\\SabDB_Log.LDF' ," +
    " REPLACE";


    حالا خطایی که توسط SQLSxpress تولید و ارائه می شود ، چنین است :

    Message="The file 'E:\\Sab\\App_Data\\Sab_DB.mdf' cannot be overwritten. It is being used by database '1AD64BE9D3FDE30412CF9AADB8E8E5BB_ES WEB PROJECTS\\01 - SABDB.MDF'.\r\nFile 'Jame_DB' cannot be restored to 'E:\\Sab\\App_Data\\SabDB.mdf'. Use WITH MOVE to identify a valid location for the file.\r\nThe file 'E:\\Sab\\App_Data\\SabDB_Log.LDF' cannot be overwritten. It is being used by database '1AD64BE9D3FDE30412CF9AADB8E8E5BB_ES WEB PROJECTS\\01 - SAB\\APP_DATA\\SABDB.MDF'.\r\nFile 'Jame_DB_log' cannot be restored to 'E:\\Sab\\App_Data\\Sab_DB_Log.LDF'. Use WITH MOVE to identify a valid location for the file.\r\nProblems were identified while planning for the RESTORE statement. Previous messages provide details.\r\nRESTORE DATABASE is terminating abnormally."
    لطفا راهنمایی فرمایید :
    1- چطوری (با چه کدی) باید توسط T-SQL پایگاه رو overwritten کنم؟
    2- چطوری می تونم It is being used by database را حل کنم؟؟

    با تشکر فراوان

  2. #2
    کاربر دائمی آواتار aminghaderi
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    مشهد
    پست
    1,557

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

    اساتید جوابی ندارند؟؟
    چطور ممکنه SQLManegment امکان ریستور فایل بکاب یک دیتابیس رو بروی یک دیتابیس دیگر داشته باشه ، حالا در دستورات نشه این کار رو کرد؟؟؟؟
    قطعه کد بالا این کار رو می خواهد انجام دهد که با پیام cannot be overwritten مواجه می شود؟!
    من که اعتقاد دارم غیر ممکنه کار شدنی نباشه چون نمون آن رو قبلا دیدم ولی وقت برای تحقیق و پژوهش ندارم.

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

  3. #3

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

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

  4. #4
    کاربر دائمی آواتار sanay_esh
    تاریخ عضویت
    تیر 1386
    محل زندگی
    برنامه نویس !
    سن
    39
    پست
    449

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

    با سلام میتونی از این استفاده کنی
      Str = "use master select Dbid as Dbid from Sysdatabases where name='DBNAME'"
    Da.SelectCommand = New SqlCommand(Str, CnnMaster)

    Da.Fill(Ds, "Tmp")
    DbId = Ds.Tables("Tmp").Rows(0).Item(0)

    Try
    Ds.Tables("Tmp1").Clear()
    Catch ex As Exception

    End Try
    Str = "use Master select spid as pid from Sysprocesses where dbid='" + DbId.ToString + "'"
    Da.SelectCommand = New SqlCommand(Str, CnnMaster)

    Da.Fill(Ds, "Tmp1")

    If Ds.Tables("Tmp1").Rows.Count > 0 Then
    For I = 0 To Ds.Tables("Tmp1").Rows.Count - 1
    Pid = Ds.Tables("Tmp1").Rows(I).Item(0)
    cmnd.CommandText = "Kill " + Pid.ToString
    cmnd.CommandType = CommandType.Text
    cmnd.Connection = CnnMaster
    Try
    cmnd.ExecuteNonQuery()
    Catch ex As Exception

    End Try
    Next
    End If


    بعدش هم برو این دستور رو اجرا کن همین به همین راحتی !!
     Str = "RESTORE DATABASE [DBNAME] FROM  DISK = N'" + strPath2 + "' WITH  FILE = 1,  NOUNLOAD ,  STATS = 10,  RECOVERY "

  5. #5
    کاربر دائمی آواتار aminghaderi
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    مشهد
    پست
    1,557

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

    با سلام میتونی از این استفاده کنی
    ممنون از کد هایی که قرار دادید ، می شه کمی توضیح بدید این قطعه دقیقا چکار می کنه؟؟

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

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