Làm cách nào tôi có thể sao lưu cơ sở dữ liệu nhiều gigabyte trong MySQL? Điểm thưởng cho phục hồi nhanh hơn


11

Tôi có một cơ sở dữ liệu 4GB trong MySQL. Làm thế nào tôi có thể sao lưu nó? Hơn nữa, có cách nào để tôi có thể tăng tốc quá trình phục hồi trong trường hợp tôi cần phục hồi không?

Tôi hiện đang sử dụng một công việc định kỳ mỗi đêm để gọi mysqldumptất cả mọi thứ và tôi giữ 3 ngày sao lưu.

Câu trả lời:


14

Chúng tôi có khoảng 90 GB trong một MySQL, vì vậy đây là một số gợi ý:

  • Bạn có thể thử cuộc gọi sau: mysqldump -u USER -pPASS --single-transaction -Q --databases foo bar(Sử dụng tài liệu để kiểm tra xem các công tắc đó có hoạt động với bạn không.)
  • Nếu bạn chỉ sử dụng bảng MYISAM, sau đó sao chép cơ sở dữ liệu sang ổ đĩa khác và ghi lại nó, cũng có thể là một giải pháp thay thế. Điều này sẽ không hoạt động với INNODB, vì nó giữ một tệp bổ sung. Ngoài ra, bạn phải kiểm tra điều này một cách cẩn thận.
  • Kích hoạt nhật ký nhị phân và sao lưu chúng. (Đây có lẽ là sở thích của tôi!)
  • Thiết lập sao chép và thực hiện sao lưu trên một trong những nô lệ của bạn, và sau đó để nó bắt kịp với phần còn lại. Nó khá đẹp khi chạy, nhưng vấn đề là làm cho nó chạy. Sao chép không có gì thú vị với MySQL. :
  • Hệ thống tập tin của bạn có hỗ trợ ảnh chụp nhanh không? Nếu có, thì đó là một cơ hội tuyệt vời để sử dụng chúng.
  • Sử dụng một giải pháp thương mại, chẳng hạn như Amanda .

10

Cách tốt nhất sẽ là không làm gián đoạn hoạt động bình thường. Đối với các hệ thống có độ tin cậy cao, có khả năng chịu lỗi, bạn có 2 DB được giữ đồng bộ và bạn sao lưu thứ cấp. (ví dụ bài viết howtoforge này )

Mặt khác, hãy đọc hướng dẫn : sử dụng myseldump như bạn hiện đang làm hoặc sử dụng tập lệnh mysqlhotcopy (sử dụng giống như mysqldump) hoặc dừng DB và chỉ cần sao chép các tệp frm, MID, MYI (sử dụng rsync).

Tôi nghĩ rằng cơ chế dừng + sao chép tệp là nhanh nhất bạn sẽ nhận được.


3

Nếu một số cơ sở dữ liệu của bạn ở chế độ chỉ đọc hoặc sửa đổi, hiếm khi sử dụng nó như là một cron ít thường xuyên hơn.


2

Để trả lời câu hỏi của bạn - tùy chọn Extended_insert hoạt động tốt với tôi. Nếu bạn có đủ tài nguyên để khôi phục, Extended_insert sẽ chèn các khối dữ liệu khổng lồ vào một truy vấn duy nhất, giúp khôi phục nhanh hơn.


1

Bạn thực sự nên xem xét Xtrabackup của Percona

Tập lệnh trình bao bọc "innobackupex" có thể xử lý MyISAM nhưng đối với bản sao lưu không khóa / trực tuyến, tất cả các bảng của bạn phải là InnoDB.

Chúc mừng

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.