Backup/Restore Database MS Sql Server

Data yang tersimpan di database makin lama akan bertambah banyak. Jumlah yang demikian besar akan memperlambat proses query yang akan dilakukan. Sehingga perlu adanya tindakan backup/restore database untuk melengkapi software yang kita buat.

Untuk membackup database, anda dapat menggunakan tool pada MS SQL server dan mengetikkan perintah seperti ini:

backup database NamaDatabase to disk =  'c:\NamaBackup.dat'

sedangkan untuk restore database adalah sebagai berikut:

restore database NamaDatabase from disk =  ' c:\NamaBackup.dat'

 Jika backup dan restore dilakukan tiap hari, maka pengetikkan diatas berulang kali akan terasa membosankan. Untuk mengatasi hal tersebut, kita membutuhkan sedikit programming.Baik pada backup maupun restore database, kita hanya membutuhkan obyek TConnection, TAdoQuery saja. Hubungkan property Connection pada TAdoQuery pada obyek TConnection. Ketika obyek TConnection di buka, maka untuk selanjutnya tinggal tugas TAdoQuery untuk bekerja.


Atur TConnection seperti berikut:

with Connetion1 do
begin
  Close;
  ConnectionString :=    
            'Provider=SQLOLEDB.1;' +
            'Password=' + PasswordServer + ';' +
            'Persist Security Info=True;' +
            'User ID=' + UserNameServer + ';' +
            'Initial Catalog=' + NamaDatabaseServer + ';' +
            'Data Source=' + NamaServer;
  LoginPrompt := false;
  Open;   
end; 


BACKUP DATABASE
Atur TAdoQuery seperti berikut:

with AdoQuery1 do
begin
    Close;
    Clear;
    CommandTimeout := 0;
    Add('backup database NamaDatabase to disk = ' + QuotedStr(NamaFile));
    ExecSQL;
end;


RESTORE DATABASE

Restore database agak sedikit berbeda dari pengetikan di tool MS SQL Server. Hal-hal yang mempengaruhi kesuksesannya adalah: Pada saat terjadi restore, database hanya boleh diakses oleh user tunggal. Untuk melakukan hal ini, kita perlu mengubah database ke user tunggal dengan perintah berikut:


alter database NamaDatabase set SINGLE_USER with ROLLBACK immediate

Setelah itu, file database yang dibackup tidak boleh dipegang oleh siapapun. Untuk melaksanakan hal ini, kita dapat menggantinya dengan memegang database master  dengan perintah berikut:


use master

setelah itu barulah file database backup di restore:

restore database NamaDatabase from disk = ' + QuotedStr(edtPathFile.Text)


Pelaksanaan eksekusi dari perintah-perintah diatas dapat saja melewati batas waktu dari komponent TAdoQuery. Agar waktu yang diberikan tanpa batas, anda dapat memberikan 

CommandTimeout := 0;


Berikut ini adalah kode program lengkap penjelasan diatas:


with dm.qryEntry , SQL do
begin
     Close;
     Clear;
     CommandTimeout := 0;
     Add('alter database NamaDatabase set SINGLE_USER with ROLLBACK immediate');
     ExecSQL;

    Close;
    Clear;
    CommandTimeout := 0;
    Add('use master');
    ExecSQL;

    Close;
    Clear;
    CommandTimeout := 0;
    Add('restore database NamaDatabase from disk = ' + QuotedStr(edtPathFile.Text));
    ExecSQL;
end;

Backup/Restore Database MS Sql Server Rating: 4.5 Diposkan Oleh: Good Dreamer

0 comments:

Posting Komentar

Diberdayakan oleh Blogger.