Một bản sao để có đường quay lại
Bài 24 dùng CSDL âm nhạc `mymusic` đã tạo ở các bài trước. Khi dữ liệu bị xóa nhầm hoặc máy hỏng, tệp sao lưu có thể giúp dựng lại **trạng thái tại lúc sao lưu**. Bản sao không tự chứa những thay đổi phát sinh sau đó. Vì vậy, sao lưu cần được thực hiện định kì và kiểm tra khả năng đọc lại, chứ không chỉ bấm nút Export một lần.
Trong SGK, HeidiSQL mở **Các công cụ → Xuất cơ sở dữ liệu dưới dạng SQL**. Ở khung trái, chọn `mymusic` cùng các bảng cần giữ; hình minh họa gồm `bannhac`, `banthuam`, `casi`, `nhacsi`, `theloai`. Nếu CSDL thực hành mới có bốn bảng nhạc, chỉ chọn đúng bốn bảng đang có; đừng tưởng bảng `theloai` tự xuất hiện. Ở khung phải, sách chọn tạo đối tượng và dữ liệu, tùy chọn **Drop** để khi phục hồi có thể xóa đối tượng cũ rồi tạo lại, **Delete + insert** cho dữ liệu, **Single .sql file** để ghi vào một tệp như `_mymusic.sql`. Chọn vị trí tệp thực sự có quyền ghi, rồi bấm **Export**.
Kiểm tệp trước khi gọi là sao lưu xong
Sau khi xuất, kiểm tệp `_mymusic.sql` tồn tại ở đúng nơi vừa chọn, có dung lượng khác 0 và có câu lệnh tạo bảng cùng câu lệnh chèn dữ liệu. Tệp SQL là **bản sao cấu trúc và dữ liệu đã chọn**, không phải ảnh chụp giao diện HeidiSQL. Kiểm một bản sao tốt hơn bằng cách nhập thử vào **CSDL thử riêng**, so tên bảng, số hàng và một vài tên tiếng Việt; chỉ khi nhập được mới biết tệp có thể phục hồi. Trong bộ mẫu của bài này, bản sao có sáu bảng; `banthuam` có ba hàng mã 1, 2, 6. Sau khi phục hồi, các hàng ấy phải trở lại đúng mã bài và ca sĩ; tên “Mưa đầu mùa” trong `bannhac` phải giữ đúng dấu.
Vì tùy chọn **Drop** có thể xóa bảng/CSDL cũ khi chạy lại tệp, hãy cất bản sao ở nơi an toàn và xem nội dung tệp trước khi chạy. Người học chỉ thao tác trên CSDL thực hành được phép dùng; không xóa dữ liệu đang phục vụ người khác. Tệp sao lưu có thể chứa dữ liệu cần bảo vệ, nên không đăng công khai hoặc gửi vào nơi không được phép.
Thực hành xuất một tệp đủ cấu trúc và dữ liệu
Phần thực hành mẫu dùng **HeidiSQL 12.21.1.1 trên Linux, giao diện English**, kết nối **MySQL 8.0.46**. Trong cây CSDL, nháy phải CSDL thực hành được cấp rồi chọn **Export database as SQL**. Chọn đúng các bảng cần giữ; chọn Create cho cấu trúc, Delete + insert cho dữ liệu và Single .sql file cho đầu ra. Đặt tên và nơi lưu, rồi Export. Không chọn No data nếu cần phục hồi cả các hàng.
Drop ở phần Database(s) tác động tới cả CSDL đích khi chạy tệp; Drop ở Table(s) tác động tới các bảng. Chỉ chọn khi đã xác định sẽ thay đối tượng thử tương ứng. Sau khi xuất, mở tệp để kiểm tên CSDL, các lệnh CREATE và INSERT. Tệp mẫu bên dưới có sáu bảng và **DROP DATABASE btvn24_gui_restore**; chỉ dùng trên môi trường thực hành riêng được phép tạo lại CSDL tên này.
Bài luyện
Trong bài thực hành của SGK, muốn tạo một tệp SQL chứa bản sao CSDL mymusic, chọn mục nào trong HeidiSQL?
Đây là lệnh xuất cấu trúc và dữ liệu đã chọn.
Load SQL file là bước mở tệp khi phục hồi.
Ảnh không chứa câu lệnh tạo lại CSDL.
Mở bảng không tạo tệp sao lưu.
Lời giải
SGK hướng dẫn chọn lệnh xuất CSDL dưới dạng SQL, chọn đối tượng và đường dẫn tệp, rồi bấm Export.
Bài luyện
Sau khi bấm Export, dấu hiệu nào đáng tin nhất rằng bản sao có thể dùng để phục hồi?
Bấm nút chưa chứng minh tệp ghi thành công.
Đuôi tệp không bảo đảm nội dung đầy đủ.
Nhập thử và đối chiếu dữ liệu kiểm đúng mục đích sao lưu.
Trạng thái cửa sổ không chứng minh tệp dùng được.
Lời giải
Cần thử phục hồi trên bản thử riêng rồi so cấu trúc, số hàng và dữ liệu quan trọng.
Bài luyện
Nếu sau lúc sao lưu có thêm một bản thu mới, tệp sao lưu cũ có chứa bản thu ấy không?
Tệp đã xuất không tự theo dõi dữ liệu mới.
Bản sao phản ánh thời điểm xuất.
Tên tệp không làm nội dung đổi.
Mở tệp không tự bổ sung hàng mới.
Lời giải
Tệp sao lưu chứa dữ liệu đã xuất tại thời điểm tạo; muốn giữ bản thu mới cần sao lưu tiếp.
Đang học