PDA

View Full Version : سوال: RESTORE DATABASE و روش استفاده



reza_edu
دوشنبه 17 آبان 1389, 00:45 صبح
سلام مهندسان گرامی
به این عکس ها و کد ها نگاه کنید:
http://up.iranblog.com/Files73/b067c588bd6044d8913e.jpg


Dim str As String
FolderBrowserDialog1.RootFolder = Environment.SpecialFolder.DesktopDirectory
FolderBrowserDialog1.ShowNewFolderButton = True
FolderBrowserDialog1.ShowDialog()
str = FolderBrowserDialog1.SelectedPath
Label2.Text = str
Dim smd As SqlCommand = New SqlCommand("RESTORE DATABASE ignore FROM DISK='" & str & "reza.bak'", conn)
conn.Open()
smd.ExecuteNonQuery()
conn.Close()



http://up.iranblog.com/Files73/1bcd0a14c4ca4d64b9a7.jpg


Dim Str_FileName As String
FolderBrowserDialog1.ShowDialog()
Str_FileName = FolderBrowserDialog1.SelectedPath

Dim Obj_SqlCommand As New SqlCommand
Obj_SqlCommand.CommandText = "USE ignore"
Obj_SqlCommand.Connection = conn
conn.Open()
Obj_SqlCommand.ExecuteNonQuery()
conn.Close()


Dim Obj_SqlCommand1 As New SqlCommand
Obj_SqlCommand1.CommandText = "ALTER DATABASE ignore SET OFFLINE "
Obj_SqlCommand1.Connection = conn
conn.Open()
Obj_SqlCommand1.ExecuteNonQuery()
conn.Close()


Dim Obj_SqlCommand2 As New SqlCommand
Obj_SqlCommand2.CommandText = "RESTORE DATABASE ignore FROM DISK ='" & Str_FileName & "reza.bak'"
Obj_SqlCommand2.Connection = conn
Dim Obj_SqlDataAdapter As New SqlDataAdapter(Obj_SqlCommand2)
conn.Open()
Obj_SqlCommand2.ExecuteNonQuery()
conn.Close()


Dim Obj_SqlCommand3 As New SqlCommand
Obj_SqlCommand3.CommandText = "ALTER DATABASE ignore SET ONLINE"
Obj_SqlCommand3.Connection = conn
conn.Open()
Obj_SqlCommand3.ExecuteNonQuery()
conn.Close()

آقایون ، برادران ، ای جماعت من همه تاپیک هارو نگاه کردم ، ای دوستانی که میگید این مسائل قبلا مطرح شده بله شما درست میگید خیلی در موردش بحث شده خیلی من همه رو تا جائی که میتونستم خوندم تا دیگه نخوام مذاحم احوالات شما بشم اما بخدا نشد:گریه: من دو روش برای برگرداندن اطلاعات دیتابیس دیدم که از هر دوکه استفاده کردم اولی که میگفت دیتابیس در حال استفاده هست نمیشه دومی هم میگفت به دیتابیس لاگین نمیشه من موندم این وسط چی کار کنم :گریه::گریه::گریه::گریه::گریه: :گریه::گریه::گریه::گریه::گریه: :گریه::گریه::عصبانی::عصبانی:: صبانی::عصبانی: بلاخره من حرف کدومشون رو گوش کنم؟؟؟؟؟؟؟؟؟؟؟؟:عصبانی++::ع بانی++::عصبانی++::عصبانی++::عص انی++:
قابل توجه دو ستان عکس زیر :
http://up.iranblog.com/Files73/2756309b779c488db954.jpg
همشون فعالا !!!!!!!!!! پس از چیه؟
این هم یه روش دیگه که از خود امسدین خوندم :


RESTORE DATABASE MyAdvWorks
FROM MyAdvWorks_1
WITH NORECOVERY,
MOVE 'MyAdvWorks' TO
'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewAdvWorks.mdf',
MOVE 'MyAdvWorksLog1'
TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewAdvWorks.ldf'
RESTORE LOG MyAdvWorks
FROM MyAdvWorksLog1
WITH RECOVERY

با اینهم (البته با تعقیرات) نشد:افسرده::افسرده::افسرده:: فسرده::افسرده::افسرده::افسر ه::افسرده: کمک؟

shahab2025
دوشنبه 17 آبان 1389, 15:06 عصر
سلام
والا من دو تا اشکال میبینم

1- قبل از بازیابی باید بر روی دیتابیس Master بری
2-لاگینت به sql معتبر نیست

reza_edu
دوشنبه 17 آبان 1389, 17:02 عصر
سلام دوست عزیز ممنون که بازم حداقل یه جوابی دادی نه دوست عزیز میدونم چه میگی اما بازم با اون گفته شما هیچ فرقی نمیکنه:ناراحت:

kebriya
سه شنبه 18 آبان 1389, 11:35 صبح
من با این کد کار کردم جواب میده ببینین مشکلتون حل میشه




OpenFileDialog1.FileName = ""
OpenFileDialog1.Filter = "backup files (*.bak)|*.bak"
OpenFileDialog1.ShowDialog()
Try
Dim con As SqlConnection
con = New SqlConnection()
con.ConnectionString = "Data Source=(local); Initial Catalog=master;Integrated Security=True"
con.Open()
Dim MyserverConnection As New ServerConnection(con)
Dim Myserver As New Server(MyserverConnection)
Dim currentDb = Myserver.Databases("dabirkhane")
If currentDb IsNot Nothing Then
Myserver.KillAllProcesses("dabirkhane")
End If
Dim query = "DROP DATABASE dabirkhane"
Dim cmd = New SqlCommand()
cmd.CommandText = query
cmd.Connection = con
cmd.ExecuteNonQuery()

query = "RESTORE DATABASE dabirkhane FROM disk ='" & OpenFileDialog1.FileName & "'"
cmd = New SqlCommand()
cmd.CommandText = query
cmd.Connection = con
cmd.ExecuteNonQuery()
con.Close()
MessageBox.Show("عملیات بازیابی با موفقیت انجام شد")
Catch
MessageBox.Show("مسیری انتخاب نشد")
End Try