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

Làm thế nào để đồng bộ lại Mysql DB nếu Master và slave có cơ sở dữ liệu khác nhau trong trường hợp sao chép Mysql?

Đây là quy trình từng bước đầy đủ để đồng bộ hóa lại bản sao chính-nô lệ từ đầu:

Tại trang chủ:

RESET MASTER;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

sao chép các giá trị của kết quả của lệnh cuối cùng ở đâu đó.

Nếu không đóng kết nối với ứng dụng khách (vì nó sẽ giải phóng khóa đọc), hãy phát lệnh để lấy kết xuất tổng thể:

mysqldump -u root -p --all-databases > /a/path/mysqldump.sql

Bây giờ bạn có thể mở khóa, ngay cả khi quá trình bán hàng chưa kết thúc. Để thực hiện, hãy thực hiện lệnh sau trong máy khách MySQL:

UNLOCK TABLES;

Bây giờ sao chép tệp kết xuất vào máy chủ bằng cách sử dụng scp hoặc công cụ ưa thích của bạn.

Tại nô lệ:

Mở kết nối tới mysql và nhập:

STOP SLAVE;

Tải kết xuất dữ liệu chính bằng lệnh bảng điều khiển này:

mysql -uroot -p < mysqldump.sql

Đồng bộ hóa nhật ký phụ và nhật ký chính:

RESET SLAVE;
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=98;

Trong đó giá trị của các trường trên là giá trị bạn đã sao chép trước đó.

Cuối cùng, nhập:

START SLAVE;

Để kiểm tra xem mọi thứ đã hoạt động trở lại chưa, sau khi nhập:

SHOW SLAVE STATUS;

bạn sẽ thấy:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

Đó là nó!



  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 cài đặt Adminer trên ứng dụng riêng của nó

  2. Cách kết nối với MySQL bằng Microsoft .NET

  3. Cách đặt Bộ ký tự và đối chiếu của cơ sở dữ liệu trong MySQL

  4. Cách đếm các mục trong danh sách MySQL được phân tách bằng dấu phẩy

  5. chọn các giá trị duy nhất từ ​​một cột