Computer >> Máy Tính >  >> Lập trình >> MySQL

mysqldump - Một chương trình sao lưu cơ sở dữ liệu MySQL


Tiện ích máy khách mysqldump giúp thực hiện sao lưu lôgic, do đó tạo ra một tập hợp các câu lệnh SQL có thể được thực thi để tái tạo các định nghĩa đối tượng cơ sở dữ liệu ban đầu và dữ liệu bảng.

Cách sử dụng mysqldump

  • Nó kết xuất một hoặc nhiều cơ sở dữ liệu MySQL để sao lưu hoặc chuyển sang máy chủ SQL khác.

  • Lệnh mysqldump cũng tạo đầu ra dưới dạng CSV, văn bản được phân tách khác hoặc định dạng XML.

  • Tiện ích mysqldump yêu cầu ít nhất đặc quyền CHỌN đối với các bảng đã kết xuất, CHẾ ĐỘ XEM cho các chế độ xem được kết xuất, TRIGGER cho các trình kích hoạt được kết xuất, BẢNG KHÓA nếu tùy chọn --single-transaction không được sử dụng và QUÁ TRÌNH nếu tùy chọn - không có không gian bảng không được sử dụng .

  • Cơ sở dữ liệu có thể được nhân bản cho mục đích phát triển và công việc DBA hoặc có thể được sử dụng để tạo ra các biến thể nhỏ của cơ sở dữ liệu hiện có có thể được yêu cầu cho mục đích thử nghiệm.

  • Để sao lưu và khôi phục quy mô lớn, bạn nên sao lưu vật lý, sau đó sao chép các tệp dữ liệu ở định dạng ban đầu để khôi phục dữ liệu nhanh chóng:

  • Nếu các bảng chủ yếu là các bảng InnoDB hoặc nếu có sự kết hợp giữa các bảng InnoDB và MyISAM, thì lệnh mysqlbackup được sử dụng cho sản phẩm MySQL Enterprise Backup. Nó cung cấp hiệu suất tốt nhất cho các bản sao lưu InnoDB và có sự gián đoạn tối thiểu.

  • Mysqldump cũng có thể được sử dụng để truy xuất và kết xuất nội dung bảng theo từng hàng hoặc nó có thể được sử dụng để truy xuất toàn bộ nội dung từ bảng và đệm nó vào bộ nhớ trước khi kết xuất.

Cú pháp

Có ba cách để sử dụng mysqldump, để kết xuất một tập hợp một hoặc nhiều bảng, một tập hợp một hoặc nhiều cơ sở dữ liệu hoàn chỉnh hoặc toàn bộ máy chủ MySQL. Chúng đã được hiển thị bên dưới -

shell> mysqldump [options] db_name [tbl_name ...]
shell> mysqldump [options] --databases db_name ...
shell> mysqldump [options] --all-databases

Nếu người dùng muốn kết xuất toàn bộ cơ sở dữ liệu, thì không nên đặt tên cho các bảng sau db_name, hoặc phải sử dụng tùy chọn --databases hoặc --all-databases.