Pulihkan Data yang Dihapus Dari Tabel SQL Menggunakan Log Transaksi dan LSN

()
Read Time:3 Minute, 30 Second

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.

sumber

1 0

About Post Author

Wong Ndeso

Travel, Ride, Ngoprek apa aja yang bisa di oprek
Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleppy
Sleppy
0 %
Angry
Angry
0 %
Surprise
Surprise
100 %

How useful was this post?

Click on a star to rate it!

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Bahasa »