MySQL-Group-Replication ist eine neue Funktion, die in MySQL-5.7.17 entwickelt wurde; sie erreicht eine starke Konsistenz zwischen Master und Slave. Das Hauptproblem besteht derzeit allerdings darin, dass die Leistung nicht besonders gut ist. 【1】Bestätigen Sie, dass die aktuelle MySQL-Datenbankversion 5.7.17 oder höher ist /usr/local/mysql/bin/mysqld --version /usr/local/mysql/bin/mysqld Ver 5.7.17 für linux-glibc2.5 auf x86_64 (MySQL Community Server (GPL)) [2] Die experimentelle Umgebung besteht darin, drei MySQL-Server auf einem Host zu installieren, und alle drei bilden eine Gruppenreplikationsgruppe. Der Inhalt von /tmp/4406.cnf ist wie folgt: [mysqld] ####: für global Benutzer =jianglexing #mysql basedir =/usr/local/mysql # /usr/local/mysql/ datadir =/tmp/4406/ # /usr/local/mysql/data server_id =4406 # 0 Port =4406 # 3306 socket =/tmp/4406/mysql.sock # /tmp/mysql.sock auto_increment_increment =1 # 1 auto_increment_offset =1 # 1 Kleinbuchstaben-Tabellennamen = 1 # 0 secure_file_priv = # null ####: für Binlog binlog_format =Zeile # Zeile log_bin =mysql-bin # aus binlog_rows_query_log_events = ein # aus log_slave_updates = ein # aus expire_logs_days =4 # 0 binlog_cache_size = 32768 # 32768 (32k) binlog_checksum =keine # CRC32 sync_binlog =1 # 1 ####: für Fehlerprotokoll log_error =mysql-err.log # /usr/local/mysql/data/localhost.localdomain.err ####: für langsames Abfrageprotokoll ####: für gtid gtid_mode = ein # aus enforce_gtid_consistency = ein # aus ####: für die Replikation master_info_repository =Tabelle # Datei relay_log_info_repository =Tabelle # Datei ####: für Gruppenreplikation transaction_write_set_extraction =XXHASH64 # aus Name der Replikationsgruppe "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaa" # loose-group_replication_start_on_boot =aus # aus lose-group_replication_local_address = "127.0.0.1:24901" # lose-group_replication_group_seeds = "127.0.0.1:24901,127.0.0.1:24902,127.0.0.1:24903" loose-group_replication_bootstrap_group =aus # aus ####: für innodb default_storage_engine = innodb # innodb default_tmp_storage_engine = innodb # innodb innodb_data_file_path =ibdata1:12M:autoextend # ibdata1:12M:autoextend innodb_temp_data_file_path =ibtmp1:12M:autoextend # ibtmp1:12M:autoextend innodb_log_group_home_dir = ./ # ./ innodb_log_files_in_group = 2 # 2 innodb_log_file_size =48M # 50331648(48M) innodb_file_format = Barracuda # Barracuda innodb_file_per_table = ein # ein innodb_page_size = 16k # 16384 (16k) innodb_thread_concurrency = 0 # 0 innodb_read_io_threads = 4 # 4 innodb_write_io_threads = 4 # 4 innodb_purge_threads = 4 # 4 innodb_print_all_deadlocks = ein # aus innodb_deadlock_detect = ein # ein innodb_lock_wait_timeout = 50 # 50 innodb_spin_wait_delay = 6 # 6 innodb_autoinc_lock_mode =2 # 1 innodb_stats_persistent = ein # ein innodb_stats_persistent_sample_pages = 20 # 20 innodb_adaptive_hash_index = ein # ein innodb_change_buffering =alle # alle innodb_change_buffer_max_size = 25 # 25 innodb_flush_neighbors = 1 # 1 innodb_flush_method = O_DIRECT # innodb_doublewrite = ein # ein innodb_log_buffer_size =16M # 16777216(16M) innodb_flush_log_at_timeout = 1 # 1 innodb_flush_log_at_trx_commit = 1 # 1 autocommit =1 # 1 [Kunde] automatische Wiederaufbereitung Der Inhalt von /tmp/5506.cnf ist wie folgt: [mysqld] ####: für global Benutzer =jianglexing #mysql basedir =/usr/local/mysql # /usr/local/mysql/ datadir =/tmp/5506 # /usr/local/mysql/data server_id =5506 # 0 Port =5506 # 3306 socket =/tmp/5506/mysql.sock # /tmp/mysql.sock auto_increment_increment =1 # 1 auto_increment_offset =1 # 1 Kleinbuchstaben-Tabellennamen = 1 # 0 secure_file_priv = # null ####: für Binlog binlog_format =Zeile # Zeile log_bin =mysql-bin # aus binlog_rows_query_log_events = ein # aus log_slave_updates = ein # aus expire_logs_days =4 # 0 binlog_cache_size = 32768 # 32768 (32k) binlog_checksum =keine # CRC32 sync_binlog =1 # 1 ####: für Fehlerprotokoll log_error =mysql-err.log # /usr/local/mysql/data/localhost.localdomain.err ####: für langsames Abfrageprotokoll ####: für gtid gtid_mode = ein # aus enforce_gtid_consistency = ein # aus ####: für die Replikation master_info_repository =Tabelle # Datei relay_log_info_repository =Tabelle # Datei ####: für Gruppenreplikation transaction_write_set_extraction =XXHASH64 # aus Name der Replikationsgruppe "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaa" # loose-group_replication_start_on_boot =aus # aus lose-group_replication_local_address = "127.0.0.1:24902" # lose-group_replication_group_seeds = "127.0.0.1:24901,127.0.0.1:24902,127.0.0.1:24903" loose-group_replication_bootstrap_group =aus # aus ####: für innodb default_storage_engine = innodb # innodb default_tmp_storage_engine = innodb # innodb innodb_data_file_path =ibdata1:12M:autoextend # ibdata1:12M:autoextend innodb_temp_data_file_path =ibtmp1:12M:autoextend # ibtmp1:12M:autoextend innodb_log_group_home_dir = ./ # ./ innodb_log_files_in_group = 2 # 2 innodb_log_file_size =48M # 50331648(48M) innodb_file_format = Barracuda # Barracuda innodb_file_per_table = ein # ein innodb_page_size = 16k # 16384 (16k) innodb_thread_concurrency = 0 # 0 innodb_read_io_threads = 4 # 4 innodb_write_io_threads = 4 # 4 innodb_purge_threads = 4 # 4 innodb_print_all_deadlocks = ein # aus innodb_deadlock_detect = ein # ein innodb_lock_wait_timeout = 50 # 50 innodb_spin_wait_delay = 6 # 6 innodb_autoinc_lock_mode =2 # 1 innodb_stats_persistent = ein # ein innodb_stats_persistent_sample_pages = 20 # 20 innodb_adaptive_hash_index = ein # ein innodb_change_buffering =alle # alle innodb_change_buffer_max_size = 25 # 25 innodb_flush_neighbors = 1 # 1 innodb_flush_method = O_DIRECT # innodb_doublewrite = ein # ein innodb_log_buffer_size =16M # 16777216(16M) innodb_flush_log_at_timeout = 1 # 1 innodb_flush_log_at_trx_commit = 1 # 1 autocommit =1 # 1 Der Inhalt von /tmp/6606.cnf ist wie folgt: [mysqld] ####: für global Benutzer =jianglexing #mysql basedir =/usr/local/mysql # /usr/local/mysql/ datadir =/tmp/6606/ # /usr/local/mysql/data server_id =6606 # 0 Port =6606 # 3306 socket =/tmp/6606/mysql.sock # /tmp/mysql.sock auto_increment_increment =1 # 1 auto_increment_offset =1 # 1 Kleinbuchstaben-Tabellennamen = 1 # 0 secure_file_priv = # null ####: für Binlog binlog_format =Zeile # Zeile log_bin =mysql-bin # aus binlog_rows_query_log_events = ein # aus log_slave_updates = ein # aus expire_logs_days =4 # 0 binlog_cache_size = 32768 # 32768 (32k) binlog_checksum =keine # CRC32 sync_binlog =1 # 1 ####: für Fehlerprotokoll log_error =mysql-err.log # /usr/local/mysql/data/localhost.localdomain.err ####: für langsames Abfrageprotokoll ####: für gtid gtid_mode = ein # aus enforce_gtid_consistency = ein # aus ####: für die Replikation master_info_repository =Tabelle # Datei relay_log_info_repository =Tabelle # Datei ####: für Gruppenreplikation transaction_write_set_extraction =XXHASH64 # aus Name der Replikationsgruppe "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaa" # loose-group_replication_start_on_boot =aus # aus lose-group_replication_local_address = "127.0.0.1:24903" # lose-group_replication_group_seeds = "127.0.0.1:24901,127.0.0.1:24902,127.0.0.1:24903" loose-group_replication_bootstrap_group =aus # aus ####: für innodb default_storage_engine = innodb # innodb default_tmp_storage_engine = innodb # innodb innodb_data_file_path =ibdata1:12M:autoextend # ibdata1:12M:autoextend innodb_temp_data_file_path =ibtmp1:12M:autoextend # ibtmp1:12M:autoextend innodb_log_group_home_dir = ./ # ./ innodb_log_files_in_group = 2 # 2 innodb_log_file_size =48M # 50331648(48M) innodb_file_format = Barracuda # Barracuda innodb_file_per_table = ein # ein innodb_page_size = 16k # 16384 (16k) innodb_thread_concurrency = 0 # 0 innodb_read_io_threads = 4 # 4 innodb_write_io_threads = 4 # 4 innodb_purge_threads = 4 # 4 innodb_print_all_deadlocks = ein # aus innodb_deadlock_detect = ein # ein innodb_lock_wait_timeout = 50 # 50 innodb_spin_wait_delay = 6 # 6 innodb_autoinc_lock_mode =2 # 1 innodb_stats_persistent = ein # ein innodb_stats_persistent_sample_pages = 20 # 20 innodb_adaptive_hash_index = ein # ein innodb_change_buffering =alle # alle innodb_change_buffer_max_size = 25 # 25 innodb_flush_neighbors = 1 # 1 innodb_flush_method = O_DIRECT # innodb_doublewrite = ein # ein innodb_log_buffer_size =16M # 16777216(16M) innodb_flush_log_at_timeout = 1 # 1 innodb_flush_log_at_trx_commit = 1 # 1 autocommit =1 # 1 【3】Initialisieren Sie drei Datenbankinstanzen cd /usr/local/mysql/ ./bin/mysqld --defautls-file=/tmp/4406.cnf --datadir=/tmp/4406 --initialize-insecrue ./bin/mysqld --defautls-file=/tmp/5506.cnf --datadir=/tmp/5506 --initialize-insecrue ./bin/mysqld --defautls-file=/tmp/6606.cnf --datadir=/tmp/6606 --initialize-insecrue 【4】Konfigurieren Sie die erste Instanz der Gruppenreplikation /usr/local/mysql/bin/mysqld --defaults-file=/tmp/4406.cnf & mysql -h127.0.0.1 -uroot -P4406 --Benutzersatz sql_log_bin=0 hinzufügen; Erstellen Sie den Benutzer rpl_user@'%', identifiziert durch '123456'; gewähre rpl_user@'%' Replikations-Slave, Replikations-Client auf *.*; Erstellen Sie den Benutzer rpl_user@'127.0.0.1' mit der Identifizierung '123456'. gewähre rpl_user@'127.0.0.1' Replikations-Slave, Replikations-Client auf *.*; Erstellen Sie den Benutzer rpl_user@'localhost' mit der Identifizierung '123456'. gewähre rpl_user@'localhost' Replikations-Slave und Replikations-Client auf *.*; setze sql_log_bin=1; -- Replikations-Anmeldeinformationen hinzufügen change master zu master_user='rpl_user', Master-Passwort = '123456' für Kanal „group_replication_recovery“; -- Installieren Sie Gruppenreplikationsobjekte, installieren Sie das Plugin group_replication soname „group_replication.so“; -- Gruppenreplikation starten, global group_replication_bootstrap_group=on festlegen; Gruppenreplikation starten; Setzen Sie die globale group_replication_bootstrap_group=off; 【5】Der Konfigurationsprozess der 5506-Instanz ist wie folgt: /usr/local/mysql/bin/mysqld --defaults-file=/tmp/5506.cnf & mysql -h127.0.0.1 -uroot -P5506 --Benutzersatz sql_log_bin=0 hinzufügen; Erstellen Sie den Benutzer rpl_user@'%', identifiziert durch '123456'; gewähre rpl_user@'%' Replikations-Slave, Replikations-Client auf *.*; Erstellen Sie den Benutzer rpl_user@'127.0.0.1' mit der Identifizierung '123456'. gewähre rpl_user@'127.0.0.1' Replikations-Slave, Replikations-Client auf *.*; Erstellen Sie den Benutzer rpl_user@'localhost' mit der Identifizierung '123456'. gewähre rpl_user@'localhost' Replikations-Slave und Replikations-Client auf *.*; setze sql_log_bin=1; -- Replikations-Anmeldeinformationen hinzufügen change master zu master_user='rpl_user', Master-Passwort = '123456' für Kanal „group_replication_recovery“; -- Installieren Sie Gruppenreplikationsobjekte, installieren Sie das Plugin group_replication soname „group_replication.so“; -- Gruppenreplikation starten start group_replication; # Beachten Sie, dass dies keine Initialisierung ist, sondern nur ein Beitritt 【6】Die Vorgänge für Instanz 6606 sind dieselben wie für Instanz 5506. Die Konfiguration der Gruppenreplikation ist nun abgeschlossen. Die oben aufgeführten Konfigurationsschritte für die MySQL-Gruppenreplikation (empfohlen) sind alle Inhalte, die der Editor mit Ihnen teilt. Ich hoffe, sie können Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Das könnte Sie auch interessieren:
|
<<: Gruselige Halloween-Linux-Befehle
Inhaltsverzeichnis 1. Eingebaute Objekte 2. Mathe...
Inhaltsverzeichnis 1. Document.execCommand()-Meth...
1. Die Bedeutung von Indizes Indizes werden verwe...
Vorwort ActiveMQ ist der beliebteste und leistung...
Vorwort Wenn es um Datenbanktransaktionen geht, f...
Verwenden Sie den Befehl mysql, um eine Verbindun...
Inhaltsverzeichnis Gängige Array-Methoden Pop() u...
Laden Sie zuerst die Abhängigkeiten herunter: cnp...
Inhaltsverzeichnis 1. Implementierung des Zählers...
Heute gibt es eine solche Anforderung. Wenn die a...
In einigen Szenarien möchten wir derselben Ethern...
Inhaltsverzeichnis Vorwort 1. GMT Was ist GMT Ges...
Beim UI-Schnittprozess besteht die Seite häufig a...
Inhaltsverzeichnis 1. Umgebungskonfiguration 1.NT...
Inhaltsverzeichnis Überblick Was ist Lazy Loading...