Tuesday, October 11, 2011

Hướng dẫn Backup và Restore MySQL database không bị lỗi

Là 1 admin website hay bất kì 1 ngành nào liên quan tới quản trị thì chắc hẳn công việc backup và restore tất nhiên bạn phải nắm giữ thành thục.

Song, hiện nay rất nhiều bạn backup thường xuyên nhưng tới lúc bị sự cố lấy data lại ko restore đc.

Bài viết này sẽ giúp các bạn sao lưu và phục hồi CSDL của mình ko bị lỗi

Trước khi vào đề mình xin nói sơ qua, tại sao các bạn sao lưu hay bị lỗi.
- Data có table bị overhead
- Data có table bị hư chỉ mục
- Data có table bị crash

Đây là 3 nguyên nhân chính khiến file sao lưu của các bạn bị lỗi
Chắc các bạn sẽ thắc mắc, data hư thế sao web còn chạy, còn sao lưu đc

Xin trả lời như sau:
- Không phải website của bạn chạy nó sẽ truy vấn 1 lần tới toàn bộ CSDL, do đó bạn sẽ ko thể thấy nó lỗi khi truy cập nhưng nếu vào 1 chức năng nào đó mới hôm qua bình thường mà hôm nay tự nhiên báo database error thì hãy nghĩ ngay tới 3 nguyên nhân mình nói bên trên.

Vậy mình sẽ giải quyết sao khi bị 3 lỗi trên ?
-Hiện nay tất cả các host từ cPanel,DirectAdmin,Plesk,Vista Panel .. đều có cung cấp sẵn 1 công cụ quản lý data là phpmyadmin. Chúng ta có thể khắc phục 3 điều trên thông qua phpmyadmin

Cách làm như sau:
vào phpmyadmin (Cái này đơn giản, mình ko nói lại phải vào phpmyadmin như thế nào)

Khi vào phpmyadmin rồi thì các bạn bấm chọn database cần kiểm tra bên tay trái
Các bạn để ý khung mình khoanh đỏ


Trường hợp này có 1 table bị Over head
Trích:
Overhead ở đây bạn có thể hiểu là dung lượng vượt quá 1 mức lý tưởng để lưu 1 table mà mysql cho là tốt nhất
Để khắc phục thì ta click chọn table này sau đó kéo xuống dưới cùng chọn như hình dưới


Tương tự như vậy, nếu table này bị hư nó sẽ báo là crash hoặc In User tức là table này bị hư hoàn toàn.ko sử dụng đc. Lúc đó thay vì bạn chọn chức năng Optimize thì ta chọn repair table cho nó sửa lại

Còn nếu hư chỉ mục thì ta cũng chọn chức năng repair


Đề chọn nhanh tất cả các table bị overhead thì các bạn có thể bấm nút Check tables having overhead ở cuối


Như vậy, trước khi sao lưu thì các bạn nên kiểm tra qua các công đoạn này thì file sao lưu của cac bạn sẽ ok.
VBB cũng cung cấp cho mình 1 tool làm việc này trong admincp trong phần AdminCP~~>Repair / Optimize Tables
Nhưng đôi khi có bạn hư data ko vào đc admincp luôn nên mình hướng dẫn các bạn trên phpmyadmin cho tổng quát

Lưu ý thêm:
1.Trong quá trình sao lưu CSDL thì tốt nhất các bạn nên tạm thời đóng cửa website/forum để tránh quá trính data vừa cập nhật vừa sao lưu dễ gây mất ràng buộc giữa các bảng nếu sự cập nhật này có liên quan tới các bảng có quan hệ với nhau
VD:
Khi 1 thành viên tạo 1 đề tài mới thì VBB sẽ thêm 1 bản ghi vào table thread, 1 bản ghi vào table post, thêm attachment...cập nhất 1 số tabe khác như user chẳng hạn..
Nhưng giả sử quá trình sao lưuu đã sao lưu xong table thread, còn post đang giữa chửng, bản ghi mới chèn vào table thread sẽ ko có trong file sao lưu còn bản ghi mới trong table post lại có -> Điều gì sảy ra nếu 2 table có quan hệ với nhau, có thiết lập khóa ngoại với nhau ? -> chắc chắn sẽ lỗi khi restore
2.Sao lưu bằng tool gì thì phục hồi bằng tool đó sẽ hạn chế đc lỗi phát sinh. Mình khuyên dùng tool này
http://sinhvienit.net/@forum/showthread.php?t=1346
Ngoài ra bạn có thể dùng chính công cụ của VBB, Nhưng VBB lại ko có chức năng restore. Lúc này muốn sesore các bạn có thể dùng bigdump cũng rất tốt

Nguồn: http://sinhvienit.net/@forum/showthread.php?t=36677

No comments:

Router Packet Networking

Đây là video ngắn khá hay, mô tả đường đi của một gói tin trên Mạng Internet.