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

个人网站做支付宝收款互联网营销策划方案

个人网站做支付宝收款,互联网营销策划方案,长沙短视频代运营公司,如何免费建一个wordpress目录 引言 一、MHA简介 1.1 什么是MHA#xff08;MasterHigh Availability#xff09; 1.2 MHA的组成 1.3 MHA的特点 1.4 MHA工作原理 二、搭建MySQL MHA 2.1 实验思路 2.2 实验环境 1、关闭防火墙和安全增强系统 2、修改三台服务器节点的主机名 2.3 实验搭建 1、…目录 引言 一、MHA简介 1.1 什么是MHAMasterHigh Availability 1.2 MHA的组成 1.3 MHA的特点 1.4 MHA工作原理 二、搭建MySQL MHA 2.1 实验思路 2.2 实验环境 1、关闭防火墙和安全增强系统 2、修改三台服务器节点的主机名 2.3 实验搭建 1、Master、Slave1、Slave2 节点上安装 mysql5.7 2、修改 Master、Slave1、Slave2 节点的 MySQL 主配置文件 3、Master、Slave1、Slave2 节点上创建软连接 4、配置 MySQL 一主两从 5、安装MHA软件 6、在所有服务器上配置无密码验证 7、在 manager 节点上配置 MHA 8、 第一次配置需要在 Master 节点上手动开启虚拟 IP 9、在 manager 节点上测试 ssh 无密码认证 10、在 manager 节点上测试 mysql 主从连接情况 11、在 manager 节点上启动 MHA 12、查看 MHA 状态和 MHA 日志 13、查看 MySQL 的 VIP 地址 三、模拟 MHA 故障 3.1 模拟故障 3.2 故障切换备选主库的算法 3.3 故障修复 引言 MySQL 服务器中单台服务器无法承载服务量就配置多台MySQL服务器多台 MySQL 服务器或者 MySQL 服务器无冗余的情况下配置主从复制。MySQL服务器的读和写的压力不均衡可使用 MySQL 的读写分离MySQL的读写分离中 Msater 存在单点故障就得用到 MHA 一、MHA简介 1.1 什么是MHAMasterHigh Availability MHA是一套优秀的 MySQL 高可用环境下故障切换和主从复制的软件 MHA 的出现就是解决MySQL 单点的问题 MySQL 故障切换过程中MHA 能做到 0-30 秒内自动完成故障切换操作 MHA 能在故障切换的过程中最大程度上保证数据的一致性以达到真正意义上的高可用 1.2 MHA的组成 MHA Node数据节点 MHA Node 运行在每台 MySQL 服务器上MHA Manager管理节点 MHA Manager 可以单独部署在一台独立的机器上管理多个 master-slave 集群也可以部署在一台 slave 节点上MHA Manager 会定时探测集群中的 master 节点。当 master 出现故障时它可以自动将最新数据的 slave 提升为新的 master然后将所有其他的 slave 重新指向新的 master。整个故障转移过程对应用程序完全透明 1.3 MHA的特点 自动故障切换过程中MHA 试图从宕机的主服务器上保存二进制日志最大程度的保证数据不丢失 使用半同步复制可以大大降低数据丢失的风险如果只有一个 slave 已经收到了最新的二进制日志MHA 可以将最新的二进制日志应用于其他所有的 slave 服务器上因此可以保证所有节点的数据一致性 目前MHA支持一主多从架构最少三台服务即一主两从 1.4 MHA工作原理 从宕机崩溃的master 保存二进制日志事件binlog  events 识别含有最新的更新 slave 日志 应用差异的中继日志relay log到其他的slave 应用从master保存的二进制日志事件 提升一个 salve 为新的master 使其他的slave连接行的master 进行复制 注MHA :为了解决的了是故障切换、数据尽可能的保存以及所有节点日志的一致性 二、搭建MySQL MHA 2.1 实验思路 MHA架构 数据库安装主从复制一主两从MHA搭建 故障模拟 主库失效备选主库成为主库原故障主库恢复重新加入到MHA成为从库 2.2 实验环境 主机IP地址主要软件MHA Manager192.17.20.103安装MHA node 和 manager 组件Master192.17.20.100装mysql5.7、MHA node 组件Slave1192.17.20.101安装mysql5.7、MHA node 组件Slave2192.17.20.102安装mysql5.7、MHA node 组件 1、关闭防火墙和安全增强系统 systemctl stop firewalld systemctl disable firewalld setenforce 0 2、修改三台服务器节点的主机名 hostnamectl set-hostname master hostnamectl set-hostname slave1 hostnamectl set-hostname slave2 2.3 实验搭建 1、Master、Slave1、Slave2 节点上安装 mysql5.7 MYSQL数据库初体验-CSDN博客 2、修改 Master、Slave1、Slave2 节点的 MySQL 主配置文件 Master 主配置文件 vim /etc/my.cnf [mysqld] server-id 1 log_bin master-bin log-slave-updates truesystemctl restart mysqld slave1 vim /etc/my.cnf server-id 2 log_bin master-bin relay-log relay-log-bin relay-log-index slave-relay-bin.indexsystemctl restart mysqld slave2 vim /etc/my.cnf server-id 3 log_bin master-bin relay-log relay-log-bin relay-log-index slave-relay-bin.indexsystemctl restart mysqld 3、Master、Slave1、Slave2 节点上创建软连接 ln -s /usr/local/mysql/bin/mysql /usr/sbin/ ln -s /usr/local/mysql/bin/mysqlbinlog /usr/sbin/ 4、配置 MySQL 一主两从 所有数据库节点进行 mysql 授权 mysql -uroot -p123456#从数据库同步使用 grant replication slave on *.* to myslave192.17.20.% identified by 123456; #manager 使用 grant all privileges on *.* to mha192.17.20.% 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; 在 Master 节点查看二进制文件和同步点 mysql show master status; -------------------------------------------------------------------------------- | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | -------------------------------------------------------------------------------- | master-bin.000001 | 1743 | | | | -------------------------------------------------------------------------------- 1 row in set (0.00 sec) 在 Slave1、Slave2 节点执行同步操作 change master to master_host192.17.20.100,master_usermyslave,master_password123456,master_log_filemaster-bin.000001,master_log_pos1826; start slave;在 Slave1、Slave2 节点查看数据同步结果确保 IO 和 SQL 线程都是 Yes代表同步正常 mysql show slave status\G; ...... Slave_IO_Running: Yes Slave_SQL_Running: Yes ...... 两个从库必须设置为只读模式 set global read_only1; flush privileges; 插入数据测试数据库同步 create database test_db; use test_db; create table test(id int); insert into test(id) values (1); 5、安装MHA软件 所有服务器上都安装 MHA 依赖的环境首先安装 epel 源 yum install epel-release --nogpgcheck -yyum install -y perl-DBD-MySQL \ perl-Config-Tiny \ perl-Log-Dispatch \ perl-Parallel-ForkManager \ perl-ExtUtils-CBuilder \ perl-ExtUtils-MakeMaker \ perl-CPAN 安装 MHA 软件包先在所有服务器上安装 node 组件必须先安装 node 在所有服务器上必须先安装 node 组件最后在 MHA-manager 节点上安装 manager 组件因为 manager 依赖 node 组件 [rootmaster ~]#cd /opt/ [rootmaster /opt]#rz -E rz waiting to receive. [rootmaster /opt]#ls mha4mysql-node-0.57.tar.gz tar zxvf mha4mysql-node-0.57.tar.gz cd mha4mysql-node-0.57 perl Makefile.PL make make install随后在 MHA manager 节点上安装 manager 组件 cd /opt # manager 传至 opt 目录下 tar zxvf mha4mysql-manager-0.57.tar.gz cd mha4mysql-manager-0.57 perl Makefile.PLmake make install manager 组件安装后在 /usr/local/bin 下面会生成几个工具主要包括以下几个 masterha_check_ssh #检查 MHA 的 SSH 配置状况 masterha_check_repl #检查 MySQL 复制状况 masterha_manger #启动 manager 的脚本 masterha_check_status #检测当前 MHA 运行状态 masterha_master_monitor #检测 master 是否宕机 masterha_master_switch #控制故障转移自动或者 手动 masterha_conf_host #添加或删除配置的 server 信息 masterha_stop #关闭 manager node 组件安装后也会在/usr/local/bin 下面会生成几个脚本这些工具通常由 MHAManager 的脚本触发无需人为操作 save_binary_logs #保存和复制 master 的二进制日志 apply_diff_relay_logs #识别差异的中继日志事件并将其差异的事件应用于其他的 slave filter_mysqlbinlog #去除不必要的 ROLLBACK 事件MHA 已不再使用这个工具 purge_relay_logs #清除中继日志不会阻塞 SQL 线程) 6、在所有服务器上配置无密码验证 ① 在 manager 节点上配置到所有数据库节点的无密码认证 ssh-keygen -t rsa #输完按回车 ssh-copy-id 192.17.20.100 #输入yes然后输入密码 ssh-copy-id 192.17.20.101 ssh-copy-id 192.17.20.102② 在 master 上配置到数据库节点 slave1 和 slave2 的无密码认证 ssh-keygen -t rsa ssh-copy-id 192.17.20.101 ssh-copy-id 192.17.20.102 ③ 在 slave1 上配置到数据库节点 master 和 slave2 的无密码认证 ssh-keygen -t rsa ssh-copy-id 192.17.20.100 ssh-copy-id 192.17.20.102④ 在 slave2 上配置到数据库节点 master 和 slave1 的无密码认证 ssh-keygen -t rsa ssh-copy-id 192.17.20.100 ssh-copy-id 192.17.20.101 7、在 manager 节点上配置 MHA 在 manager 节点上复制相关脚本到 /usr/local/bin 目录 [rootmanager /usr/local/bin]#cp -rp /opt/mha4mysql-manager-0.57/samples/scripts /usr/local/bin [rootmanager /usr/local/bin]#ll /usr/local/bin/scripts/master_ip_failover #自动切换时 VIP 管理的脚本 master_ip_online_change #在线切换时 vip 的管理 power_manager #故障发生后关闭主机的脚本 send_report #因故障切换后发送报警的脚本复制上述的自动切换时 VIP 管理的脚本到 /usr/local/bin 目录这里使用 master_ip_failover 脚本来管理 VIP 和故障切换 cp /usr/local/bin/scripts/master_ip_failover /usr/local/bin 修改内容如下删除原有内容直接复制并修改 vip 相关参数 :% s/^#// 可以去掉开头的所有# vim /usr/local/bin/master_ip_failover#!/usr/bin/env perluse 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.10.200; my $brdc 192.168.10.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; }字段解释 my $vip 192.168.10.200; #指定vip的地址 my $brdc 192.168.10.255; #指定vip的广播地址 my $ifdev ens33; #指定vip绑定的网卡 my $key 1; #指定vip绑定的虚拟网卡序列号 my $ssh_start_vip /sbin/ifconfig ens33:$key $vip; #代表此变量值为ifconfig ens33:1 192.168.10.200 my $ssh_stop_vip /sbin/ifconfig ens33:$key down; #代表此变量值为ifconfig ens33:1 192.168.10.200 down my $exit_code 0; #指定退出状态码为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;创建 MHA 软件目录并拷贝配置文件这里使用 app1.cnf 配置文件来管理 mysql 节点服务器 mkdir /etc/masterha cp /opt/mha4mysql-manager-0.57/samples/conf/app1.cnf /etc/masterhavim /etc/masterha/app1.cnf #删除原有内容直接复制并修改节点服务器的 IP 地址[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_usermyslave secondary_check_script/usr/local/bin/masterha_secondary_check -s 192.168.8.15 -s 192.168.8.13 shutdown_script ssh_userroot usermha[server1] hostname192.168.8.16 port3306[server2] candidate_master1 check_repl_delay0 hostname192.168.8.15 port3306[server3] hostname192.168.8.13 port3306字段解释 [server default] manager_log/var/log/masterha/app1/manager.log      #manager日志 manager_workdir/var/log/masterha/app1         #manager工作目录 master_binlog_dir/usr/local/mysql/data/          #master保存binlog的位置这里的路径要与master里配置的binlog的路径一致以便MHA能找到 master_ip_failover_script/usr/local/bin/master_ip_failover  #设置自动failover时候的切换脚本也就是上面的那个脚本 master_ip_online_change_script/usr/local/bin/master_ip_online_change  #设置手动切换时候的切换脚本 passwordmanager #设置mysql中root用户的密码这个密码是前文中创建监控用户的那个密码 ping_interval1 #设置监控主库发送ping包的时间间隔默认是3秒尝试三次没有回应的时候自动进行failover remote_workdir/tmp #设置远端mysql在发生切换时binlog的保存位置 repl_password123 #设置复制用户的密码 repl_usermyslave #设置复制用户的用户 report_script/usr/local/send_report      #设置发生切换后发送的报警的脚本 secondary_check_script/usr/local/bin/masterha_secondary_check -s 192.168.8.15 -s 192.168.8.13 #指定检查的从服务器IP地址 shutdown_script #设置故障发生后关闭故障主机脚本该脚本的主要作用是关闭主机防止发生脑裂,这里没有使用 ssh_userroot #设置ssh的登录用户名 usermha #设置监控用户root[server1] hostname192.168.8.16 port3306[server2] hostname192.168.8.15 port3306 candidate_master1 #设置为候选master设置该参数以后发生主从切换以后将会将此从库提升为主库即使这个从库不是集群中最新的slavecheck_repl_delay0 #默认情况下如果一个slave落后master 超过100M的relay logs的话MHA将不会选择该slave作为一个新的master 因为对于这个slave的恢复需要花费很长时间通过设置check_repl_delay0MHA触发切换在选择一个新的master的时候将会忽略复制延时这个参数对于设置了candidate_master1的主机非常有用因为这个候选主在切换的过程中一定是新的master[server3] hostname192.168.8.13 port33068、 第一次配置需要在 Master 节点上手动开启虚拟 IP /sbin/ifconfig ens33:1 192.168.10.200/24 9、在 manager 节点上测试 ssh 无密码认证 #如果正常最后会输出 successfully masterha_check_ssh -conf/etc/masterha/app1.cnf 10、在 manager 节点上测试 mysql 主从连接情况 #最后出现 MySQL Replication Health is OK 字样说明正常检查不通过看看是不是字符集没注释 masterha_check_repl -conf/etc/masterha/app1.cnf 11、在 manager 节点上启动 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 --remove_dead_master_conf该参数代表当发生主从切换后老的主库的 ip 将会从配置文件中移除。 --manger_log日志存放位置。 --ignore_last_failover在缺省情况下如果 MHA 检测到连续发生宕机且两次宕机间隔不足 8 小时的话则不会进行 Failover 之所以这样限制是为了避免 ping-pong 效应。该参数代表忽略上次 MHA 触发切换产生的文件默认情况下MHA 发生切换后会在日志记录也就是上面设置的日志app1.failover.complete文件下次再次切换的时候如果发现该目录下存在该文件将不允许触发切换除非在第一次切换后收到删除该文件为了方便这里设置为--ignore_last_failover。 12、查看 MHA 状态和 MHA 日志 #可以看到当前的 master 是 Mysql1 节点master 是 192.168.8.16 masterha_check_status --conf/etc/masterha/app1.cnf cat /var/log/masterha/app1/manager.log | grep current master 13、查看 MySQL 的 VIP 地址 查看 192.168.10.200 是否存在这个 VIP 地址不会因为 manager 节点停止 MHA 服务而消失 ifconfig #若要关闭 manager 服务可以使用如下命令masterha_stop --conf/etc/masterha/app1.cnf#或者可以直接采用 kill 进程 ID 的方式关闭\ 三、模拟 MHA 故障 3.1 模拟故障 ① 在 manager 节点上监控观察日志记录 tail -f /var/log/masterha/app1/manager.log ② 在 Master 节点 Mysql1 上停止 mysql 服务 systemctl stop mysqld ③ 正常自动切换一次后MHA 进程会退出。HMA 会自动修改 app1.cnf 文件内容将宕机的 mysql 节点删除 查看 slave 是否接管 VIP 3.2 故障切换备选主库的算法 一般判断从库的是从position/GTID判断优劣数据有差异最接近于 master 的 slave成为备选主 数据一致的情况下按照配置文件顺序选择备选主库 设定有权重candidate_master1按照权重强制指定备选主 默认情况下如果一个 slave 落后 master 100M 的 relay logs 的话即使有权重也会失效。 如果 check_repl_delay0 的话即使落后很多日志也强制选择其为备选主 3.3 故障修复 ① 修复 mysql systemctl restart mysqld ② 修复主从在现在的主mysql服务器查看二进制文件和同步点 ③ 在原来主库服务器192.168.8.16 上执行同步操作 mysql -uroot -p123456#这时候 slave1 成为了主库原 master 成为了从库所以在 原 master 上要指向新主库的IP mysql change master to master_host192.168.8.15,master_usermyslave,master_password123456,master_log_filemaster-bin.000001,master_log_pos1895; mysql start slave;④ 在 manager 节点上修改配置文件 app1.cnf再把这个记录添加进去因为它检测掉失效时候会自动消失 #修改新的从库 IP1613 #server1 为新主库 IP15server2/3为从库 IP1613 vi /etc/masterha/app1.cnf ...... secondary_check_script/usr/local/bin/masterha_secondary_check -s 192.168.8.16 -s 192.168.8.13 ...... [server1] hostname192.168.8.15 port3306[server2] candidate_master1 check_repl_delay0 hostname192.168.8.16 port3306[server3] hostname192.168.8.13 port3306 ⑤ 在 manager 节点上启动 MHA masterha_stop --conf/etc/masterha/app1.cnf #重启 MHAnohup masterha_manager --conf/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover /dev/null /var/log/masterha/app1/manager.log 21 #再来查看 MHA 状态可以看到当前 master 为 slave1192.168.8.15 masterha_check_status --conf/etc/masterha/app1.cnf#如若需要让 slave1 重新成为 master停止 slave2 节点的 mysql 服务即可。 #当slave1 获得 master 地位以及 VIP 后重新启动 slave2 的 mysql 服务并添加进集群中。
http://www.ho-use.cn/article/10816976.html

