MYSQLマスター mysqlには自己成長フィールドがあり、データベースのメイン同期を実行するときに、自己成長の2つの関連する構成(auto_increment_offsetとauto_increment_increment)を設定する必要があります。 auto_increment_offsetは、自己インクリメントフィールドがその数値から始まり、その値の範囲が1であることを示します。65535 auto_increment_incrementは、毎回の自己インクリメントフィールドの増分を表します。デフォルト値は1で、値の範囲は1です。65535 マスター同期構成では、両方のサーバーのauto_increment_incrementの増加をそれぞれ2に構成し、auto_increment_offsetをそれぞれ1と2に構成する必要があります。 このようにして、2つのサーバーが同時に更新されているときに、自己インクリメントフィールドの値間の競合を回避できます。 init:ファイアウォールをオフにします systemctl stopfirewalld マスター1(最初にメインライブラリの構成ファイルを変更し、再起動して有効にし、次にスレーブライブラリの構成ファイルを実行し、再起動して有効にします) vi /etc/my.cnf#[mysqld]このフィールド サーバーID = 1 log-bin = mysql-bin sync_binlog = 1 binlog_format =混合 自動インクリメント-インクリメント= 2 自動インクリメントオフセット= 1 スレーブスキップエラー=すべて 1.ユーザーを作成します *。*上のレプリケーションスレーブ、レプリケーションクライアントを '1qaz @WSX'で識別されるrepl @ '%'に付与します。 2.rootユーザーのパスワードを変更します '1qaz @WSX'で識別されるユーザー 'root' @ 'localhost'を変更します。 3.ロックテーブル MariaDB [(none)]>読み取りロックでテーブルをフラッシュします。 クエリOK、影響を受ける行は0(0.00秒) 4.ノードを表示します MariaDB [(none)]>マスターステータスを表示します。 + ------------------ + ---------- + -------------- + ---- -------------- + | ファイル| 位置| Binlog_Do_DB | Binlog_Ignore_DB | + ------------------ + ---------- + -------------- + ---- -------------- + | mysql-bin.000003 | 411 | | | + ------------------ + ---------- + -------------- + ---- -------------- + 5.同期を設定します masterをmaster_host = '10 .211.55.172 '、master_user =' repl '、master_password =' 1qaz @ WSX '、master_log_file =' mysql-bin.000004 '、master_log_pos = 1064に変更します。 MariaDB [(none)]>スレーブを開始します。 6、 MariaDB [(none)]>スレーブステータスを表示\ G; *************************** 1。行******************** ******* Slave_IO_State:マスターがイベントを送信するのを待っています Master_Host:10.211.55.172 Master_User:repl Master_Port:3306 Connect_Retry:60 Master_Log_File:mysql-bin.000004 Read_Master_Log_Pos:411 Relay_Log_File:mariadb-relay-bin.000002 Relay_Log_Pos:529 Relay_Master_Log_File:mysql-bin.000004 Slave_IO_Running:はい Slave_SQL_Running:はい 7、 MariaDB [(none)]>テーブルのロックを解除します。 クエリOK、影響を受ける行は0(0.00秒) ================================================== ============ マスター2 vi /etc/my.cnf#[mysqld]このフィールド サーバーID = 2 log-bin = mysql-bin sync_binlog = 1 binlog_format =混合 自動インクリメント-インクリメント= 2 自動インクリメントオフセット= 2 スレーブスキップエラー=すべて 1.ユーザーを作成します *。*上のレプリケーションスレーブ、レプリケーションクライアントを '1qaz @WSX'で識別されるrepl @ '%'に付与します。 2.rootユーザーのパスワードを変更します '1qaz @WSX'で識別されるユーザー 'root' @ 'localhost'を変更します。 3.ロックテーブル 読み取りロックでテーブルをフラッシュします。 MariaDB [(none)]>読み取りロックでテーブルをフラッシュします。 クエリOK、影響を受ける行は0(0.00秒) 4.ノードを表示します MariaDB [(none)]>マスターステータスを表示します。 + ------------------ + ---------- + -------------- + ---- -------------- + | ファイル| 位置| Binlog_Do_DB | Binlog_Ignore_DB | + ------------------ + ---------- + -------------- + ---- -------------- + | mysql-bin.000004 | 411 | | | + ------------------ + ---------- + -------------- + ---- -------------- + セットの1行(0.00秒) 5.同期を設定します masterをmaster_host = '10 .211.55.171 '、master_user =' repl '、master_password =' 1qaz @ WSX '、master_log_file =' mysql-bin.000003 '、master_log_pos = 411に変更します。 MariaDB [(なし)]>スレーブを開始 6.同期を表示します MariaDB [(none)]>スレーブステータスを表示\ G; *************************** 1。行******************** ******* Slave_IO_State:マスターがイベントを送信するのを待っています Master_Host:10.211.55.171 Master_User:repl Master_Port:3306 Connect_Retry:60 Master_Log_File:mysql-bin.000003 Read_Master_Log_Pos:411 Relay_Log_File:mariadb-relay-bin.000002 Relay_Log_Pos:529 Relay_Master_Log_File:mysql-bin.000003 Slave_IO_Running:はい Slave_SQL_Running:はい 7、 MariaDB [(none)]>テーブルのロックを解除します。 クエリOK、影響を受ける行は0(0.00秒) 2、同期を確認します 主1操作: MariaDB [(none)]>データベース1804bを作成します。 クエリOK、影響を受ける1行(0.00秒) MariaDB [(none)]>データベースを表示します。 + -------------------- + | データベース| + -------------------- + | information_schema | | 1804b | | mysql | | performance_schema | | テスト| + -------------------- + セットで5行(0.00秒) MariaDB [(なし)]> 1804bを使用します。 データベースが変更されました MariaDB [1804b]> create table student(id int(10)PRIMARY KEY AUTO_INCREMENT、name varchar(50)NOT NULL、age int(2)); クエリOK、影響を受ける行は0(0.00秒) MariaDB [1804b]>学生の値に挿入( '1'、 'zhangsan'、 '20'); クエリOK、影響を受ける1行(0.00秒) MariaDB [1804b]>学生の値に挿入( ''、 'lisi'、 '20'); クエリOK、1行が影響を受け、1警告(0.00秒) 主2操作: MariaDB [(なし)]> MariaDB [(none)]>データベースを表示します。 + -------------------- + | データベース| + -------------------- + | information_schema | | 1804b | | mysql | | performance_schema | | テスト| + -------------------- + セットで5行(0.00秒) MariaDB [(なし)]> 1804bを使用します。 テーブル名と列名を完成させるためのテーブル情報の読み取り この機能をオフにすると、-Aを使用してすばやく起動できます。 データベースが変更されました MariaDB [1804b]>テーブルを表示します。 + ----------------- + | Tables_in_1804b | + ----------------- + | 学生| + ----------------- + セットの1行(0.00秒) MariaDB [1804b]>学生から*を選択 ->; + ---- + ---------- + ------ + | id | 名前| 年齢| + ---- + ---------- + ------ + | 1 |張山| 20 | | 3 | 溶解| 20 | + ---- + ---------- + ------ + セットで2行(0.00秒) MariaDB [1804b]> キープアライブを構成する キープアライブ global_defs { Notification_email { [email protected] } notify_email_from [email protected] #alias root = "[email protected]" smtp_server 127.0.0.1 #smtp smtp_connect_timeout 30 router_id LVS_DEVEL vrrp_skip_check_adv_addr #vrrp_strict#厳密なvrrpプロトコル、コメントがない場合、IPTABLESは毎回リリースする必要があり、デフォルトではVIPのデータパケットをドロップします vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_script chk_mysql_port {#mysqlサービスが実行されているかどうかを確認します。プロセス、スクリプト検出など、多くの方法があります。 スクリプト "/opt/chk_mysql.sh"#ここではスクリプトによって監視されています interval 2 #Script実行間隔、2秒ごとにチェック weight -5#スクリプトの結果によって引き起こされる優先度の変更。検出が失敗した場合(スクリプトがゼロ以外を返す場合)、優先度は-5です。 fall 2#検出が2回続けて失敗した場合、それは真の失敗と見なされます。優先度を下げるために重みを使用します(1〜255の間) rise 1#テストが1回成功した場合、成功したと見なされます。ただし、優先度は変更しないでください } vrrp_instance VI_1 { 状態マスター interface eth0#仮想IPのネットワークカードインターフェイスを指定します virtual_router_id 51 優先度100#マスタースレーブの重みの区別、値が大きいほど、重みが高くなり、VIPがどちら側にあるか advert_int 1 認証{ auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.211.55.180 } track_script { chk_mysql_port } } [root @ master1〜] #vim /opt/chk_mysql.sh #!/ bin / bash counter = $(netstat -na | grep "LISTEN" | grep "3306" | wc -l) if ["$ {counter}" -eq 0]; その後 /etc/init.d/keepalived stop あります
MYSQLマスター+キープアライブ
おすすめ
転載: blog.51cto.com/slapping/2601909
おすすめ
ランキング