当前位置: 首页 > news >正文

上海外贸网站制作花瓣网免费素材图库官网

上海外贸网站制作,花瓣网免费素材图库官网,西安网站建设云阔,wordpress那个版本好用目录 工作原理 Node#xff08;节点#xff09; Manager#xff08;管理器#xff09; Node和Manager的协作 故障转移流程 优势 配置和管理 配置主从复制 MHA实现高可用 MySQL Master High Availability#xff08;MHA#xff09;是一个开源的高可用性解决方案节点 Manager管理器 Node和Manager的协作 故障转移流程 优势 配置和管理 配置主从复制 MHA实现高可用 MySQL Master High AvailabilityMHA是一个开源的高可用性解决方案专为MySQL数据库设计。它由Percona公司开发旨在帮助确保MySQL数据库的高可用性和自动化故障转移。让我们详细了解一下MySQL MHA的工作原理、优势以及如何配置和管理。 工作原理 Node节点 在MHA中Node指的是MySQL数据库服务器的实例包括主节点Master和备用节点Slave。每个Node都需要安装MySQL实例并参与主从复制的架构。以下是Node的一些关键功能和特点 主节点Master主节点是负责处理写操作的MySQL实例。它接收来自应用程序的写入请求并将这些变更传播到备用节点。 备用节点Slave备用节点是从主节点复制数据的MySQL实例。它们负责处理读操作并且在主节点发生故障时可以被提升为新的主节点。 数据同步Node之间通过MySQL的主从复制功能进行数据同步。主节点上的更改会被传播到备用节点保持数据一致性。 检查节点健康MHA中的Node会定期向Manager报告自己的状态包括健康状态、复制延迟等信息。 故障转移候选者在主节点发生故障时备用节点会竞争成为新的主节点。Node之间的配置会影响到MHA在选择新主节点时的优先级。 Manager管理器 Manager是MHA中的中央控制器负责监控和管理整个MySQL高可用性集群。它的主要功能包括 故障检测Manager定期检查Node的状态包括主节点和备用节点。当检测到主节点故障时Manager会触发故障转移过程。 故障转移决策一旦检测到主节点故障Manager会根据预设的策略和配置选择合适的备用节点提升为新的主节点。它会考虑到复制延迟、节点健康状态等因素做出决策。 管理复制Manager负责管理主从复制的配置。它可以自动更新备用节点的复制配置以便它们连接到新的主节点。 SSH连接Manager使用SSH连接到Node执行必要的操作如关闭旧的主节点等。 通知和日志Manager会记录故障转移的过程和结果并且可以向管理员发送通知包括故障转移的开始、结束等信息。 Node和Manager的协作 在MHA中Node和Manager之间通过SSH和MySQL复制协议进行通信和协作。Node定期向Manager报告自己的状态Manager根据这些状态信息和预设的策略来做出故障转移的决策。一旦Manager触发了故障转移它会与Node一起协作完成故障转移过程并确保新的主节点正常运行。 故障转移流程 当MHA监测到MySQL主节点出现故障时它会自动启动故障转移流程。下面是简化的故障转移流程 检测故障管理节点manager node定期检查主节点的状态。当发现主节点不可用时会触发故障转移。 选举新主节点MHA会从备用节点中选举一个新的主节点。选举过程考虑了各个备用节点的复制延迟和可用性选择最适合的节点作为新的主节点。 停止旧主节点MHA使用SSH连接到旧的主节点并在新主节点上线后停止旧主节点上的MySQL服务。 重新配置其他节点MHA会自动更新其他节点的配置文件将它们的主节点指向新的主节点。 完成故障转移一旦新的主节点上线并正常运行MHA会通知应用程序可以重新连接到新的主节点上。 优势 使用MySQL MHA的主要优势包括 自动化故障转移MHA能够自动检测主节点故障并执行故障转移流程无需人工干预减少了服务中断的时间。 快速恢复MHA的故障转移过程非常迅速可以快速将备用节点提升为新的主节点降低了系统不可用的风险。 高可靠性MHA经过了广泛的生产环境验证被认为是一个稳定可靠的解决方案。 灵活性MHA支持多种故障转移策略和配置选项可以根据实际需求进行定制。 配置和管理 要配置和管理MySQL MHA通常需要以下步骤 安装MHA工具包从Percona的官方网站下载MHA工具包并按照说明进行安装。 配置MHA编辑MHA的配置文件指定MySQL主从复制的拓扑、监控节点、故障转移的参数等。 初始化MHA运行masterha_check_ssh和masterha_check_repl命令来检查SSH和复制的配置。 启动MHA管理节点运行masterha_manager命令启动MHA的管理节点开始监控MySQL集群的状态。 测试故障转移模拟主节点故障观察MHA是否能够自动进行故障转移并恢复。 配置主从复制 配置master vim /etc/my.cnf[mysqld] server-id 1 log_bin master-bin log-slave-updates truesystemctl restart mysqld.service 配置slave vim /etc/my.cnfserver-id 2 log_bin master-bin relay-log relay-log-bin relay-log-index slave-relay-bin.indexsystemctl restart mysqld 在master和所有slave上创建软连接 ln -s /usr/local/mysql/bin/mysql /usr/sbin/ ln -s /usr/local/mysql/bin/mysqlbinlog /usr/sbin/ ln -s /usr/local/mysql/bin/mysql /usr/sbin/ 这个命令创建了一个名为mysql的软链接指向了/usr/local/mysql/bin/mysql这个MySQL客户端的可执行文件。这样做的目的是为了让系统在/usr/sbin/目录下也有一个mysql命令的快捷方式这样系统中的任何用户都可以直接在命令行中输入mysql来启动MySQL客户端。 ln -s /usr/local/mysql/bin/mysqlbinlog /usr/sbin/ 这个命令创建了一个名为mysqlbinlog的软链接指向了/usr/local/mysql/bin/mysqlbinlog这个MySQL二进制日志查看工具的可执行文件。同样的这样做的目的是让系统中的任何用户都可以直接在命令行中输入mysqlbinlog来启动MySQL二进制日志查看工具。 对所有数据库进行互相授权 grant replication slave on *.* to myslave192.168.1.% identified by 123456; grant all privileges on *.* to mha192.168.1.% identified by manager; grant all privileges on *.* to mhamaster identified by manager; grant all privileges on *.* to mhaslave1 identified by manager; grant all privileges on *.* to mhaslave2 identified by manager; flush privileges; 查看二进制日志同步点 show master status; 在所有slave上指定主服务器不要直接复制注意ip和同步点 change master to master_host192.168.1.22,master_usermyslave,master_password123456,master_log_filemaster-bin.000001,master_log_pos1743; start slave; 查看同步状态 show slave status\G; 在主服务器创建数据库和表并在从服务器验证 MHA实现高可用 安装MHA依赖环境 yum install epel-release --nogpgcheck -y yum install -y perl-DBD-MySQL \ perl-Config-Tiny \ perl-Log-Dispatch \ perl-Parallel-ForkManager \ perl-ExtUtils-CBuilder \ perl-ExtUtils-MakeMaker \ perl-CPAN 在所有服务器安装node cd /opt tar zxvf mha4mysql-node-0.57.tar.gz cd mha4mysql-node-0.57 perl Makefile.PL make make install 安装manager cd /opt tar zxvf mha4mysql-manager-0.57.tar.gz cd mha4mysql-manager-0.57 perl Makefile.PL make make install 配置ssh无密码登录 在 manager 节点上配置到所有数据库节点的无密码认证 ssh-keygen -t rsa                  ssh-copy-id 192.168.1.22 ssh-copy-id 192.168.1.33 ssh-copy-id 192.168.1.44 在 master 上配置到数据库节点 slave1 和 slave2 的无密码认证 ssh-keygen -t rsa ssh-copy-id 192.168.1.33 ssh-copy-id 192.168.1.44 在 slave1 上配置到数据库节点 master 和 slave2 的无密码认证 ssh-keygen -t rsa ssh-copy-id 192.168.1.22 ssh-copy-id 192.168.1.44 在 slave2 上配置到数据库节点 master 和 slave1 的无密码认证 ssh-keygen -t rsa ssh-copy-id 192.168.1.22 ssh-copy-id 192.168.1.33 在 manager 上配置 MHA(注意要设置set paste) cp -rp /opt/mha4mysql-manager-0.57/samples/scripts /usr/local/bin cp /usr/local/bin/scripts/master_ip_failover /usr/local/bin vim /usr/local/bin/master_ip_failover:set paste use strict; use warnings FATAL all;use Getopt::Long;my ( $command, $ssh_user, $orig_master_host, $orig_master_ip, $orig_master_port, $new_master_host, $new_master_ip, $new_master_port ); #############################修改部分############################################## my $vip 192.168.1.100; my $brdc 192.168.1.255; my $ifdev ens33; my $key 1; my $ssh_start_vip /sbin/ifconfig ens33:$key $vip; my $ssh_stop_vip /sbin/ifconfig ens33:$key down; my $exit_code 0; #my $ssh_start_vip /usr/sbin/ip addr add $vip/24 brd $brdc dev $ifdev label $ifdev:$key;/usr/sbin/arping -q -A -c 1 -I $ifdev $vip;iptables -F;; #my $ssh_stop_vip /usr/sbin/ip addr del $vip/24 dev $ifdev label $ifdev:$key; ################################################################################## GetOptions( commands \$command, ssh_users \$ssh_user, orig_master_hosts \$orig_master_host, orig_master_ips \$orig_master_ip, orig_master_porti \$orig_master_port, new_master_hosts \$new_master_host, new_master_ips \$new_master_ip, new_master_porti \$new_master_port, );exit main();sub main {print \n\nIN SCRIPT TEST$ssh_stop_vip$ssh_start_vip\n\n;if ( $command eq stop || $command eq stopssh ) {my $exit_code 1; eval { print Disabling the VIP on old master: $orig_master_host \n; stop_vip(); $exit_code 0; }; if ($) { warn Got Error: $\n; exit $exit_code; } exit $exit_code; } elsif ( $command eq start ) {my $exit_code 10; eval { print Enabling the VIP - $vip on the new master - $new_master_host \n; start_vip(); $exit_code 0; }; if ($) { warn $; exit $exit_code; } exit $exit_code; } elsif ( $command eq status ) { print Checking the Status of the script.. OK \n; exit 0; } else { usage(); exit 1; } } sub start_vip() { ssh $ssh_user\$new_master_host \ $ssh_start_vip \; } ## A simple system call that disable the VIP on the old_master sub stop_vip() { ssh $ssh_user\$orig_master_host \ $ssh_stop_vip \; }sub usage { print Usage: master_ip_failover --commandstart|stop|stopssh|status --orig_master_hosthost --orig_master_ipip --orig_master_portport --new_master_hosthost --new_master_ipip --new_master_portport\n; } MHA的master_ip_failover配置文件是用于MySQL高可用性HA架构中的一个重要组件。当MySQL主服务器发生故障时master_ip_failover脚本负责将虚拟IPVIP从故障的主服务器迁移到新的主服务器以确保服务的连续性和可用性。这个过程通常涉及到以下几个步骤 停止旧主服务器上的VIP这确保了没有新的连接会到达已经故障的服务器。在新的主服务器上启动VIP这使得新的主服务器可以开始接受客户端的连接。更新DNS记录如果使用DNS来管理VIP这确保了所有新的连接都会被指向新的主服务器。 创建 MHA 软件目录并复制配置文件 mkdir /etc/masterha cp /opt/mha4mysql-manager-0.57/samples/conf/app1.cnf /etc/masterha[server default] manager_log/var/log/masterha/app1/manager.log manager_workdir/var/log/masterha/app1 master_binlog_dir/usr/local/mysql/data master_ip_failover_script/usr/local/bin/master_ip_failover master_ip_online_change_script/usr/local/bin/master_ip_online_change passwordmanager ping_interval1 remote_workdir/tmp repl_password123456 repl_usermyslavesecondary_check_script/usr/local/bin/masterha_secondary_check -s 192.168.1.33 -s 192.168.1.44 shutdown_script ssh_userroot usermha[server1] hostname192.168.1.22 port3306[server2] candidate_master1 check_repl_delay0 hostname192.168.1.33 port3306[server3] hostname192.168.1.44 port3306在MHA中app1是MHA的配置文件之一用于配置MHA对MySQL主从复制集群的监控和管理。以下是app1配置文件的一些常见作用和配置项 定义MySQL的主从结构在app1配置文件中你可以定义MySQL主服务器和从服务器的IP地址、端口号等信息。这样MHA就知道哪些服务器是主服务器哪些是从服务器。 监控参数你可以配置MHA如何监控MySQL服务器的健康状态。例如可以配置检查MySQL进程是否存活、检查复制延迟等。 故障检测和切换定义在哪些情况下MHA应该进行故障检测并在检测到故障时如何自动切换到备用服务器。 SSH连接参数配置MHA连接到MySQL服务器所需的SSH参数包括SSH用户、SSH端口等。 自定义脚本和命令你可以指定在故障发生或切换发生时执行的自定义脚本和命令以便在自动切换过程中执行特定的操作。 Failover优先级定义了故障发生时应该优先选择哪个备用服务器作为新的主服务器。 在master上手动开启虚拟ip /sbin/ifconfig ens33:1 192.168.1.100/24 在manager上测试无密码登录 masterha_check_ssh -conf/etc/masterha/app1.cnf 在manager上测试连接情况 masterha_check_repl -conf/etc/masterha/app1.cnf 启动MHA nohup masterha_manager --conf/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover /dev/null /var/log/masterha/app1/manager.log 21 nohup: 这是一个 Linux 命令用于让命令在后台运行并且不受终端关闭的影响。即使用户注销或者关闭终端命令也会继续运行。 masterha_manager: 这是 MySQL MHA 工具包中的一个命令用于启动 MHA 的管理器manager。masterha_manager 负责监控 MySQL 主从复制集群的状态并在主节点故障时执行自动故障转移。 --conf/etc/masterha/app1.cnf: 这个参数指定了 MHA 的配置文件路径。在这里/etc/masterha/app1.cnf 是您的 MHA 配置文件的路径。 --remove_dead_master_conf: 这个参数告诉 masterha_manager 在发现主节点master死掉后将主节点的配置信息从 MHA 配置文件中删除。 --ignore_last_failover: 这个参数告诉 masterha_manager 忽略上一次故障转移的信息以避免重复执行故障转移。 /dev/null: 这个部分将输入重定向到 /dev/null表示不从标准输入中读取任何内容。 /var/log/masterha/app1/manager.log 21: 这个部分将标准输出和标准错误输出重定向到指定的日志文件中。即将 masterha_manager 的输出写入到 /var/log/masterha/app1/manager.log 日志文件中。 : 这个符号表示将命令放到后台执行这样当前终端可以继续输入其他命令。 最后[1] 18318 是命令的输出表示 masterha_manager 进程已经在后台启动并且它的进程 ID 是 18318。这样masterha_manager 就会在后台运行不受终端关闭的影响并且将输出写入到指定的日志文件中用于查看 MHA 的运行日志和状态。 查看MHA状态 masterha_check_status --conf/etc/masterha/app1.cnf
http://www.ho-use.cn/article/10821317.html

