- [C#] Viết ứng dụng Auto Fill list Textbox from clipboard Winform
- [TOOL] Chia sẻ phần mềm thay đổi thông tin cấu hình máy tính
- [C#] Hướng dẫn Export dữ liệu ra file Microsoft Word Template
- [C#] Chia sẻ source code tool kiểm tra domain website
- [C#] Hướng dẫn tạo file PDF sử dụng thư viện QuestPDF
- [C#] Hướng dẫn tạo ứng dụng dock windows giống Taskbar
- [C#] Chia sẻ source code sử dụng Object Listview trên Winform
- [VB.NET] Chia sẻ source code quản lý thu chi mô hình 3 lớp Winform
- [DATABASE] Xóa lịch sử danh sách đăng nhập tài khoản trên SMSS Sqlserver Management Studio
- [C#] Sử dụng FolderBrowserDialog Vista trên Winform
- [DEVEXPRESS] Chia sẻ tool Winform UI Templates Early Access Preview (EAP)
- [C#] Chia sẻ source code Spin Content (Trộn nội dung văn bản theo từ đồng nghĩa) trên Winform
- [VB.NET] Chia sẻ source code lịch âm dương và hẹn lịch nhắc việc
- [C#] Hướng dẫn đọc thông số thiết bị Thiết bị kiểm tra Pin (HIOKI BATTERY HiTESTER BT3562)
- [VB.NET] Hướng dẫn giải captcha sử dụng dịch vụ AZCaptcha API trên winform
- [C#] Hướng dẫn chứng thực đăng nhập ứng dụng bằng vân tay (Finger Print) trên máy tính
- [C#] Color Thief cách xuất màu sắc thiết kế từ hình ảnh
- [C#] Cách tạo bản quyền và cho phép dùng thử ứng dụng Winform
- [C#] Hướng dẫn sử dụng trình duyệt web Chrome convert HTML sang tập tin file PDF
- [C#] Kết nôi điện thoại Android, IOS với App Winform via Bluetooth
Khôi phục dữ liệu trước thời điểm xóa nhầm sqlserver 2008
Hôm nay, mình xin hướng dẫn các bạn khôi phục dữ liệu lại trước thời điểm khi các bạn xóa nhầm một hay nhiều bảng nào đó trong cơ sở dữ liệu.
Làm việc với database là công việc thường xuyên đối với coder, nhưng một này nào đó, các bạn lỡ tay viết câu truy vấn delete thiếu điều kiện hay nhầm bảng table, lúc đó, dữ liệu mất sạch.
Dữ liệu hiện tại thì chỉ có backup ngày hôm qua, Bây giờ, các người sử dụng phần mềm bạn chắc chắn sẽ không truy cập được. Bây giờ, chắc chắn bạn đang rất lo lắng, chẳng biết xử lý như thế nào. Sếp mà biết được thì xong, chuẩn bị nhận lương rồi ra về :) hii.
Mình cũng đã từng trải qua, cái cảm giác này rồi, bị thằng bạn càm ràm cả ngày, nào là chầu nhậu, chầu nước... kính thưa các thứ. :)))
Bây giờ, mình sẽ làm một ví dụ để các bạn dễ hình dung.
- Đầu tiên mình sẽ tạo database tên SINHVIEN, và bảng table tbl_sinhvien(masv, tensv).
USE master
GO
IF DB_ID('SINHVIEN') IS NOT NULL DROP DATABASE SINHVIEN
GO
CREATE DATABASE SINHVIEN
GO
USE SINHVIEN
GO
CREATE TABLE dbo.tbl_sinhvien(masv INT IDENTITY, tensv NVARCHAR(50) )
GO
INSERT INTO dbo.tbl_sinhvien(tensv)
SELECT N'Nguyễn Thảo' UNION ALL
SELECT N'Cái Trí Minh' UNION ALL
SELECT N'Trần Đình Hoàng' UNION ALL
SELECT N'Võ Sơn Băng'
- Bây giờ, mình sẽ tiến hành backup toàn bộ database SINHVIEN.
BACKUP DATABASE SINHVIEN TO DISK='D:SINHVIEN.BAK' WITH INIT
- Mình tiếp tục tiến hành thêm dữ liệu mới, sau khi backup .
INSERT INTO TBL_SINHVIEN(TENSV) VALUES(N'Trần Đình Thành')
GO
INSERT INTO TBL_SINHVIEN(TENSV) VALUES(N'Đoàn Chính Thuần')
GO
INSERT INTO TBL_SINHVIEN(TENSV) VALUES(N'Trương Phi')
- Sau đó, do sơ xuất mình chạy nhầm câu lệnh sql delete
DELETE FROM TBL_SINHVIEN
- Đến đây, là dữ liệu của bạn đã mất sạch, giờ nếu mình khôi phục dữ liệu vừa backup vào thì ba dòng dữ liệu mình mới thêm vào sẽ không có. Các bạn đừng lo lắng, bây giờ mình cần làm đầu tiên là đóng database lại, để không cho ai có thể cập nhật dữ liệu vào. Bằng cách là chuyển sang chế độ SINGLE_USER.
ALTER DATABASE SINHVIEN SET SINGLE_USER WITH ROLLBACK IMMEDIATE
- Tiếp đến mình cần ghi lại thời điểm chính xác trước khi chạy câu lệnh xóa dữ liệu.
SELECT GETDATE()
- ví dụ, khi mình chạy nhầm câu lệnh xóa là thời điểm 2016-03-18 20:27:16.473, vậy mình cần khôi phục lại dữ liệu trước thời điểm đó. ví dụ: 2016-03-18 20:25:16.473
- Bây giờ mình tiếp tục backup log lại như sau:
BACKUP LOG SINHVIEN TO DISK='D:SINHVIEN.TRN' WITH INIT
+ Bây giờ, mình tiến hành khôi phục dữ liệu full backup
USER MASTER
GO
RESTORE DATABASE SINHVIEN FROM DISK='D:SINHVIEN.BAK' WITH NORECOVERY
- Tiến hành khôi phục lại backup log
RESTORE DATABASE SINHVIEN FROM DISK='D:SINHVIEN.TRN' WITH STOPAT='2016-03-18 20:25:16.473'
- Đến đây, là mình đã thành công.
Nhưng hiện tại database mình đang ở chế độ SINGLE_USER bây giờ mình sẽ chuyển lại sang chế độ MULTI_USER để mọi người có thể truy cập lại và cập nhật dữ liệu.
ALTER DATABSE SINHVIEN SET MULTI_USER
Các bạn có thể tham khảo video hướng dẫn:
Cám ơn các bạn đã xem bài viết. Hãy like and share giúp mình nha các bạn.
Các bạn có thể Đăng ký kênh Youtube của mình ở góc phải bên trên màn hình.
Mọi thắc mắc về bài viết các bạn có thể hỏi ở http://hoidap.laptrinhvb.net để được support.