Trong module trước, chúng ta đã tạo ra các bản sao lưu cơ sở dữ liệu trên SQL server 2014, đây là việc làm rất quan trọng của người quản trị Database. Nhưng điều quan trọng hơn là làm sao để khôi phục lại các database này. Khi phục hồi lại dữ liệu trong một tình huống khẩn cấp, chúng ta cần có một kế hoạch rõ ràng về cách thức tiến hành và các bước để phục hồi lại dữ liệu.
Trong bài lab này hướng dẫn các bạn thực hiện phục hồi lại database bị xóa hẳn từ full backup, differential backup, transaction log backup. Phục hồi lại database bị lỗi khi đang làm việc. Phục hồi database tại một thời điểm. Bài lab này sử dụng các file backup từ module trước.
Thực hiện xong bài lab này, bạn có thể thực hiện phục hồi dữ liệu trên SQL server 2014
THỰC HIỆN PHỤC HỒI DỮ LIỆU SQL SERVER 2014
A: phục hồi lại database bị xóa:
B1. Giả lập database bị xóa:
vào SSMS phải chuột vào Database cần xóa chọn delete, xuất hiện cửa sổ Delete Object ấn OK
Database đã bị xóa
B2. Phục hồi lại database bị xóa hẳn bằng SSMS:
2.1 Phục hồi từ full backup:
Phải chuột vào database chọn Restore database
Tại cửa sổ Restore Database, chọn option Device ấn nút …
Tại cửa sổ Select backup device, trong phần Backup media type chọn Backup Device, Trong phần Backup media ấn Add
Chọn Backup_full OK
Trở về cửa sổ Select backup devices ấn OK
Trong phần Database chọn database cần phục hồi, có thể ấn timeline
Để chọn thời gian phục hồi (chọn bản mới nhất) OK Ok thực hiện phục hồi
Phục hồi thành công
Database đã được phục hồi nhưng chưa có table BangDiem
2.2 phục hồi Differential backup:
Phải chuột vào Databae chọn Restore Database
Tại cửa sổ Restore Database, chọn option Device ấn nút ….
Tại cửa sổ Select backup device, trong phần Backup media type chọn Backup Device, Trong phần Backup media ấn Add
Chọn cả 2 devices là Backup_full và Backup Differential OK
Trở về cửa sổ Restore database, trong phần Database chọn database cần restore OK
Sau khi restore xong, kiểm tra thấy đã có table BangDiem
2.3 phục hồi transaction log:
tiếp tục phải chuột vào Database chọn Restore Database
Tại cửa sổ Restore Database, chọn option Device ấn nút ….
Tại cửa sổ Select backup device, trong phần Backup media type chọn Backup Device, Trong phần Backup media ấn Add
Chọn cả 3 devices Backup_full, Backup Differential và Backup_Transaction_log OK
Tại Restore database, trong phần Database chọn database cần restore OK. hoàn tất
B. Phục hồi lại database bị lỗi khi đang làm việc:
Giả lập database bị lỗi, phải chuột vào tên database cần giả lập chọn properties chọn files để xem nơi lưu trữ data file ok, phải chuột vào tên database lại chọn tasks take offline, sau đó vào nơi lưu trữ data file xóa file .mdf (trong bài lab này là DemoDB1.mdf)
Database đang bị lỗi
Thử cố gắn online database, mở cửa sổ New query nhập vào lệnh:
Alter Database DemoBD1 set online; ấn Execute sẽ thấy thông báo lỗi
b.1 thực hiện tial-log backup,
Tại cửa sổ new query nhập vào lệnh:
Backup Log Demodb1 to disk =’E:\Backup Demo1\Demodb1_tialLog.bak’
With No_Truncate;
ấn Execute
b.2 Phải chuột vào Database cần restore chọn tasks Restore Database
Tại cửa sổ Restore Database, chọn option Device ấn nút ….
Tại cửa sổ Select backup device, trong phần Backup media type chọn Backup Device, Trong phần Backup media ấn Add, chọn tất cả các device backup và chọn file tial-log backup như trong hình OK
Tại cửa sổ Restore Database chọn Option, nếu muốn xem các lệnh backup thì vào Script chọn New Query Editor Windows, trong phần Recovery State chọn Restore With Recovery OK
Database đã trở lại làm việc, và xem các lệnh Restore
Tạo database mới bằng lệnh:
CREATE DATABASE DEMODB4;
go
Tạo table khachhang trong database DemoDB4
USE DEMODB4
GO
CREATE TABLE KhachHang
(MAKH int identity primary key,
TENKH nvarchar(50),
EMAIL nvarchar(50))
GO
Thực hiện backup database DemoDB4
BACKUP DATABASE [DEMODB4] TO DISK = ‘E:\Backup DemoDB4\demodb4.bak’
WITH FORMAT, INIT, NAME = ‘DEMODB4 Database Backup’
GO
Thêm thông tin vào table Khachhang
INSERT INTO DemoDB4.dbo.KhachHang
VALUES (‘Chung tan Loc’, ‘chungtanloc@gmail.com’)
GO
Phải chuột vào table khachhang chọn edit top 200 rows, xem lại thông tin vừa nhập
Xem thời gian hiện tại bằng lệnh
SELECT getdate()
Ghi nhận lại thời gian
Tiếp tục thêm thông tin thứ 2 vào table khachhang
INSERT INTO DemoDB4.dbo.KhachHang
VALUES (‘Do Quang Ngoc’, ‘doquangngoc@gmail.com’)
GO
Phải chuột vào table khachhang chọn edit top 200 rows, xem lại thông tin vừa nhập
Thực hiện backup transaction log
BACKUP LOG [Demodb4] TO DISK = ‘E:\Backup DemoDB4\demodb4.bak’
WITH NOFORMAT, NOINIT, NAME = ‘demodb4 Log Backup’
GO
Sau khi backup xong, tiếp tục thêm thông tin thứ 3 vào table khachhang
INSERT INTO DemoDB4.dbo.KhachHang
VALUES (‘Nguyen Ho Phi Long’, ‘Nhphilong@gmail.com’)
GO
Thục hiện backup log lần thứ 2
BACKUP LOG [Demodb4] TO DISK = ‘E:\Backup DemoDB4\demodb4.bak’
WITH NOFORMAT, NOINIT, NAME = ‘demodb4 Log Backup’
GO
Ghi nhận lại thời gian lần 2
SELECT getdate()
Phải chuột vào table khachhang chọn edit top 200 rows, xem thông tin trong table
Thực hiện restore lại thời thời điểm trước khi nhập mẫu tin thứ 3
Phải chuột vào database DemoDB4 chọn tasks RestoreDatabase
Trong phần source chọn database Demodb4, trong phần Destination chọn database DemoDB4, xem tất cả các đã file backup của database này, ấn Timeline…
Tại cửa sổ Backup Timeline chọn Specific date and time, chọn ngày và giờ tại thời điểm trước khi nhập mẫu tin thứ 3 Ok
Xem lại các backup file sẽ restore OK
Phải chuột vào table khachhang chọn edit top 200 rows, xem thông tin trong table sau khi phục hồi (chỉ có 2 mẫu tin)
- Một cách khác là bạn có thể dùng các lệnh sau để phục hồi lại database tại một thời điểm, trước tiên bạn dùng lệnh sau Để xem thông tin các file backup
Use Demodb4;
Restore headeronly from disk = ‘E:\Backup DemoDB4\demodb4.bak’;
Go
Tiếp tục thực thi các lệnh sau:
use master
go
backup log demodb4 to disk =’E:\Backup DemoDB4\Tail_log.bak’
with Norecovery;
restore database demodb4
from disk = ‘E:\Backup DemoDB4\demodb4.bak’
with file =1, norecovery;
restore log demodb4
from disk = ‘E:\Backup DemoDB4\demodb4.bak’
with file =2, norecovery;
restore log demodb4
from disk = ‘E:\Backup DemoDB4\Tail_log.bak’
——
Mr CTL – CTL.VN