2015-06-30 14 views
6

Tôi cần phải sao lưu cơ sở dữ liệu Drupal là rất lớn. Vì vậy, nó có hơn 1500 bảng (không đổ lỗi cho tôi, một điều Drupal của nó) và có kích thước 10GB.Làm thế nào tôi có thể sao lưu một cơ sở dữ liệu khổng lồ một cách an toàn?

Tôi không thể làm điều đó với PHPMyAdmin, tôi vừa gặp lỗi khi bắt đầu xây dựng tệp .sql.

Tôi muốn đảm bảo rằng tôi sẽ không phá vỡ bất kỳ thứ gì hoặc gỡ máy chủ xuống hoặc bất cứ điều gì khi tôi cố gắng sao lưu nó.

Tôi sẽ cố gắng một mysqldump trên máy chủ của tôi và sau đó sao chép các tập tin xuống địa phương nhưng nhận ra rằng điều này có thể gây ra các vấn đề không lường trước được. Vì vậy, câu hỏi của tôi đối với bạn là, có an toàn khi sử dụng mysqldump trên nhiều bảng cùng một lúc và ngay cả khi nó an toàn có bất kỳ vấn đề nào như một tệp lớn có thể dẫn đến trong tương lai để xây dựng lại cơ sở dữ liệu không?

Cảm ơn các bạn nhập liệu.

+0

Đổ từ vỏ. – MilanG

+0

kiểm tra điều này: http://moinne.com/blog/ronald/mysql/backup-large-databases-with-mysqldump hoặc https://blog.serverdensity.com/backing-up-large-mysql-databases/ –

Trả lời

10

là nó an toàn để sử dụng mysqldump trên rất nhiều bảng cùng một lúc

tôi chạy sao lưu hàng ngày với mysqldump trên máy chủ nghĩa là 10x kích thước này: 15000+ bảng, hơn 100 GB.

Nếu bạn chưa kiểm tra các nội dung của một tập tin được tạo ra bởi mysqldump ... bạn nên, vì để xem kết quả của nó là để hiểu lý do tại sao nó là một tiện ích sao lưu an toàn nội:

Các sao lưu là con người có thể đọc được và bao gồm toàn bộ các câu lệnh SQL cần thiết để tạo ra một cơ sở dữ liệu giống hệt như cơ sở dữ liệu bạn đã sao lưu.

Trong biểu mẫu này, nội dung của chúng có thể dễ dàng thao tác với các công cụ phổ biến như sedgrepperl, có thể được sử dụng để chỉ lấy một bảng từ tệp để khôi phục.

Nếu khôi phục không thành công, lỗi sẽ cho biết số dòng trong tệp xảy ra lỗi. Điều này thường liên quan đến hành vi lỗi trong phiên bản máy chủ nơi bản sao lưu được tạo (ví dụ: MySQL Server 5.1 cho phép bạn tạo các khung nhìn trong một số tình huống mà bản thân máy chủ sẽ không chấp nhận đầu ra của câu lệnh SHOW CREATE VIEW của riêng nó. không được coi là - bởi cùng một máy chủ - là một định nghĩa khung nhìn hợp lệ, nhưng điều này không phải là một khiếm khuyết trong mysqldump, hoặc trong tập tin sao lưu, cho mỗi gia nhập)

Khôi phục từ một bản sao lưu mysqldump tạo là. không phải nhanh như chớp, vì máy chủ phải thực thi tất cả các câu lệnh SQL đó, nhưng từ quan điểm về an toàn, tôi cho rằng không có giải pháp thay thế an toàn hơn, vì đây là công cụ sao lưu chuẩn và mọi lỗi có thể được tìm thấy và cố định nhờ vào cơ sở người dùng lớn, nếu không có gì khác.

Không sử dụng tùy chọn --force, ngoại trừ trong trường hợp khẩn cấp.Nó sẽ gây ra sao lưu để bỏ qua bất kỳ lỗi nào gặp phải trên máy chủ trong khi sao lưu đang chạy, khiến bản sao lưu của bạn không đầy đủ với hầu như không có cảnh báo. Thay vào đó, hãy tìm và sửa bất kỳ lỗi nào xảy ra. Các lỗi điển hình trong quá trình sao lưu có liên quan đến các chế độ xem không còn hợp lệ vì chúng tham chiếu các bảng hoặc cột đã được đổi tên hoặc giảm hoặc nơi người dùng tạo chế độ xem ban đầu đã bị xóa khỏi máy chủ. Sửa lỗi này bằng cách xác định lại chế độ xem, chính xác.

Trên tất cả, hãy thử nghiệm các bản sao lưu của bạn bằng cách khôi phục chúng về một máy chủ khác. Nếu bạn chưa làm điều này, bạn không thực sự có bản sao lưu.

Tệp đầu ra có thể được nén, thường là đáng kể, với gzip/pigz, bzip2/bpzip2, xz/pixz hoặc zpaq. Chúng được liệt kê theo thứ tự gần đúng bằng số lượng không gian đã lưu (gzip tiết kiệm ít nhất, zpaq tiết kiệm nhiều nhất) và tốc độ (gzip là nhanh nhất, zpaq là chậm nhất). pigz, pbzip2, pixz và zpaq sẽ tận dụng nhiều lõi, nếu bạn có. Những người khác chỉ có thể sử dụng một lõi đơn tại một thời điểm.

+0

Câu trả lời hoàn hảo, chính xác là chi tiết tôi đang tìm kiếm. Cảm ơn Michael. Kiến thức của bạn có lẽ có thể giải quyết vấn đề tôi đã có sau khi sử dụng MySQLDump, đây là một liên kết đến câu hỏi nếu bạn có một thời điểm rảnh rỗi để có một cái nhìn http://stackoverflow.com/questions/31141585/why-have-a-lost- bảng-khi-di chuyển-từ-phpmyadmin-to-local-mysql-workbench –

1

Sử dụng mysqlhotcopy nó cũng đang làm việc với cơ sở dữ liệu lớn

  • làm việc chỉ MyISAM và ARCHIVE-bảng.
  • Chỉ hoạt động trên máy chủ lưu trữ cơ sở dữ liệu.
  • Tiện ích này bị phản đối trong MySQL 5.6.20 và loại bỏ trong MySQL 5,7
Các vấn đề liên quan