Mysql5.5 デュアルマシン ホットスタンバイ実装2つのMySQLをインストールするMySQL 5.5をインストールする sudo apt-getアップデート apt-get で aptitude をインストール aptitude で mysql-server-5.5 をインストールします またはsudo apt-cache search mariadb-server apt-get install -y mariadb-server-5.5 アンインストール sudo apt-get 削除 mysql-* dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P 権限を設定する テキストエディタで /etc/mysql/my.cnf を開きます。 #バインドアドレス = 127.0.0.1 mysql -u ルート -p 'root' で識別される root@'%' に、 grant オプションを使用して *.* のすべての権限を許可します。 権限をフラッシュします。 マスター間同期用に2つのMySQLサーバーを構成する ノード1を構成する
server-id = 1 #ノードID log_bin = mysql-bin.log #logbinlog_format = "ROW" #ログ形式 auto_increment_increment = 2 #自動増分 ID 間隔 (= ID の競合を防ぐためのノード数) auto_increment_offset = 1 #自動増分ID(ノードID)の開始値 binlog_ignore_db=mysql #同期されていないデータベース binlog_ignore_db=information_schema binlog_ignore_db=パフォーマンススキーマ MySQLを再起動する サービスmysqlの再起動 mysql -u ルート -p ノード1のbinlogログの位置を記録する マスターステータスを表示します。 mysql-bin.000001 245 mysql、情報スキーマ、パフォーマンススキーマ ノード2を構成する
サーバーID = 2 log_bin = mysql-bin.log relay_log = mysql-relay-bin.log #リレーログ log_slave_updates = ON #リレーログが実行されると、変更がログに記録されます read_only = 0 binlog_format = "行" 自動増分 = 2 自動増分オフセット = 2 binlog_ignore_db = mysql binlog_ignore_db=情報スキーマ binlog_ignore_db=パフォーマンススキーマ レプリケート_ignore_db=mysql replicate_ignore_db=情報スキーマ replicate_ignore_db=パフォーマンススキーマ マスターとスレーブの設定 mysql -u ルート -p マスターを変更 MASTER_HOST='192.168.1.21', MASTER_USER='root'、 MASTER_PASSWORD='root'、 MASTER_LOG_FILE='mysql-bin.000001', マスターログPOS = 245; #同期を開始スレーブを開始 #同期ステータスSlave_IO_RunningとSlave_SQL_Runningの両方がYesになっている必要があります スレーブステータスを表示します。 ノード2のbinlogログの位置を記録する マスターステータスを表示します。 mysql-bin.000001 1029 mysql、情報スキーマ、パフォーマンススキーマ マスター(ノード1)を構成する
リレーログ = mysql-リレー-bin.log log_slave_updates = オン 読み取り専用 = 0 レプリケート_ignore_db=mysql replicate_ignore_db=情報スキーマ replicate_ignore_db=パフォーマンススキーマ 同期をオンにする mysql -u ルート -p マスターを変更 MASTER_HOST='192.168.1.20', MASTER_USER='root'、 MASTER_PASSWORD='root'、 MASTER_LOG_FILE='mysql-bin.000001', マスターログPOS = 1029; #同期を開始スレーブを開始 #同期ステータスSlave_IO_RunningとSlave_SQL_Runningの両方がYesになっている必要があります スレーブステータスを表示します。 例外処理
Keepalivedをインストールして設定する Keepalivedをインストールする #依存 sudo apt-get install -y libssl-dev sudo apt-get install -y openssl sudo apt-get install -y libpopt-dev sudo apt-get install -y libnl-dev libnl-3-dev libnl-genl-3.dev apt-get インストールデーモン apt-get で libc-dev をインストールします apt-get で libnfnetlink-dev をインストールします apt-get で libnl-genl-3.dev をインストールします #インストール apt-get インストール keepalived #コンパイルとインストール cd /usr/local https://www.keepalived.org/software/keepalived-2.2.2.tar.gz をダウンロードしてください tar -zxvf キープアライブド-2.2.2.tar.gz mv キープアライブド-2.2.2 キープアライブド ./configure --prefix=/usr/local/keepalived sudo メイク && メイク インストール #ログを開く sudo vim /etc/rsyslog.d/50-default.conf *.=情報;*.=通知;*.=警告;\ auth、authpriv.none;\ cron、デーモン。なし;\ メール、ニュース.なし -/var/log/messages sudo サービス rsyslog を再起動 tail -f /var/log/メッセージ sudo mkdir /etc/sysconfig sudo cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ sudo cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ sudo cp /usr/local/keepalived/sbin/keepalived /sbin/ sudo mkdir /etc/keepalived sudo cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ ノード情報を構成する ノード1 192.168.1.21
グローバル定義 { router_id MYSQL_HA #現在のノード名} vrrp_インスタンス VI_1 { 状態 BACKUP #両方の構成ノードが BACKUP です interface eth0 #仮想IPをバインドするネットワークインターフェース virtual_router_id 51 #VRRPグループ名。各ノードが同じVRRPグループに属していることを示すために、両方のノードの設定は同じである必要があります priority 101 #ノードの優先度。他のノードの優先度を低いものに変更します advert_int 1 #マルチキャスト情報の送信間隔。両方のノードの設定は同じである必要があります nopreempt #プリエンプトしません。優先度の高いマシンにのみ設定し、優先度の低いマシンには設定しないでください authentication { #認証情報を設定します。両方のノードで一致している必要があります auth_type PASS 認証パスワード 123456 } virtual_ipaddress { #仮想IPを指定します。両方のノードに同じ192.168.1.111を設定する必要があります。 } } virtual_server 192.168.1.111 3306 { #Linux 仮想サーバー (LVS) 構成 delay_loop 2 #2 秒ごとに real_server の状態をチェック lb_algo wrr #LVS スケジューリング アルゴリズム、rr|wrr|lc|wlc|lblc|sh|dh lb_kind DR #LVS クラスター モード、NAT|DR|TUN persistence_timeout 60 #セッションホールドタイムプロトコルTCP #使用されているプロトコルはTCPかUDPか リアルサーバー 192.168.1.21 3306 { 重み 3 #重みnotify_down /usr/local/bin/mysql.sh #サービスダウンを検出した後に実行されるスクリプト TCP_CHECK { connect_timeout 10 #接続タイムアウト nb_get_retry 3 #再接続回数 delay_before_retry 3 #再接続間隔 connect_port 3306 #ヘルスチェックポート} } } ノード2 192.168.1.20
グローバル定義 { router_id MYSQL_HA #現在のノード名} vrrp_インスタンス VI_1 { 状態 BACKUP #両方の構成ノードが BACKUP です interface eth0 #仮想IPをバインドするネットワークインターフェース virtual_router_id 51 #VRRPグループ名。各ノードが同じVRRPグループに属していることを示すために、両方のノードの設定は同じである必要があります priority 100 #ノードの優先度。他の優先度は低くする必要があります advert_int 1 #マルチキャスト情報の送信間隔。両方のノードの設定は同じである必要があります nopreempt #プリエンプトしないでください。優先度の高いマシンにのみ設定し、優先度の低いマシンには設定しないでください authentication { #認証情報を設定します。両方のノードで一致している必要があります auth_type PASS 認証パスワード 123456 } virtual_ipaddress { #仮想IPを指定します。両方のノードに同じ192.168.1.111を設定する必要があります。 } } virtual_server 192.168.1.111 3306 { #Linux 仮想サーバー (LVS) 構成 delay_loop 2 #2 秒ごとに real_server の状態をチェック lb_algo wrr #LVS スケジューリング アルゴリズム、rr|wrr|lc|wlc|lblc|sh|dh lb_kind DR #LVS クラスター モード、NAT|DR|TUN persistence_timeout 60 #セッションホールドタイムプロトコルTCP #使用されているプロトコルはTCPかUDPか リアルサーバー 192.168.1.20 3306 { 重み 3 #重みnotify_down /usr/local/bin/mysql.sh #サービスダウンを検出した後に実行されるスクリプト TCP_CHECK { connect_timeout 10 #接続タイムアウト nb_get_retry 3 #再接続回数 delay_before_retry 3 #再接続間隔 connect_port 3306 #ヘルスチェックポート} } } 例外処理スクリプトの作成
#!/bin/sh キルオールキープアライブ 権限を割り当てる
サービスkeepalivedの再起動 ログを表示 tail -f /var/log/メッセージ 仮想IPを表示 ip addr # または ip a または ifconfig #マスターノードには仮想IPが与えられます eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast 状態 UP グループ デフォルト qlen 1000 リンク/イーサ 52:54:9e:17:53:e5 brd ff:ff:ff:ff:ff:ff inet 192.168.1.21/24 brd 192.168.1.255 スコープ グローバル eth0 valid_lft 永久 preferred_lft 永久 inet 192.168.1.111/32 スコープ グローバル eth0 valid_lft 永久 preferred_lft 永久 マスターノードのmysqlサービスをシャットダウンします サービスmysql停止 ログ情報 #マスターノード 8月10日 15:00:30 i-7jaope92 Keepalived_healthcheckers[4949]: [192.168.1.20]:3306へのTCP接続に失敗しました!!! 8月10日 15:00:30 i-7jaope92 Keepalived_healthcheckers[4949]: VS [192.168.1.111]:3306 からサービス [192.168.1.20]:3306 を削除しています 8月10日 15:00:30 i-7jaope92 Keepalived_healthcheckers[4949]: VS [192.168.1.111]:3306 でサービス [192.168.1.20]:3306 の [/usr/local/bin/mysql.sh] を実行しています 8月10日 15:00:30 i-7jaope92 Keepalived_healthcheckers[4949]: VS [192.168.1.111]:3306のクォーラム1-0=1 > 0が失われました 8月10日 15:00:30 i-7jaope92 Keepalived_vrrp[4950]: VRRP_Instance(VI_1) が0優先度を送信しています 8月10日 15:00:30 i-7jaope92 カーネル: [100918.976041] IPVS: __ip_vs_del_service: 入力 #スレーブノード 8月10日 15:00:31 i-6gxo6kx7 Keepalived_vrrp[718]: VRRP_Instance(VI_1) がマスター状態に移行 8月10日 15:00:32 i-6gxo6kx7 Keepalived_vrrp[718]: VRRP_Instance(VI_1)がマスター状態に入る 仮想IPはマスターノードからスレーブノードに移動する ip a eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast 状態 UP グループ デフォルト qlen 1000 リンク/イーサ 52:54:9e:e7:26:5c brd ff:ff:ff:ff:ff:ff inet 192.168.1.20/24 brd 192.168.1.255 スコープ グローバル eth0 valid_lft 永久 preferred_lft 永久 inet 192.168.1.111/32 スコープ グローバル eth0 valid_lft 永久 preferred_lft 永久 MySQL接続テスト
mysql -h 192.168.1.111 -u ルート -p これで、Ubuntu 上での MySQL + Keepalived の高可用性の構築 (デュアルアクティブ ホットスタンバイ) に関するこの記事は終了です。MySQL + Keepalived の高可用性に関するその他の関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: HTMLフレームワーク_Powernode Javaアカデミー
>>: ネイティブ CSS で無限テキストカルーセルを実装する一般的な方法
目次1. ストアド関数を作成する2. ストアド関数の呼び出し3. 保存された関数を削除する4. スト...
目次概要コンポーネント間でデータを共有する方法Vuex の原則の紹介Vuexはコンポーネントのグロー...
プロセスは CPU とメモリ内で実行されるプログラム コードであり、各プロセスは 1 つ以上のプロセ...
1. 設定ファイルディレクトリを作成するcd /ホームディレクトリmkdir frp最終的なディレク...
mysql explain コマンドは、MySQL がインデックスを使用して選択ステートメントを処理...
Vue のフロントエンドとバックエンドのポートが一致していませんconfig index.jsファイ...
目次序文axiosカプセル化の利点パッケージのアイデア設定の優先順位axiosインスタンス構成1. ...
目次1. 仮想マシンをダウンロードする2. 仮想マシンのインストールVMware のダウンロードとイ...
1 QPS 計算 (1 秒あたりのクエリ数) MyISAMエンジンベースのDBの場合 MySQL&g...
MySQL は、スウェーデンの会社 MySQL AB によって開発され、現在は Oracle が所有...
ハッシュ結合ハッシュ結合は実行にインデックスを必要とせず、ほとんどの場合、現在のブロックネストループ...
方法 1: readonly 属性を true に設定します。入力値=読み取り専用 readOnly...
では、ドメイン名を登録して仮想ホストを購入した後、IE でドメイン名を入力して Web サイトを開く...
序文Intel のハイパースレッディング テクノロジーにより、1 つの物理コア上で 2 つのスレッド...
<br />原文: http://andymao.com/andy/post/104.h...