Makale Özeti

Bu makalemizde backup aldığımız veritabanını restore yapacağız

Makale

 

Bundan önceki makalemizde ufak bir program aracılığı ile backup almıştık.Şimdi ise aldığımız backup'ı restore yapacağız.Bunu da RESTORE DATABASE ile yapacağız.

 

Sub RestoreDatabase(ByVal connString As String, ByVal dbName As String, ByVal backupFile As String)

 

        Dim cn As New SqlConnection(connString)

        Try

        Dim cmdBackup As New SqlCommand("RESTORE DATABASE [" & dbName & _

                "] FROM DISK = " & backupFile & "", cn)

            cn.Open()

            cmdBackup.ExecuteNonQuery()

        Finally

            cn.Close()

        End Try

End Sub

 

MSDN de restore database sözdizimi şu şekilde gösteriliyor:

RESTORE DATABASE { database_name | @database_name_var }
[ FROM < backup_device > [ ,...n ] ]
[ WITH
    [ RESTRICTED_USER ]
    [ [ , ] FILE = { file_number | @file_number } ]
    [ [ , ] PASSWORD = { password | @password_variable } ]
    [ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
    [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
    [ [ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ]
            [ ,...n ]
    [ [ , ]
KEEP_REPLICATION ]
    [ [ , ] { NORECOVERY | RECOVERY | STANDBY = undo_file_name } ]
    [ [ , ] { NOREWIND | REWIND } ]
    [ [ , ] { NOUNLOAD | UNLOAD } ]
    [ [ , ] REPLACE ]
    [ [ , ] RESTART ]
    [ [ , ] STATS [ = percentage ] ]
]

Bir kaç temel özelliği inceleyelim ; 

 

RESTRICTED_USER :

Restore'yi hangi database user ile yapacağımızı belirler.Örneğin dbo, dbcreator, sysadmin gibi.

 

FILE :

Restore edilecek dosya adı.

 

MOVE :

Default olarak database'in restore edilecek backup'ı nerede ise oradan restore yapılır.Eğer RESTORE ifadesi veritabanını aynı servera veya farklı servera kopyalama işlemi için kullanılacaksa MOVE seçeneği  mevcut dosyaların çatışmasını önleyecektir.

 

RECOVERY:

Herhangi bir bağımsız işlemi roll back yapması için restore işlemine bilgi verir. Eğer RECOVER, NORECOVER veya STANDBY seçenekleri belirtilmemişse default olarak RECOVERY uygulanır.NORECOVERY seçeneği bu seçeneğin tam tersidir.

 

REWIND:

SQL Server kaydı geri saracak ve serbest bırakacaktır. Eger NOREWIND veya REWIND seçenek olarak belirtilmemişse, REWIND seçeneği geçerli olacaktır.

 

PASSWORD:

Oluşturulacak olan backupa şifre konup konmayacağını belirler.

 

STATS [ = yuzde ] :

Belirlediğiz yüzde gerçekleştiğinde mesaj verir.Örneğin yüzdeyi 20 olarak belirlediysek her %20lik dilimde mesaj gösterir.Eğer yüzde kısmı boş bırakılırsa default olarak her %10luk dilimde mesaj gösterir.

 

 

Şimdi işlemizi tamamlayalım :

 

Private Sub btnRestore_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRestore.Click

        Try

            RestoreDatabase("server=(local);trusted_connection=true", "test", "test.bak")

            lblsonuc.Text = "Restore Yapıldı!!!"

 

        Catch ex As Exception

            lblsonuc.Text = ex.InnerException.ToString

        End Try

End Sub

 

 

Böylece backup'ını aldığımız veritabanı restore yapılmış oldu.

 

İyi Çalışmalar

 

Okan Tekeli

okan.tekeli@dotnetcracks.com