91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql3

發布時間:2020-08-01 06:46:19 來源:網絡 閱讀:655 作者:Vincent一馬 欄目:MySQL數據庫

MHA(Master High Availability)是目前在MySQL高可用方面相對成熟的一個解決方案,MHA在監控到master節點故障時,會提升其中擁有最新數據的slave節點成為新的master節點,在此期間,MHA會通過于其它從節點獲取額外信息來避免一致性方面的問題。MHA還提供了master節點的在線切換功能。

MHA 服務有兩種角色,MHA Manager(管理節點)和 MHA Node(數據節點):

MHA Manager:通常單獨部署在一臺獨立機器上管理多個 master/slave 集群,每個master/slave集群稱作一個application。

MHA node:運行在每臺MySQL服務器上(master/slave/manager),它通過監控具備解析和清理logs功能的腳本來加快故障轉移。

環境

本次實驗環境共有四個節點,其角色分配如下所示。

manager: MHA Manager

master: MariaDB master

slave1: MariaDB slave

slave2: MariaDB slave

修改各節點名字,各節點的/etc/hosts 文件配置內容中添加:

172.16.1.2 manager.zrs.com manager

172.16.1.3 master.zrs.com master

172.16.1.4 slave1.zrs.com slave1

172.16.1.5 slave2.zrs.com slave2

初始主節點master配置:

server_id=1

relay_log=relay-log

log_bin=master-log

節點slave1的配置:

server_id=2

relay_log=relay-log

log_bin=master-log

relay_log_purge=0

read_only=1

節點slave2的配置:

server_id=3

relay_log=relay-log

log_bin=master-log

relay_log_purge=0

read_only=1

下面進行主從復制架構

主服務器

授權從服務器,并刷新

MariaDB [(none)]> grant replication slave,replication client on . to 'repluser'@'172.16.1.4'identified by 'replpass';

MariaDB [(none)]> grant replication slave,replication client on . to 'repluser'@'172.16.1.5'identified by 'replpass';

MariaDB [(none)]> flush privileges;

從服務器配置

兩個slave都指定主服務器

MariaDB [(none)]> change master to master_host='172.16.1.3',master_user='repluser',master_password='replpass',master_log_file='binlog.000003',master_log_pos=245;

開啟io線程和sql線程

MariaDB [(none)]> start slave io_thread;

MariaDB [(none)]> start slave sql_thread;

在所有MySQL節點授權

MariaDB [(none)]> GRANT ALL ON . TO 'mhamngr'@'172.16.1.%' IDENTIFIED BY 'mhapass';

建立免鑰通信

MHA集群中的各節點彼此之間均需要基于ssh互信通信,以實現遠程控制及數據管理功能。可在Manager節點生成密鑰對,并設置其可遠程連接本地主機后,將私鑰文件及authorized_keys文件復制給余下的所有節點即可。

[root@manager ~]# ssh-keygen -t rsa -P ''

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): .ssh/id_rsa

Your identification has been saved in .ssh/id_rsa.

Your public key has been saved in .ssh/id_rsa.pub.

The key fingerprint is:

80:59:23:b9:f8:ce:7e:86:66:ad:23:82:b3:d9:a8:81 root@manager.zrs.com

The key's randomart image is:

+--[ RSA 2048]----+

| ..o |

| .= . |

| .o.. |

| . . . |

| . S |

|. . |

|E o o |

|+=. B + |

|*+.=o= |

+-----------------+

[root@manager ~]# cat .ssh/id_rsa.pub >> .ssh/authorized_keys

[root@manager ~]# chmod go= .ssh/authorized_keys

[root@manager ~]# scp -p .ssh/id_rsa .ssh/authorized_keys root@master:/root/.ssh/

The authenticity of host 'master (172.16.1.3)' can't be established.

ECDSA key fingerprint is 65:f7:d6:d7:ae:3b:a2:dc:2b:bc:33:64:0e:47:11:b4.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'master' (ECDSA) to the list of known hosts.

root@master's password:

id_rsa 100% 1675 1.6KB/s 00:00

authorized_keys 100% 402 0.4KB/s 00:00

