btvn.vn
Tìm kiếm Đăng nhập

Phục hồi CSDL từ tệp SQL và đối chiếu kết quả

Lưu trên thiết bị này
Thực hành tạo và khai thác cơ sở dữ liệu — ICT · Chọn bài khác

Mở tệp rồi mới chạy

SGK minh họa khôi phục `mymusic` trên máy mới chưa có CSDL này. Trong HeidiSQL đã kết nối tới hệ QTCSDL tương ứng, chọn **Tập tin → Load SQL file** (hoặc Ctrl+O), mở đúng tệp `_mymusic.sql`. Nội dung được nạp vào cửa sổ truy vấn; **mở tệp chưa phải là phục hồi**. Đọc qua đầu tệp để biết nó sẽ tạo CSDL nào, có lệnh `DROP DATABASE`/`DROP TABLE` không, và chỉ chạy khi đúng CSDL thử được phép thao tác. Bấm nút chạy truy vấn, đợi hoàn tất, rồi **F5** làm mới danh sách. Mở vài bảng và đối chiếu hàng, không chỉ nhìn thấy tên CSDL. Hình SGK dùng tệp được xuất với Drop/Create: nếu chạy vào một `mymusic` đang có dữ liệu, các đối tượng cũ có thể bị xóa và dữ liệu cũ bị thay bằng trạng thái sao lưu. Vì vậy, cách luyện an toàn là phục hồi trên **máy/CSDL thử chưa có dữ liệu cần giữ**. Nếu đang xử lí sự cố thật, phải có người quản lí xác nhận bản sao nào sẽ được dùng và giữ bản hiện tại trước khi ghi đè.

Kiểm cái gì sau phục hồi?

Bộ mẫu có sáu bảng: `bannhac`, `banthuam`, `casi`, `nhacsi`, `tinh`, `xa`. Số hàng tương ứng là 3, 3, 2, 2, 2, 2. Sau phục hồi, mở Data của `banthuam`: ba bộ mã phải là `(1,1,1)`, `(2,1,2)`, `(6,6,1)` theo thứ tự cột `idBanthuam`, `idBannhac`, `idCasi`. Hai bản nhạc cùng tên “Mưa đầu mùa” vẫn phải thuộc đúng hai mã nhạc sĩ khác nhau; tên giống nhau không cho phép gộp hàng. Khi kiểm bài của mình, so danh sách bảng, số hàng và một vài giá trị tiêu biểu với ghi chép lúc sao lưu. Nếu chỉ thấy bảng trống, có thể tệp chỉ chứa cấu trúc hoặc việc chạy bị lỗi; nếu thiếu bảng, có thể lúc xuất đã bỏ chọn. Câu hỏi vận dụng của SGK về chuyển CSDL sang máy khác cũng theo chuỗi **xuất tệp → chuyển tệp an toàn → nhập vào máy có hệ QTCSDL tương ứng → kiểm kết quả**. Tài khoản ở máy đích cần quyền phù hợp; tệp SQL không tự cài MySQL hoặc HeidiSQL.

Nhập bản sao mẫu rồi đối chiếu

Trên môi trường thực hành riêng, mở tệp mẫu sáu bảng bằng **Ctrl+O** trong HeidiSQL 12.21.1.1 Linux. Chọn **UTF-8** ở Encoding; đọc tên CSDL và lệnh DROP trước khi chạy. Bản mẫu tạo lại `btvn24_gui_restore`, vì vậy không chạy nếu tên đó đang chứa dữ liệu cần giữ. Nhấn **F9** để chạy nội dung đã mở. Nếu xuất hiện cảnh báo DELETE không có WHERE, đối chiếu lại tệp và CSDL đích: đây là bước thay dữ liệu trong bản thử đã xác định. Giữ cảnh báo cho các lần sau; nếu chưa rõ phạm vi thì hủy. Đợi chạy xong, nhấn **F5**, mở các bảng và so với số hàng/mã ở trên. Chỉ mở tệp hoặc chỉ làm mới cây chưa phục hồi dữ liệu.

Bài luyện

Trong HeidiSQL, sau khi chọn Load SQL file và mở _mymusic.sql, bước nào thực sự áp dụng câu lệnh lên máy chủ?
Chọn một đáp án

Bài luyện

Tệp sao lưu có DROP TABLE và CREATE TABLE. Nếu chạy trên CSDL đã có dữ liệu mới, nguy cơ chính là gì?
Chọn một đáp án

Bài luyện

Sau phục hồi, thấy tên CSDL trong cây bên trái. Còn cần kiểm gì?
Chọn một đáp án

Đang học