Giới Thiệu
Khi làm việc với SQL Server, việc sao lưu và khôi phục dữ liệu là vô cùng quan trọng. Trong bài viết này, chúng ta sẽ hướng dẫn cách khôi phục (restore) một database từ file .bak
một cách an toàn và chính xác.
Bước 1: Chuyển Database về Chế Độ SINGLE_USER
Trước khi khôi phục, chúng ta cần chuyển database về chế độ đơn người dùng (SINGLE_USER) để tránh các kết nối đang hoạt động gây lỗi:
USE master;
ALTER DATABASE QuanLyKhoDienThoai SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
Câu lệnh trên sẽ đảm bảo rằng không có kết nối nào khác đang sử dụng database cần khôi phục.
Bước 2: Thực Hiện Khôi Phục Database
Tiếp theo, chúng ta sẽ sử dụng lệnh RESTORE DATABASE
để khôi phục database từ file .bak
:
RESTORE DATABASE QuanLyKhoDienThoai
FROM DISK = 'C:\Backup\QuanLyKhoDienThoai.bak'
WITH REPLACE,
MOVE 'QuanLyHangMay' TO 'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQL\DATA\QuanLyKhoDienThoai.mdf',
MOVE 'QuanLyHangMay_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQL\DATA\QuanLyKhoDienThoai.ldf';
Giải thích:
FROM DISK = 'C:\Backup\QuanLyKhoDienThoai.bak'
: Chỉ định đường dẫn đến file sao lưu.WITH REPLACE
: Ghi đè database hiện có.MOVE
: Dùng để chỉ định đường dẫn mới cho file dữ liệu (.mdf
) và file log (.ldf
). Bạn cần kiểm tra tên logical file trong file.bak
để thay thế đúng tên.
Bước 3: Chuyển Database về Chế Độ MULTI_USER
Sau khi khôi phục thành công, chúng ta cần chuyển database trở lại chế độ nhiều người dùng (MULTI_USER):
ALTER DATABASE QuanLyKhoDienThoai SET MULTI_USER;
Câu lệnh này cho phép nhiều người dùng có thể truy cập vào database bình thường.
Lưu Ý
- Đảm bảo SQL Server có quyền đọc file
.bak
. - Kiểm tra tên logical file trong file
.bak
trước khi sử dụng lệnhMOVE
. Bạn có thể dùng lệnh sau để kiểm tra:
RESTORE FILELISTONLY FROM DISK = 'C:\Backup\QuanLyKhoDienThoai.bak';
- Nếu SQL Server đang chạy với tài khoản không có quyền truy cập thư mục backup, bạn có thể cần cấp quyền hoặc di chuyển file
.bak
đến thư mục có quyền truy cập phù hợp.
Kết Luận
Việc khôi phục database từ file .bak
là một quy trình quan trọng giúp đảm bảo dữ liệu được khôi phục chính xác trong trường hợp cần thiết. Hy vọng bài viết này sẽ giúp bạn thực hiện thao tác này một cách dễ dàng và hiệu quả.