[root@manager ~]# scp -p .ssh/id_rsa .ssh/authorized_keys root@slave1:/root/.ssh/

The authenticity of host 'slave1 (172.16.1.4)' can't be established.

ECDSA key fingerprint is eb:b4:c4:c4:aa:15:2c:f8:6b:e8:cc:59:75:7a:a5:89.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'slave1' (ECDSA) to the list of known hosts.

root@slave1's password:

id_rsa 100% 1675 1.6KB/s 00:00

authorized_keys 100% 402 0.4KB/s 00:00

[root@manager ~]# scp -p .ssh/id_rsa .ssh/authorized_keys root@slave2:/root/.ssh/

The authenticity of host 'slave2 (172.16.1.5)' can't be established.

ECDSA key fingerprint is be:2f:9f:d7:f8:2e:09:b1:7d:29:c2:76:53:0f:d2:94.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'slave2,172.16.1.5' (ECDSA) to the list of known hosts.

root@slave2's password:

id_rsa 100% 1675 1.6KB/s 00:00

authorized_keys 100% 402 0.4KB/s 00:00

安裝MHA

除了源碼包,MHA官方也提供了rpm格式的程序包,其下載地址為https://code.google.com/p/mysql-master-ha/wiki/Downloads?tm=2。這次安裝是使用的rpm格式,在manager和node的所有節點均需安裝MHA Node。

安裝 MHA Manager

rpm安裝方式:

[root@manager ~]# yum install perl-DBD-MySQLperl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager

[root@manager ~]# rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm

[root@manager ~]# rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm

tar包安裝方式:

tar -zxf mha4mysql-manager-0.56.tar.gz

cd mha4mysql-manager-0.56

perl Makefile.PL

make

make install

安裝 MHA Node

rpm安裝方式:

~]# yum install perl-DBD-MySQL

~]# rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm

tar包安裝方式:

tar -zxfmha4mysql-node-0.56.tar.gz

cd mha4mysql-node-0.56

perl Makefile.PL

make

make install

初始化 MHA

Manger節點需要為每個監控的master/slave集群提供一個專用的配置文件,而所有的master/slave 集群也可共享全局配置。全局配置文件默認為/etc/masterha_default.cnf,其為可選配置。如果僅監控一組 master/slave集群,也可直接通過application的配置來提供各服務器的默認配置信息。而每個application的配置文件路徑為自定義,本次實驗將使用/etc/masterha/app1.cnf

[server default]

user=mhamngr

password=mhapass

manager_workdir=/data/masterha/app1

manager_log=/data/masterha/app1/manager.log

remote_workdir=/data/masterha/app1

ssh_user=root

repl_user=repluser

repl_password=replpass

ping_interval=1

[server1]

hostname=172.16.1.3

candidate_master=1

[server2]

hostname=172.16.1.4

candidate_master=1

[server3]

hostname=172.16.1.5

檢測各節點間ssh互信通信配置是否正常

[root@manager ~]# masterha_check_ssh --conf=/etc/masterha/app1.cnf

看到輸出的信息中,最后一行顯示如下,表示其通過檢測。

[info] All SSH connection tests passed successfully.

檢查管理的MySQL復制集群的連接配置參數是否正常

[root@manager ~]# masterha_check_repl --conf=/etc/masterha/app1.cnf

看到輸出的信息中,最后一行顯示如下,表示其通過檢測。

MySQL Replication Health is OK.

啟動MHA

[root@manager ~]# nohup masterha_manager --conf=/etc/masterha/app1.cnf > /data/masterha/app1/manager.log 2>&1 &

查看master節點的狀態

[root@manager ~]# masterha_check_status --conf=/etc/masterha/app1.cnf

app1 (pid:23265) is running(0:PING_OK), master:172.16.1.3

[root@manager ~]#

停止MHA

[root@manager ~]# masterha_stop --conf=/etc/masterha/app1.cnf

Stopped app1 successfully.

MHA 提供諸多工具程序,其常見的如下所示。

