Thiết lập sao chép nhóm MySQL (Master-Master)


0

Tôi sắp bắt đầu thử nghiệm thiết lập tổng thể bằng cách sử dụng Bản sao nhóm của MySQL. Tôi đã thiết lập 2 máy (cho đến nay), nhiều khả năng sẽ là một máy thứ ba. Cả hai đều có 2 nics, một cho truy cập ứng dụng và một chỉ có LAN IP để liên lạc giữa các nút.

Tôi thấy trong một số tài liệu có đề cập đến việc sử dụng hai NIC, một cho comm giữa các nút và một cho comm với các ứng dụng. Tôi đang ở điểm mà tôi đang chỉnh sửa tệp /etc/mysql/my.cnf. Tôi cần hiểu các cài đặt này:

Giả sử ứng dụng của tôi có ip là 10.3.0.4 và LAN chỉ có NIC có 10.3.1.4 Thiết lập tương tự trên máy 2.

bind-address = "10.3.0.4"
report_host = "10.3.??" ??
loose-group_replication_local_address = "10.3.1.4:33061"

IP nào mà máy chủ báo cáo thuộc về? Tôi tập hợp rằng nhóm lỏng lẻo_plocal_local_address về cơ bản là một địa chỉ liên kết khác nhưng để liên lạc giữa các nút, nhưng tôi không thể tìm thấy bất kỳ ví dụ nào về thiết lập đa nic cũng xử lý các cài đặt này. Tất cả các hướng dẫn có các dòng này hiển thị đặt cùng một ip do chỉ có một nic.

Môi trường: Ubuntu 16.04 trong Azure

Tôi đang làm theo hướng dẫn này để cài đặt: https://www.digitalocean.com/community/tutorials/how-to-configure-mysql-group-replication-on-ubfox-16-04

Các bit về nics kép đến từ các đoạn khoảng 6 trang khác nhau.

EDIT: @roothann nói thẳng với tôi về những gì chủ nhà báo cáo phải làm. Bây giờ tôi có một vấn đề mới. Một khi mysql đã được khởi động lại, cổng 33061 không hiển thị trên netstat và tôi gặp lỗi này trong nhật ký: "Lỗi tên ngang hàng khi kết nối với máy chủ 10.3.1.5 bị lỗi 111 -Kết nối bị từ chối. [GCS] Lỗi khi mở kết nối tới 10.3.1.5:33061 trên cổng cục bộ: 33061. Error = 0 "Có ý tưởng nào không? Tôi đã thêm plugin group_Vplication, nhưng khi tôi thực hiện lệnh này: mysql & gt; BẮT ĐẦU NHÓM_REPLICATION; LRI 3096 (HY000): Lệnh START GROUP_REPLICATION không thành công do có lỗi khi khởi tạo lớp giao tiếp nhóm.

Đó là điều khiến tôi kiểm tra nhật ký và nhìn vào netstat.

KHÁC EDIT: Như đã lưu ý dưới đây, vì một số lý do, lệnh cài đặt bảo mật đã không xóa lệnh chỉ lấy kết nối cục bộ. Điều đó đã được sửa. Vấn đề mới là dữ liệu không được đồng bộ hóa. Nút thứ hai tự rút ra khỏi nhóm vì nó không thể hoàn tất phục hồi.

mysql> SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-------------+-------------+--------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |
+---------------------------+--------------------------------------+-------------+-------------+--------------+
| group_replication_applier | f0bcfc98-4255-11e8-b39f-000d3a1db637 | 10.3.1.4    |        3306 | ONLINE       |
+---------------------------+--------------------------------------+-------------+-------------+--------------+

Vì vậy, vì một số lý do, việc sao chép đang cố gắng xảy ra trên các giao diện LAN, nhưng trên cổng mysql thông thường thay vì 33061. Tôi đã cố gắng khắc phục điều này và tôi đã nhận được điều này:

mysql> CHANGE MASTER TO MASTER_USER='repl', MASTER_PORT=33061, MASTER_PASSWORD='the password' FOR CHANNEL 'group_replication_recovery';

ERROR 3139 (HY000): CHANGE MASTER with the given parameters cannot be performed on channel 'group_replication_recovery'.

EDIT ngày 17 tháng 5: Tôi xây dựng lại cụm từ đầu, lần này với 3 máy. Vẫn vấn đề tương tự. Nút đầu tiên xuất hiện. Hai bổ sung cũng xuất hiện, nhưng chỉ hiển thị Phục hồi, sau đó được xóa khỏi cụm.

