MySQL-Group-Replication は、MySQL-5.7.17 で開発された新しい機能であり、マスターとスレーブ間の強力な一貫性を実現します。 しかし、現時点での主な問題は、パフォーマンスがあまり良くないことです。 【1】現在のMySQLデータベースのバージョンが5.7.17以上であることを確認する /usr/local/mysql/bin/mysqld --バージョン /usr/local/mysql/bin/mysqld Ver 5.7.17 (x86_64 上の linux-glibc2.5 用) (MySQL コミュニティ サーバー (GPL)) [2] 実験環境では、1つのホストに3つのMySQLサーバーをインストールし、その3つでグループレプリケーショングループを形成します。 /tmp/4406.cnf の内容は次のとおりです。 [mysqld] ####: グローバル用 ユーザー =jianglexing #mysql ベースディレクトリ =/usr/local/mysql # /usr/local/mysql/ データディレクトリ =/tmp/4406/ # /usr/local/mysql/data サーバーID =4406 # 0 ポート =4406 # 3306 ソケット =/tmp/4406/mysql.sock # /tmp/mysql.sock 自動増分 = 1 # 1 自動増分オフセット =1 # 1 小文字テーブル名 = 1 # 0 secure_file_priv = # ヌル ####: binlog用 binlog_format =行 # 行 log_bin =mysql-bin # オフ binlog_rows_query_log_events = オン # オフ log_slave_updates = オン # オフ 有効期限 =4 # 0 binlog_cache_size = 32768 # 32768 (32k) binlog_checksum =なし # CRC32 sync_binlog =1 # 1 ####: エラーログ用 log_error =mysql-err.log # /usr/local/mysql/data/localhost.localdomain.err ####: 遅いクエリログ用 ####: gtidの場合 gtid_mode = オン # オフ 強制GTID一貫性 = オン # オフ ####: レプリケーション用 master_info_repository =テーブル # ファイル relay_log_info_repository =テーブル # ファイル ####: グループレプリケーション用 transaction_write_set_extraction =XXHASH64 # オフ ルーズグループレプリケーショングループ名="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" # ルーズグループレプリケーション開始オンブート =オフ # オフ ルーズグループレプリケーションローカルアドレス = "127.0.0.1:24901" # ルーズグループレプリケーショングループシード = "127.0.0.1:24901,127.0.0.1:24902,127.0.0.1:24903" ルーズグループレプリケーションブートストラップグループ =オフ # オフ ####: innodbの場合 デフォルトのストレージエンジン = 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:自動拡張 # ibtmp1:12M:自動拡張 innodb_log_group_home_dir = ./ # ./ innodb_log_files_in_group = 2 # 2 innodb_log_file_size =48M # 50331648(48M) innodb_file_format = バラクーダ # バラクーダ innodb_file_per_table = オン # オン 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 = オン # オフ innodb_deadlock_detect = オン # オン innodb_lock_wait_timeout = 50 # 50 innodb_spin_wait_delay = 6 # 6 innodb_autoinc_lock_mode =2 # 1 innodb_stats_persistent = オン # オン innodb_stats_persistent_sample_pages = 20 # 20 innodb_adaptive_hash_index = オン # オン innodb_change_buffering =all # すべて innodb_change_buffer_max_size = 25 # 25 innodb_flush_neighbors = 1 # 1 innodb_flush_method = O_DIRECT # innodb_doublewrite = オン # オン innodb_log_buffer_size =16M # 16777216(16M) innodb_flush_log_at_timeout = 1 # 1 innodb_flush_log_at_trx_commit = 1 # 1 自動コミット =1 # 1 [クライアント] 自動再ハッシュ /tmp/5506.cnf の内容は次のとおりです。 [mysqld] ####: グローバル用 ユーザー =jianglexing #mysql ベースディレクトリ =/usr/local/mysql # /usr/local/mysql/ データディレクトリ =/tmp/5506 # /usr/local/mysql/data サーバーID =5506 # 0 ポート =5506 # 3306 ソケット =/tmp/5506/mysql.sock # /tmp/mysql.sock 自動増分 = 1 # 1 自動増分オフセット =1 # 1 小文字テーブル名 = 1 # 0 secure_file_priv = # ヌル ####: binlog用 binlog_format =行 # 行 log_bin =mysql-bin # オフ binlog_rows_query_log_events = オン # オフ log_slave_updates = オン # オフ 有効期限 =4 # 0 binlog_cache_size = 32768 # 32768 (32k) binlog_checksum =なし # CRC32 sync_binlog =1 # 1 ####: エラーログ用 log_error =mysql-err.log # /usr/local/mysql/data/localhost.localdomain.err ####: 遅いクエリログ用 ####: gtidの場合 gtid_mode = オン # オフ 強制GTID一貫性 = オン # オフ ####: レプリケーション用 master_info_repository =テーブル # ファイル relay_log_info_repository =テーブル # ファイル ####: グループレプリケーション用 transaction_write_set_extraction =XXHASH64 # オフ ルーズグループレプリケーショングループ名="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" # ルーズグループレプリケーション開始オンブート =オフ # オフ ルーズグループレプリケーションローカルアドレス = "127.0.0.1:24902" # ルーズグループレプリケーショングループシード = "127.0.0.1:24901,127.0.0.1:24902,127.0.0.1:24903" ルーズグループレプリケーションブートストラップグループ =オフ # オフ ####: innodbの場合 デフォルトのストレージエンジン = 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:自動拡張 # ibtmp1:12M:自動拡張 innodb_log_group_home_dir = ./ # ./ innodb_log_files_in_group = 2 # 2 innodb_log_file_size =48M # 50331648(48M) innodb_file_format = バラクーダ # バラクーダ innodb_file_per_table = オン # オン 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 = オン # オフ innodb_deadlock_detect = オン # オン innodb_lock_wait_timeout = 50 # 50 innodb_spin_wait_delay = 6 # 6 innodb_autoinc_lock_mode =2 # 1 innodb_stats_persistent = オン # オン innodb_stats_persistent_sample_pages = 20 # 20 innodb_adaptive_hash_index = オン # オン innodb_change_buffering =all # すべて innodb_change_buffer_max_size = 25 # 25 innodb_flush_neighbors = 1 # 1 innodb_flush_method = O_DIRECT # innodb_doublewrite = オン # オン innodb_log_buffer_size =16M # 16777216(16M) innodb_flush_log_at_timeout = 1 # 1 innodb_flush_log_at_trx_commit = 1 # 1 自動コミット =1 # 1 /tmp/6606.cnf の内容は次のとおりです。 [mysqld] ####: グローバル用 ユーザー =jianglexing #mysql ベースディレクトリ =/usr/local/mysql # /usr/local/mysql/ データディレクトリ =/tmp/6606/ # /usr/local/mysql/data サーバーID =6606 # 0 ポート =6606 # 3306 ソケット =/tmp/6606/mysql.sock # /tmp/mysql.sock 自動増分 = 1 # 1 自動増分オフセット =1 # 1 小文字テーブル名 = 1 # 0 secure_file_priv = # ヌル ####: binlog用 binlog_format =行 # 行 log_bin =mysql-bin # オフ binlog_rows_query_log_events = オン # オフ log_slave_updates = オン # オフ 有効期限 =4 # 0 binlog_cache_size = 32768 # 32768 (32k) binlog_checksum =なし # CRC32 sync_binlog =1 # 1 ####: エラーログ用 log_error =mysql-err.log # /usr/local/mysql/data/localhost.localdomain.err ####: 遅いクエリログ用 ####: gtidの場合 gtid_mode = オン # オフ 強制GTID一貫性 = オン # オフ ####: レプリケーション用 master_info_repository =テーブル # ファイル relay_log_info_repository =テーブル # ファイル ####: グループレプリケーション用 transaction_write_set_extraction =XXHASH64 # オフ ルーズグループレプリケーショングループ名="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" # ルーズグループレプリケーション開始オンブート =オフ # オフ ルーズグループレプリケーションローカルアドレス = "127.0.0.1:24903" # ルーズグループレプリケーショングループシード = "127.0.0.1:24901,127.0.0.1:24902,127.0.0.1:24903" ルーズグループレプリケーションブートストラップグループ =オフ # オフ ####: innodbの場合 デフォルトのストレージエンジン = 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:自動拡張 # ibtmp1:12M:自動拡張 innodb_log_group_home_dir = ./ # ./ innodb_log_files_in_group = 2 # 2 innodb_log_file_size =48M # 50331648(48M) innodb_file_format = バラクーダ # バラクーダ innodb_file_per_table = オン # オン 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 = オン # オフ innodb_deadlock_detect = オン # オン innodb_lock_wait_timeout = 50 # 50 innodb_spin_wait_delay = 6 # 6 innodb_autoinc_lock_mode =2 # 1 innodb_stats_persistent = オン # オン innodb_stats_persistent_sample_pages = 20 # 20 innodb_adaptive_hash_index = オン # オン innodb_change_buffering =all # すべて innodb_change_buffer_max_size = 25 # 25 innodb_flush_neighbors = 1 # 1 innodb_flush_method = O_DIRECT # innodb_doublewrite = オン # オン innodb_log_buffer_size =16M # 16777216(16M) innodb_flush_log_at_timeout = 1 # 1 innodb_flush_log_at_trx_commit = 1 # 1 自動コミット =1 # 1 【3】3つのデータベースインスタンスを初期化する /usr/local/mysql/ に移動します ./bin/mysqld --defaultls-file=/tmp/4406.cnf --datadir=/tmp/4406 --initialize-insecrue を実行します。 ./bin/mysqld --defaultls-file=/tmp/5506.cnf --datadir=/tmp/5506 --initialize-insecrue を実行します。 ./bin/mysqld --defaultls-file=/tmp/6606.cnf --datadir=/tmp/6606 --initialize-insecrue を参照してください。 【4】グループレプリケーションの初期インスタンスを構成する /usr/local/mysql/bin/mysqld --defaults-file=/tmp/4406.cnf & mysql -h127.0.0.1 -uroot -P4406 -- ユーザーを追加 set sql_log_bin=0; '123456' で識別されるユーザー rpl_user@'%' を作成します。 *.* 上のレプリケーション スレーブ、レプリケーション クライアントを rpl_user@'%' に付与します。 '123456' で識別されるユーザー rpl_user@'127.0.0.1' を作成します。 *.* 上のレプリケーション スレーブ、レプリケーション クライアントを rpl_user@'127.0.0.1' に付与します。 '123456' で識別されるユーザー rpl_user@'localhost' を作成します。 *.* 上のレプリケーション スレーブ、レプリケーション クライアントを rpl_user@'localhost' に付与します。 sql_log_bin=1 を設定します。 -- レプリケーション資格情報を追加してマスターを変更する マスターユーザー='rpl_user', マスターパスワード = '123456' チャネル 'group_replication_recovery' の場合; -- グループ レプリケーション オブジェクトをインストールします。install plugin group_replication soname 'group_replication.so'; -- グループレプリケーションを開始します。set global group_replication_bootstrap_group=on; グループレプリケーションを開始します。 グローバル group_replication_bootstrap_group を off に設定します。 【5】5506インスタンスの設定手順は以下のとおりです。 /usr/local/mysql/bin/mysqld --defaults-file=/tmp/5506.cnf & mysql -h127.0.0.1 -uroot -P5506 -- ユーザーを追加 set sql_log_bin=0; '123456' で識別されるユーザー rpl_user@'%' を作成します。 *.* 上のレプリケーション スレーブ、レプリケーション クライアントを rpl_user@'%' に付与します。 '123456' で識別されるユーザー rpl_user@'127.0.0.1' を作成します。 *.* 上のレプリケーション スレーブ、レプリケーション クライアントを rpl_user@'127.0.0.1' に付与します。 '123456' で識別されるユーザー rpl_user@'localhost' を作成します。 *.* 上のレプリケーション スレーブ、レプリケーション クライアントを rpl_user@'localhost' に付与します。 sql_log_bin=1 を設定します。 -- レプリケーション資格情報を追加してマスターを変更する マスターユーザー='rpl_user', マスターパスワード = '123456' チャネル 'group_replication_recovery' の場合; -- グループ レプリケーション オブジェクトをインストールします。install plugin group_replication soname 'group_replication.so'; -- グループレプリケーションを開始する start group_replication; # これは初期化ではなく、参加だけであることに注意してください 【6】インスタンス6606の操作はインスタンス5506と同じです。これでグループレプリケーションの設定は完了です。 上記の MySQL グループ レプリケーション構成手順 (推奨) は、エディターが皆さんと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: jsオブジェクト指向カプセル化カスケードドロップダウンメニューリストの実装手順
React は、ユーザー インターフェイスを構築するための JavaScript ライブラリです。 ...
目次序文1. Vue2 のライフサイクルインスタンスのライフサイクルその他のライフサイクルフック2....
transform: scale(); スケーリングするとIEブラウザでジッターが発生します変換スケ...
コードは次のようになります。 。プロセス{ 境界線:1px 実線 #B7B7B8; 背景:#F8F8...
フォーム内の読み取り専用および無効な属性1. 読み取り専用:サーバーは、ユーザーがデータを変更するこ...
他の人から「つまらない」とか「時代遅れ」というフィードバックを受けて、それを変更しようとしたのに、更...
1.Docer CEをインストールして使用するこの記事では、CentOS 7 を例に Docker ...
1. Centosイメージを使用してローカルのyumソースをビルドするCentOS をインストール...
目次Viteを使用してvue + tsプロジェクトを作成するVue 3の3つの構文オプションAPIコ...
目次ヘッドレスブラウザとは何ですか?なぜ「ヘッドレス」ブラウザと呼ばれるのでしょうか?ヘッドレスブラ...
なぜprettierを使うのですか?大企業では、フロントエンド開発コードに独自のコード標準がある場合...
目次1. CentOS 7.9 20にDockerをインストールする2. MySQL クラスターをデ...
プロセス アドレス空間の分離は、現代のオペレーティング システムの注目すべき機能です。これは、「古い...
CSS 表示プロパティ注: !DOCTYPE が指定されている場合、Internet Explore...
最近、会社でアプリを開発する準備をしており、最終的に開発には uni-app フレームワークを使用す...