Manager 節點:

  • masterha_check_ssh:MHA 依賴的 SSH 環境檢測工具;

  • masterha_check_repl:MySQL 復制環境檢測工具;

  • masterha_manager:MHA 服務主程序;

  • masterha_check_status:MHA 運行狀態探測工具;

  • masterha_master_monitor:MySQL master 節點可用性監測工具;

  • masterha_master_switch:master 節點切換工具;

  • masterha_conf_host:添加或刪除配置的節點;

  • masterha_stop:關閉 MHA 服務的工具;

Node 節點:

  • save_binary_logs:保存和復制 master 的二進制日志:

  • apply_diff_relay_logs:識別差異的中繼日志事件并應用于其它 slave:

  • filter_mysqlbinlog:去除不必要的 ROLLBACK 事件(MHA 已不再使用這個工具):

  • purge_relay_logs:清除中繼日志(不會阻塞 SQL 線程):

自定義擴展:

  • secondary_check_script:通過多條網絡路由檢測 master 的可用性;

  • master_ip_failover_script:更新 application 使用的 masterip;

  • shutdown_script:強制關閉 master 節點;

  • report_script:發送報告;

  • init_conf_load_script:加載初始配置參數;

  • master_ip_online_change_script:更新 master 節點 ip 地址;

測試故障轉移

在master節點上面關閉mariadb服務

[root@master ~]# killall -9 mysqld mysqld_safe

查看日志發現,172.16.1.3這個節點down了,172.16.1.4提升為master。

使用zabbix完成masterha-manager重新啟動

大致步驟

略過zabbix server和agent端的安裝步驟,我在manager主機上同時安裝了zabbix server和zabbix agent,監控剛才設置的nohup啟動的manager管理進程,一旦發現這個后臺命令執行結束了,立即通過zabbix里面設置的條件和觸發器,來調用腳本,使得manager進程始終運行在manager上。

在agent上需要完成的配置:

1.zabbix用戶擁有所需要的管理權限

編輯/etc/sudoers文件

注釋如下行:因為系統默認是要能夠通過tty登陸的用戶,執行命令,zabbix沒有可以登錄系統的權限,所以要把這個注釋

添加如下行:這樣做不怎么安全,生產環境下,要用更為安全的方法

#Defaults requiretty

zabbix ALL=(ALL)NOPASSWD:ALL

2.agent進程要允許執行遠程命令

開啟遠程命令,即將/etc/zabbix/zabbix_agentd.conf配置文件中的該配置設置為1即可。

EnableRemoteCommands=1

3.開啟服務

[root@manager ~]# systemctl start zabbix-agent.service

4.在客戶端的界面上設置Hosts,items,Triggers,Actions(Action,Conditions,Operations),

需要注意的是Operations需要設置Commands調用腳本來啟動MHA程序

[root@manager ~]# cat mannager.sh

nohup masterha_manager --conf=/etc/masterha/app1.cnf > /data/masterha/app1/manager.log 2>&1 &

5.可以測試zabbix是否根據設置的事務動作,完成腳本的調用,完成manager的后臺啟動

關閉nohup執行的進程用

[root@manager ~]# kill -9 +id #這個id號需要先查詢

手動get獲取:

[root@manager ~]# zabbix_get -s 172.16.1.2 -k masterha.manager

2

再次get獲取:

[root@manager ~]# zabbix_get -s 172.16.1.2 -k masterha.manager


0

當這里顯示是0了,同時通過ps命令可以查看這個進程確實已經啟動了,于是使用zabbix完成masterha-manager重新啟動就成功了。

zabbix_get是在命令行下獲取數值的zabbix命令:

-s 要查的ip地址,本地或者遠程的都可以

-p zabbix_agentd的端口

-k key值

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

科尔| 横峰县| 本溪| 庐江县| 怀宁县| 额济纳旗| 喀喇沁旗| 武隆县| 沁水县| 广元市| 隆回县| 台湾省| 徐汇区| 亚东县| 金华市| 海淀区| 长岛县| 平罗县| 沙河市| 嘉荫县| 通山县| 海口市| 镇巴县| 桑日县| 门头沟区| 历史| 肃宁县| 宁陕县| 郸城县| 宜城市| 娄烦县| 西乌| 花垣县| 凤山县| 衡阳县| 玉环县| 沧州市| 开封县| 静安区| 长寿区| 庆阳市|