Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để có được một kết xuất chính xác bằng cách sử dụng mysqldump và một giao dịch khi DDL được sử dụng cùng một lúc?

Mở mysql cửa sổ lệnh và đưa ra lệnh này:

mysql> FLUSH TABLES WITH READ LOCK;

Điều này sẽ khóa tất cả bảng trong tất cả cơ sở dữ liệu trên phiên bản MySQL này cho đến khi bạn phát hành UNLOCK TABLES (hoặc chấm dứt kết nối máy khách giữ các khóa đọc này).

Để xác nhận điều này, bạn có thể mở một cửa sổ lệnh khác và thử thực hiện ALTER , DROP , RENAME hoặc TRUNCATE . Các lệnh này bị treo, chờ khóa đọc được giải phóng. Nhấn Ctrl-C để chấm dứt việc chờ đợi.

Nhưng trong khi các bảng có khóa đọc, bạn vẫn có thể thực hiện mysqldump sao lưu.

FLUSH TABLES WITH READ LOCK lệnh may giống như cách sử dụng --lock-all-tables tùy chọn của mysqldump . Nó không hoàn toàn rõ ràng, nhưng tài liệu này dường như hỗ trợ nó:

Cả FLUSH TABLES WITH READ LOCK--lock-all-tables sử dụng cụm từ "khóa đọc toàn cục", vì vậy tôi nghĩ rằng có khả năng chúng làm điều tương tự. Do đó, bạn có thể sử dụng tùy chọn đó để mysqldump và bảo vệ chống lại đồng thời ALTER, DROP, RENAME và TRUNCATE.

Lại. nhận xét của bạn:Sau đây là từ Guilhem Bichot trong nhật ký lỗi MySQL mà bạn đã liên kết đến:

Từ đó, có vẻ như bạn không thể có quyền truy cập đồng thời trong khi sao lưu và đồng thời chặn ALTER, DROP, RENAME và TRUNCATE.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách Chèn Nhiều Dòng trong Một Truy vấn SQL - Câu hỏi Phỏng vấn Tuần # 069

  2. Java - Ngoại lệ trong luồng chính java.lang. Lỗi:Các vấn đề biên dịch chưa được giải quyết

  3. Kéo dữ liệu vào mẫu từ cơ sở dữ liệu bên ngoài với django

  4. Cách tốt nhất để lưu trữ Giá trị hộp kiểm trong Cơ sở dữ liệu MySQL là gì?

  5. Kiểu dữ liệu tốt nhất để lưu trữ URL trong cơ sở dữ liệu MySQL là gì?