Kadang-kadang, pengguna dapat melakukan operasi PEMBARUAN atau HAPUS operasi dalam database SQL Server tanpa menerapkan kondisi WHERE. Ini adalah alasan yang sangat umum untuk menemukan kehilangan data dari tabel SQL Server. Karena database SQL Server adalah DBMS relasional yang sangat populer di antara sektor korporasi dan bisnis, masalah kehilangan data semakin membesar. Jadi pengguna harus mengetahui metode untuk memulihkan data yang dihapus dari Tabel SQL Server jika terjadi kecelakaan.
Baris yang dihapus dapat dipulihkan jika waktu penghapusannya diketahui. Ini dapat dilakukan melalui penggunaan Nomor Urutan Log (LSNs). LSN adalah pengidentifikasi unik yang diberikan untuk setiap catatan yang ada dalam log transaksi SQL Server. Bagian yang akan datang akan membahas proses untuk memulihkan data dan tabel SQL Server yang dihapus dengan bantuan log Transaksi dan LSN.
Disarankan: Untuk menghindari pendekatan LSN manual yang panjang dan salah untuk memulihkan catatan yang dihapus dari tabel SQL, gunakan perangkat lunak pihak ketiga yang canggih seperti SQL Database Repair.
Memulihkan data yang dihapus dari tabel SQL Server oleh Log transaksi
Ada beberapa prasyarat yang harus dipenuhi sebelum kita memulai proses untuk memulihkan data yang dihapus dari tabel SQL. Untuk dengan mudah memulihkan baris yang dihapus dari tabel di database SQL Server, harus memiliki model pemulihan BULK-LOGGED atau FULL pada saat penghapusan pertama kali terjadi. Diperlukan beberapa tindakan cepat agar log masih tersedia untuk melakukan pemulihan data.
Ikuti langkah-langkah yang diberikan di bawah ini untuk memulihkan data yang dihapus dari SQL Server 2005, 2008, 2012, 2014, dan 2016 dengan menggunakan log transaksi.
Langkah 1
Periksa jumlah baris yang ada dalam tabel dari mana data telah terhapus secara tidak sengaja menggunakan kueri yang disebutkan di bawah ini:
SELECT * FROM Table_name
Langkah 2
Ambil cadangan log transaksi dari database menggunakan kueri yang diberikan di bawah ini:
USE Databasename GO BACKUP LOG [Databasename] TO DISK = N'D:\Databasename\RDDTrLog.trn' WITH NOFORMAT, NOINIT, NAME = N'Databasename-Transaction Log Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO
Langkah 3
Untuk memulihkan data yang dihapus dari Tabel SQL Server, kita perlu mengumpulkan beberapa informasi tentang baris yang dihapus. Jalankan kueri yang diberikan di bawah ini untuk mencapai tujuan ini
USE Databasename GO Select [Current LSN] LSN], [Transaction ID], Operation, Context, AllocUnitName FROM fn_dblog(NULL, NULL) WHERE Operation = 'LOP_DELETE_ROWS'
Langkah 4
Pada langkah ini, kita akan menemukan waktu spesifik di mana baris-baris dihapus menggunakan ID Transaksi 000: 000001f3. Ini dilakukan dengan mengeksekusi kueri yang diberikan sebagai berikut:
USE Databasename GO SELECT [Current LSN], Operation, [Transaction ID], [Begin Time], [Transaction Name], [Transaction SID] FROM fn_dblog(NULL, NULL) WHERE [Transaction ID] = ‘000:000001f3' AND [Operation] = 'LOP_BEGIN_XACT' asa
On executing this query we will get the value of current Log Sequence Number (LSN) (let’s say 00000020:000001d0:0001).
Langkah 5
Sekarang kita akan memulai proses pemulihan untuk memulihkan data yang dihapus dari baris Tabel SQL Server yang hilang. Ini dilakukan menggunakan kueri di bawah ini:
USE Databasename GO RESTORE DATABASE Databasename_COPY FROM DISK = 'D:\Databasename\RDDFull.bak' WITH MOVE 'Databasename' TO 'D:\RecoverDB\Databasename.mdf', MOVE 'Databasename_log' TO 'D:\RecoverDB\Databasename_log.ldf', REPLACE, NORECOVERY; GO
Langkah 6
Sekarang terapkan log transaksi untuk memulihkan baris yang dihapus dengan menggunakan LSN 00000020: 000001d0: 0001:
USE Databasename GO RESTORE LOG Databasename_COPY FROM DISK = N'D:\Databasename\RDOTrLog.trn' WITH STOPBEFOREMARK = ‘lsn:0x00000020:000001d0:0001' Note: Since LSN values are in Hexadecimal form and for restoring tables using this LSN, we need to convert it into decimal form. For this purpose, we add 0x just before the LSN as shown above.
Langkah 7
Proses untuk memulihkan catatan yang dihapus dari tabel SQL akan berhasil diselesaikan. Sekarang periksa apakah catatan yang dihapus kembali dalam database bernama Databasename_Copy.
USE Databasename_Copy GO Select * from Table_name
Kerugian Pendekatan Log Transaksi
Metode yang sangat memakan waktu untuk memulihkan data yang dihapus dari Tabel SQL Server, karena melibatkan beberapa permintaan panjang untuk dieksekusi.
Sangat rumit untuk diterapkan bagi pengguna yang tidak memiliki pengetahuan teknis yang memadai.
Peluang lebih besar untuk kehilangan data karena kesalahan saat aplikasi dan pelaksanaan kueri.
Kesimpulan
Meskipun metode nomor urut log dapat mengembalikan catatan yang dihapus dari tabel SQL, ini bukan opsi yang disarankan untuk pengguna karena kerumitan dan kebosanannya. Sebagai gantinya, disarankan untuk menggunakan solusi otomatis untuk memulihkan data yang dihapus dari Tabel SQL Server.
Saya ingin bertanya tentang SQL saya yang kehapus, tapi sudah saya ulang membuat SQL saya.Tapi tampilan nya masih error. Kenapa ya kaka? bantu solusinya dong. Padahal saya tidak masalah kalau data saya tidak bisa di pulihkan asal saya bisa mengulang membuat website saya baru dari awal
tulisan error nya seperti apa ka?
kak bagaimana ya cara mengembalikan data inlislite yang berada di server, soalnya saya ngak sempat backup data dihardisk, mohon bantuanya kak, apakah bisa dipulihkan dari LSN