相关文章:

  • 做一份seo网站诊断美工网站做兼职
  • windows 2003做网站浏览器正能量网站免费
  • 深圳市城乡建设部网站首页网站建设品牌策划方案
  • 地区网站建设服务周到官方网站如何建立
  • 门户网站建设管理工作的意见公司官网怎么做的
  • 做调研的网站一般有哪些电子商务网站制作步骤
  • 生活分类信息网站大全百度搜索优化平台
  • 如何给自己的公司做网站wordpress自动alt图片
  • 导航网站没有内页没有了企业网站不备案
  • 交易平台网站建设项目需求常德软件开发
  • 网站首页制作流程网站前台乱码
  • 怎样建设网络游戏网站做英文网站常用的字体
  • 网站建设与设计ppt模板下载建平台网站费用
  • dede视频网站模板网站介绍流程
  • 工厂拿货回家加工合肥seo网站优化培训
  • 公司建站费用广告海报图片
  • 如何实现网站开发手机验证码网站是否上线
  • 济南网站建设优化熊掌号网站建设与维护项目六
  • 电子商务网站的设计工具0735郴州新网招聘
  • 下单网站搭建pc软件开发工具
  • 帝国cms影视网站模板做网站用的文本编辑器
  • 怎么给搞笑网站做文案新问网站设计
  • 黄石专业网站建设推广吴忠网站建设哪家好
  • psd模板 转 网站烟台网站建设加盟
  • 2020电商平台排行榜兰州seo外包公司
  • 新余百度网站建设哪里有帮做微课的网站
  • php网站建设视频天津品牌网站建设
  • 网站建设教学大纲赣州市建设培训网
  • 石材网站源码怎么用手机建网站
  • 网站注册需要什么大连网络营销公司有哪些