相关文章:

  • 网站开发技术三大件网络软文
  • 网站建设的基本步骤是大连公司电话
  • 激励案例网站制作拍摄宣传片的流程简要
  • 有没有可以做游戏的网站吗gom传奇网站建设
  • 网站推广营销怎么做敏感网站用什么浏览器
  • 网站建设方案硬件支撑海南网站建设制作
  • 做的网站怎么申请软件著作权网站部分链接做301跳转
  • 做拍卖的网站如何运用链接推广网站
  • wordpress 自建网站网站首页设计多少钱
  • wordpress建站数据库手机网站内容管理
  • 网站开发定制工信部个人备案网站可信吗
  • 秦皇岛专业做网站网站切图大图
  • 专门做中文音译歌曲的网站从哪些方面评价一个企业的网站建设
  • 部门网站建设工作总结专业网站开发培训
  • 网站开发和维护合同经典重庆
  • 网站建设实战教程成品短视频app下载有哪些软件在线观看
  • 中国知名企业排行榜模板网站有利于优化
  • 响应式全屏网站模板网站切图规范
  • 荆门网站建设电话咨询动态asp.net网站开发
  • 盐城永祥建设有限公司网站wordpress下载教程
  • 网站内容设计吉林seo基础
  • icp备案 网站女人做一级a网站免费
  • 山西做网站运营的公司做文案策划需要看什么网站
  • 物流网站开发实训ui设计的网站有哪些
  • 做文字logo的网站凡科网站免费版怎么做
  • 360老是提示危险网站装修网站排名
  • 成都网站建设、网站开发部门的规章制度
  • 企业网站网页设计的步骤猪八戒设计平台官网
  • 青岛如何做网站seo公共资源交易中心有实权吗
  • 好看的网站页面邢台做网站哪个网络公司好