trên nút đầu tiên, tôi nhận được điều này trong nhật ký:

2018-05-17T14:37:21.859153Z 27 [System] [MY-010597] [Repl] 'CHANGE MASTER TO FOR CHANNEL 'group_replication_recovery' executed'. Previous state master_host='', master_port= 3306, master_log_file='', master_log_pos= 4, master_bind=''. New state master_host='', master_port= 3306, master_log_file='', master_log_pos= 4, master_bind=''.

+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION |
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
| group_replication_applier | 38d4aa76-592f-11e8-814a-000d3a60e580 | 10.7.1.11   |       33061 | RECOVERING   | PRIMARY     | 8.0.11         |
| group_replication_applier | 3dbbb30f-592f-11e8-8fc7-000d3a603364 | 10.7.1.12   |       33061 | RECOVERING   | PRIMARY     | 8.0.11         |
| group_replication_applier | b0ff0148-592e-11e8-aa03-000d3a60e4cc | 10.7.1.10   |       33061 | ONLINE       | PRIMARY     | 8.0.11         |
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
3 rows in set (0.00 sec)

Tôi nhận được điều này trong nhật ký từ một trong các máy chủ khác:

2018-05-17T14:57:17.970789Z 18 [ERROR] [MY-011583] [Repl] Plugin group_replication reported: 'For details please check performance_schema.replication_connection_status table and error log messages of Slave I/O for channel group_replication_recovery.'
2018-05-17T14:58:18.023898Z 18 [System] [MY-010597] [Repl] 'CHANGE MASTER TO FOR CHANNEL 'group_replication_recovery' executed'. Previous state master_host='10.7.1.10', master_port= 33061, master_log_file='', master_log_pos= 4, master_bind=''. New state master_host='10.7.1.10', master_port= 33061, master_log_file='', master_log_pos= 4, master_bind=''.

Tôi nhận thấy rằng trên nút đầu tiên, biến master_host trống, trong khi ở nút thứ hai, nó được điền vào ip chính. Bây giờ, vì tất cả họ đều được coi là bậc thầy, không phải người chính cũng có thứ gì đó sao?

Cảm ơn trước!


report_host là một chuỗi mà bạn chỉ cần xác định như bạn muốn. Bạn đang nói về cụm InnoDB từ GA 5.7? Nếu vậy, bạn có đang sử dụng mysqlsh để bootstrap không?
roothahn

@roothahn Tôi không chắc chắn, tôi chỉ làm theo hướng dẫn đó, nó không nói gì về innodb một cách cụ thể. Ngoài ra, tôi không nghĩ báo cáo là ngẫu nhiên. Nó phải là ip cho địa chỉ liên kết hoặc địa chỉ đại diện. Tôi đang cố gắng tìm ra cái nào.
Bruce

Tôi không nói là ngẫu nhiên (không nên thay đổi, rõ ràng), nhưng là một chuỗi mà bạn xác định, thường là Tên máy chủ hoặc IP của nô lệ (để bạn có thể xác định nó thông qua SHOW SLAVE HOSTS trên bản gốc). Nhưng nếu bạn xác định một chuỗi hoặc bí danh không phải là tên máy chủ thì cũng không sao. Nó không liên quan đến bind_address
roothahn

@roothahn ok, điều đó có ý nghĩa hơn. Tôi đã sử dụng IP của mạng LAN duy nhất, vì đó là cách các nút nói chuyện với nhau. Vấn đề mới và tôi cũng sẽ chỉnh sửa bài chính, đó là khi mysql đã được khởi động lại, cổng 33061 không hiển thị trên netstat và tôi gặp lỗi này: "Lỗi tên ngang hàng khi kết nối với máy chủ 10.3. 1.5 có lỗi 111 -Kết nối bị từ chối. [GCS] Lỗi khi mở kết nối tới 10.3.1.5:33061 trên cổng cục bộ: 33061. Error = 0 "Có ý tưởng nào không?
Bruce

có thể my.cnf của bạn đang thiếu giá trị cho nhóm lỏng lẻo (danh sách kết hợp ip: cổng được phân tách bằng dấu phẩy của tất cả các nút trong cụm). đó là điểm mà tôi đã xác định 13306
roothahn
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.