史上最全

2023年 8月 15日 81.9k 0

1 路径及版本说明

本次安装所需要的相关软件存放目录为每台服务器的/soft目录。

1.1 版本说明

操作系统版本:Red Hat Enterprise Linux Server release 7.9 (Maipo)

操作系统内核版本:Linux 3.10.0-1160.el7.x86_64

数据库版本:5.7.41-log

xtrabackup版本: 2.4.27

mydumper版本:0.13.1-2

MHA版本:0.58

1.2 MySQL数据库路径

数据库软件路径:/usr/local/mysql

数据库配置文件:/etc/my.cnf

数据库路径:/data/mysql/data

数据库binlog日志路径:/data/mysql/data

数据库错误日志:/data/mysql/data/mysql_error.log

数据库工作端口:3306

my.cnf配置文件内容:

[client]

port=3306

socket=/data/mysql/data/mysql.sock

[mysql]

socket=/data/mysql/data/mysql.sock

port=3306

prompt = "\u@\h \R:\m:\s [\d]> "

no_auto_rehash

[mysqld]

user=mysql

autocommit=1

general_log=off

explicit_defaults_for_timestamp=true

character-set-server=utf8

lower_case_table_names = 1

log_timestamps=system

transaction-isolation = READ-COMMITTED

secure-file-priv=

bind-address = 0.0.0.0

# system

relay_log_purge=0

basedir=/usr/local/mysql

datadir=/data/mysql/data/

max_allowed_packet=1073741824

max_connections=2000

max_user_connections=900

open_files_limit=65535

pid_file=/data/mysql/data/mysqld.pid

port=3306

server_id=193

skip_name_resolve=ON

socket=/data/mysql/data/mysql.sock

tmpdir=/data/mysql/data/

table_open_cache=4096

#binlog

log-bin=/data/mysql/data/binlog

binlog_cache_size=2097152

binlog_format=row

expire_logs_days=7

log_slave_updates=ON

max_binlog_cache_size=21474836480

max_binlog_size=256M

sync_binlog=1

log_bin_trust_function_creators = 1

#logging

log_error=/data/mysql/data/mysql_error.log

slow_query_log_file=/data/mysql/data/mysql_slow_query.log

log_queries_not_using_indexes=0

slow_query_log=1

log_slave_updates=ON

log_slow_admin_statements=1

long_query_time=1

#relay

relay_log=/data/mysql/data/relaylog

relay_log_index=/data/mysql/data/relay.index

relay_log_info_file=/data/mysql/data/relay-log.info

relay_log_purge = ON

#add by sph 20211022

master_info_repository = TABLE

relay_log_info_repository = TABLE

relay_log_recovery = on

#per session mem

sort_buffer_size               = 8M

read_buffer_size               = 2M

join_buffer_size               = 2M

read_rnd_buffer_size           = 2M

thread_stack                   = 512K

bulk_insert_buffer_size        = 64M

#slave

slave_load_tmpdir=/data/mysql/data/

slave_skip_errors=OFF

#innodb

innodb_data_home_dir=/data/mysql/data/

innodb_log_group_home_dir=/data/mysql/data/

innodb_adaptive_flushing=ON

innodb_adaptive_hash_index=OFF

innodb_autoinc_lock_mode=1

innodb_buffer_pool_instances=8

#default

innodb_change_buffering=all

innodb_checksums=ON

innodb_buffer_pool_size= 350G

innodb_data_file_path=ibdata1:1G:autoextend

innodb_doublewrite=ON

innodb_file_format=Barracuda

innodb_file_per_table=ON

innodb_flush_log_at_trx_commit=1

innodb_flush_method=O_DIRECT

innodb_io_capacity=10000

innodb_lock_wait_timeout=60

innodb_log_buffer_size=8M

innodb_log_file_size=256M

innodb_log_files_in_group=4

innodb_max_dirty_pages_pct=50

innodb_open_files=6000

innodb_purge_threads=4

innodb_read_io_threads=8

innodb_stats_on_metadata=OFF

innodb_support_xa=ON

innodb_use_native_aio=OFF

innodb_write_io_threads=8

#replicat

loose-rpl_semi_sync_master_enabled   = 1

loose-rpl_semi_sync_slave_enabled    = 1

loose-rpl_semi_sync_master_wait_point=AFTER_SYNC

loose-plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"

#GTID

gtid_mode=on

enforce_gtid_consistency=on

[mysqld_safe]

datadir=/data/mysql/data/

1.3 MHA相关路径

MHA Manager只安装在192.168.100.195服务器上,一下路径只在这一台服务器。

MHA工作目录路径:/usr/local/mha

MHA配置文件路径:/etc/masterha_default.cnf

MHA切换脚本路径:/usr/local/mha/scripts

MHA工作日志:/usr/local/mha/manager.log

MHA启动脚本:/usr/local/mha/startmha.sh

MHA关闭脚本:/usr/local/mha/stopmha.sh

MHA检查主机互信脚本:/usr/local/mha/checkssh.sh

MHA检查主从同步状态脚本:/usr/local/mha/checkrepl.sh

MHA手工切换演练脚本:/usr/local/mha/manualswitch.sh

MHA手工挂载卸载参考脚本:/usr/local/mha/vip.txt

1.4 操作系统目录

2 MySQL安装

三台服务器操作一致,本文档以第一台服务器为例进行安装说明。

2.1 修改系统参数

修改/etc/sysctl.conf

vm.swappiness=1

fs.file-max=12553500

fs.nr_open=12453500

net.ipv4.ip_forward = 0

kernel.sem = 250 32000 100 128

kernel.shmmni = 4096

kernel.shmall = 8388608

kernel.shmmax = 483183820800

fs.aio-max-nr = 1048576

fs.file-max = 6815744

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

net.ipv4.ip_local_port_range = 1024 65500

2.2 修改用户限制

修改/etc/security/limits.conf

* soft nproc 65535

* hard nproc 65535

* soft nofile 65535

* hard nofile 65535

修改/etc/security/limits.d/20-nproc.conf

*          soft    nproc     unlimited

root       soft    nproc     unlimited

2.2 关闭透明大页

修改/etc/rc.d/rc.local,新增如下

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then

  echo never > /sys/kernel/mm/transparent_hugepage/enabled

fi

if test -f /sys/kernel/mm/transparent_hugepage/defrag; then

  echo never > /sys/kernel/mm/transparent_hugepage/defrag

fi

2.2 创建用户

/usr/sbin/groupadd -g 2000 mysql

/usr/sbin/useradd -g mysql -u 2000 mysql

2.3 创建目录

创建数据库目录并修改权限

mkdir -p /data/mysql/data/

chown -R mysql.mysql /data/

2.4 安装MySQL

软件安装

cd /soft

tar -zxvf mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz

mv mysql-5.7.41-linux-glibc2.12-x86_64 /usr/local/mysql

chown -R mysql.mysql /usr/local/mysql

mysqld --defaults-file=/etc/my.cnf --initialize-insecure --basedir=/usr/local/mysql --datadir=/data/mysql/data/ --user=mysql

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

service mysqld start

service mysqld stop

service mysqld restart

创建用户,只在第一台服务器执行。

mysql

create user 'root'@'%';

create user 'repl'@'192.168.100.%';

grant all privileges on *.* to 'root'@'localhost';

grant all privileges on *.* to 'root'@'%';

grant replication slave,replication client  on *.* to 'repl'@'192.168.100.%';

flush privileges;

alter user 'root'@'%' identified by 'root';

alter user 'root'@'localhost' identified by 'root';

alter user 'repl'@'192.168.100.%' identified by 'Repl1234!';

flush privileges;

2.5 搭建主从复制

本文档以第二台服务器操作进行说明:

mysql -uroot -ppassword -e "reset master;"

mysqldump -uroot -h192.168.100.193 -ppassword --all-databases --default-character-set=utf8 --hex-blob --single-transaction --all-databases --triggers --routines --events --master-data=2 --max_allowed_packet=256M | mysql

mysql

change master to master_host='192.168.100.193',master_user='repl',master_password='Repl1234!',master_port=3306,master_auto_position=1;

start slave;

show slave status\G

3 MHA安装配置

3.1 软件安装

三台服务器都需要安装mha node

第三台服务器安装mha manager

相关的依赖包:

mha node安装:

yum -y localinstall mha4mysql-node-0.58-0.el7.centos.noarch.rpm

安装文件及路径:

/usr/bin/apply_diff_relay_logs

/usr/bin/filter_mysqlbinlog

/usr/bin/purge_relay_logs

/usr/bin/save_binary_logs

/usr/share/man/man1/apply_diff_relay_logs.1.gz

/usr/share/man/man1/filter_mysqlbinlog.1.gz

/usr/share/man/man1/purge_relay_logs.1.gz

/usr/share/man/man1/save_binary_logs.1.gz

/usr/share/perl5/vendor_perl/MHA/BinlogHeaderParser.pm

/usr/share/perl5/vendor_perl/MHA/BinlogManager.pm

/usr/share/perl5/vendor_perl/MHA/BinlogPosFindManager.pm

/usr/share/perl5/vendor_perl/MHA/BinlogPosFinder.pm

/usr/share/perl5/vendor_perl/MHA/BinlogPosFinderElp.pm

/usr/share/perl5/vendor_perl/MHA/BinlogPosFinderXid.pm

/usr/share/perl5/vendor_perl/MHA/NodeConst.pm

/usr/share/perl5/vendor_perl/MHA/NodeUtil.pm

/usr/share/perl5/vendor_perl/MHA/SlaveUtil.pm

mha manager安装:

yum -y localinstall mha4mysql-manager-0.58-0.el7.centos.noarch.rpm

安装文件及路径:

/usr/bin/masterha_check_repl

/usr/bin/masterha_check_ssh

/usr/bin/masterha_check_status

/usr/bin/masterha_conf_host

/usr/bin/masterha_manager

/usr/bin/masterha_master_monitor

/usr/bin/masterha_master_switch

/usr/bin/masterha_secondary_check

/usr/bin/masterha_stop

/usr/share/man/man1/masterha_check_repl.1.gz

/usr/share/man/man1/masterha_check_ssh.1.gz

/usr/share/man/man1/masterha_check_status.1.gz

/usr/share/man/man1/masterha_conf_host.1.gz

/usr/share/man/man1/masterha_manager.1.gz

/usr/share/man/man1/masterha_master_monitor.1.gz

/usr/share/man/man1/masterha_master_switch.1.gz

/usr/share/man/man1/masterha_secondary_check.1.gz

/usr/share/man/man1/masterha_stop.1.gz

/usr/share/perl5/vendor_perl/MHA/Config.pm

/usr/share/perl5/vendor_perl/MHA/DBHelper.pm

/usr/share/perl5/vendor_perl/MHA/FileStatus.pm

/usr/share/perl5/vendor_perl/MHA/HealthCheck.pm

/usr/share/perl5/vendor_perl/MHA/ManagerAdmin.pm

/usr/share/perl5/vendor_perl/MHA/ManagerAdminWrapper.pm

/usr/share/perl5/vendor_perl/MHA/ManagerConst.pm

/usr/share/perl5/vendor_perl/MHA/ManagerUtil.pm

/usr/share/perl5/vendor_perl/MHA/MasterFailover.pm

/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm

/usr/share/perl5/vendor_perl/MHA/MasterRotate.pm

/usr/share/perl5/vendor_perl/MHA/SSHCheck.pm

/usr/share/perl5/vendor_perl/MHA/Server.pm

/usr/share/perl5/vendor_perl/MHA/ServerManager.pm

3.2 MHA配置

MHA Manager只安装在192.168.100.195服务器上,一下路径只在这一台服务器。

MHA工作目录路径:/usr/local/mha

MHA配置文件路径:/etc/masterha_default.cnf

MHA切换脚本路径:/usr/local/mha/scripts

MHA工作日志:/usr/local/mha/manager.log

MHA启动脚本:/usr/local/mha/startmha.sh

MHA关闭脚本:/usr/local/mha/stopmha.sh

MHA检查主机互信脚本:/usr/local/mha/checkssh.sh

MHA检查主从同步状态脚本:/usr/local/mha/checkrepl.sh

MHA手工切换演练脚本:/usr/local/mha/manualswitch.sh

3.3 MHA用的脚本

3.4 MHA相关脚本

3.4.1 checkssh.sh

3.4.2 checkrepl.sh

[root@mysql-mha03 mha]# sh checkrepl.sh

Mon Feb  6 17:35:28 2023 - [info] Reading default configuration from /etc/masterha_default.cnf..

Mon Feb  6 17:35:28 2023 - [info] Reading application default configuration from /etc/masterha_default.cnf..

Mon Feb  6 17:35:28 2023 - [info] Reading server configuration from /etc/masterha_default.cnf..

Mon Feb  6 17:35:28 2023 - [info] MHA::MasterMonitor version 0.58.

Mon Feb  6 17:35:29 2023 - [info] GTID failover mode = 1

Mon Feb  6 17:35:29 2023 - [info] Dead Servers:

Mon Feb  6 17:35:29 2023 - [info] Alive Servers:

Mon Feb  6 17:35:29 2023 - [info]   192.168.100.193(192.168.100.193:3306)

Mon Feb  6 17:35:29 2023 - [info]   192.168.100.194(192.168.100.194:3306)

Mon Feb  6 17:35:29 2023 - [info]   192.168.100.195(192.168.100.195:3306)

Mon Feb  6 17:35:29 2023 - [info] Alive Slaves:

Mon Feb  6 17:35:29 2023 - [info]   192.168.100.194(192.168.100.194:3306)  Version=5.7.41-log (oldest major version between slaves) log-bin:enabled

Mon Feb  6 17:35:29 2023 - [info]     GTID ON

Mon Feb  6 17:35:29 2023 - [info]     Replicating from 192.168.100.193(192.168.100.193:3306)

Mon Feb  6 17:35:29 2023 - [info]     Primary candidate for the new Master (candidate_master is set)

Mon Feb  6 17:35:29 2023 - [info]   192.168.100.195(192.168.100.195:3306)  Version=5.7.41-log (oldest major version between slaves) log-bin:enabled

Mon Feb  6 17:35:29 2023 - [info]     GTID ON

Mon Feb  6 17:35:29 2023 - [info]     Replicating from 192.168.100.193(192.168.100.193:3306)

Mon Feb  6 17:35:29 2023 - [info]     Not candidate for the new Master (no_master is set)

Mon Feb  6 17:35:29 2023 - [info] Current Alive Master: 192.168.100.193(192.168.100.193:3306)

Mon Feb  6 17:35:29 2023 - [info] Checking slave configurations..

Mon Feb  6 17:35:29 2023 - [info]  read_only=1 is not set on slave 192.168.100.194(192.168.100.194:3306).

Mon Feb  6 17:35:29 2023 - [info]  read_only=1 is not set on slave 192.168.100.195(192.168.100.195:3306).

Mon Feb  6 17:35:29 2023 - [info] Checking replication filtering settings..

Mon Feb  6 17:35:29 2023 - [info]  binlog_do_db= , binlog_ignore_db=

Mon Feb  6 17:35:29 2023 - [info]  Replication filtering check ok.

Mon Feb  6 17:35:29 2023 - [info] GTID (with auto-pos) is supported. Skipping all SSH and Node package checking.

Mon Feb  6 17:35:29 2023 - [info] Checking SSH publickey authentication settings on the current master..

Mon Feb  6 17:35:29 2023 - [info] HealthCheck: SSH to 192.168.100.193 is reachable.

Mon Feb  6 17:35:29 2023 - [info]

192.168.100.193(192.168.100.193:3306) (current master)

+--192.168.100.194(192.168.100.194:3306)

+--192.168.100.195(192.168.100.195:3306)

Mon Feb  6 17:35:29 2023 - [info] Checking replication health on 192.168.100.194..

Mon Feb  6 17:35:29 2023 - [info]  ok.

Mon Feb  6 17:35:29 2023 - [info] Checking replication health on 192.168.100.195..

Mon Feb  6 17:35:29 2023 - [info]  ok.

Mon Feb  6 17:35:29 2023 - [info] Checking master_ip_failover_script status:

Mon Feb  6 17:35:29 2023 - [info]   /usr/local/mha/scripts/master_ip_failover --command=status --ssh_user=root --orig_master_host=192.168.100.193 --orig_master_ip=192.168.100.193 --orig_master_port=3306

IN SCRIPT TEST====/usr/sbin/ifconfig bond0:1 down==/usr/sbin/ifconfig bond0:1 10.31.100.196/24===

Checking the Status of the script.. OK

Mon Feb  6 17:35:29 2023 - [info]  OK.

Mon Feb  6 17:35:29 2023 - [warning] shutdown_script is not defined.

Mon Feb  6 17:35:29 2023 - [info] Got exit code 0 (Not master dead).

MySQL Replication Health is OK.

3.4.3 checkmha.sh

sh checkmha.sh

masterha_default is stopped(2:NOT_RUNNING).

3.4.4 manualswitch.sh

[root@mysql-mha03 scripts]# manualswitch.sh 192.168.100.194

Tue Feb  7 16:47:36 2023 - [info] MHA::MasterRotate version 0.58.

Tue Feb  7 16:47:36 2023 - [info] Starting online master switch..

Tue Feb  7 16:47:36 2023 - [info]

Tue Feb  7 16:47:36 2023 - [info] * Phase 1: Configuration Check Phase..

Tue Feb  7 16:47:36 2023 - [info]

Tue Feb  7 16:47:36 2023 - [info] Reading default configuration from /etc/masterha_default.cnf..

Tue Feb  7 16:47:36 2023 - [info] Reading application default configuration from /etc/masterha_default.cnf..

Tue Feb  7 16:47:36 2023 - [info] Reading server configuration from /etc/masterha_default.cnf..

Tue Feb  7 16:47:37 2023 - [info] GTID failover mode = 1

Tue Feb  7 16:47:37 2023 - [info] Current Alive Master: 192.168.100.193(192.168.100.193:3306)

Tue Feb  7 16:47:37 2023 - [info] Alive Slaves:

Tue Feb  7 16:47:37 2023 - [info]   192.168.100.194(192.168.100.194:3306)  Version=5.7.41-log (oldest major version between slaves) log-bin:enabled

Tue Feb  7 16:47:37 2023 - [info]     GTID ON

Tue Feb  7 16:47:37 2023 - [info]     Replicating from 192.168.100.193(192.168.100.193:3306)

Tue Feb  7 16:47:37 2023 - [info]     Primary candidate for the new Master (candidate_master is set)

Tue Feb  7 16:47:37 2023 - [info]   192.168.100.195(192.168.100.195:3306)  Version=5.7.41-log (oldest major version between slaves) log-bin:enabled

Tue Feb  7 16:47:37 2023 - [info]     GTID ON

Tue Feb  7 16:47:37 2023 - [info]     Replicating from 192.168.100.193(192.168.100.193:3306)

Tue Feb  7 16:47:37 2023 - [info]     Not candidate for the new Master (no_master is set)

Tue Feb  7 16:47:37 2023 - [info] Executing FLUSH NO_WRITE_TO_BINLOG TABLES. This may take long time..

Tue Feb  7 16:47:37 2023 - [info]  ok.

Tue Feb  7 16:47:37 2023 - [info] Checking MHA is not monitoring or doing failover..

Tue Feb  7 16:47:37 2023 - [info] Checking replication health on 192.168.100.194..

Tue Feb  7 16:47:37 2023 - [info]  ok.

Tue Feb  7 16:47:37 2023 - [info] Checking replication health on 192.168.100.195..

Tue Feb  7 16:47:37 2023 - [info]  ok.

Tue Feb  7 16:47:37 2023 - [info] 192.168.100.194 can be new master.

Tue Feb  7 16:47:37 2023 - [info]

From:

192.168.100.193(192.168.100.193:3306) (current master)

+--192.168.100.194(192.168.100.194:3306)

+--192.168.100.195(192.168.100.195:3306)

To:

192.168.100.194(192.168.100.194:3306) (new master)

+--192.168.100.195(192.168.100.195:3306)

+--192.168.100.193(192.168.100.193:3306)

Tue Feb  7 16:47:37 2023 - [info] Checking whether 192.168.100.194(192.168.100.194:3306) is ok for the new master..

Tue Feb  7 16:47:37 2023 - [info]  ok.

Tue Feb  7 16:47:37 2023 - [info] 192.168.100.193(192.168.100.193:3306): SHOW SLAVE STATUS returned empty result. To check replication filtering rules, temporarily executing CHANGE MASTER to a dummy host.

Tue Feb  7 16:47:37 2023 - [info] 192.168.100.193(192.168.100.193:3306): Resetting slave pointing to the dummy host.

Tue Feb  7 16:47:37 2023 - [info] ** Phase 1: Configuration Check Phase completed.

Tue Feb  7 16:47:37 2023 - [info]

Tue Feb  7 16:47:37 2023 - [info] * Phase 2: Rejecting updates Phase..

Tue Feb  7 16:47:37 2023 - [info]

Tue Feb  7 16:47:37 2023 - [info] Executing master ip online change script to disable write on the current master:

Tue Feb  7 16:47:37 2023 - [info]   /usr/local/mha/scripts/master_ip_online_change --command=stop --orig_master_host=192.168.100.193 --orig_master_ip=192.168.100.193 --orig_master_port=3306 --orig_master_user='root' --new_master_host=192.168.100.194 --new_master_ip=192.168.100.194 --new_master_port=3306 --new_master_user='root' --orig_master_ssh_user=root --new_master_ssh_user=root   --orig_master_is_new_slave --orig_master_password=xxx --new_master_password=xxx

ARGS: $VAR1 = [

         '--command=stop',

         '--orig_master_host=192.168.100.193',

         '--orig_master_ip=192.168.100.193',

         '--orig_master_port=3306',

         '--orig_master_user=root',

         '--new_master_host=192.168.100.194',

         '--new_master_ip=192.168.100.194',

         '--new_master_port=3306',

         '--new_master_user=root',

         '--orig_master_ssh_user=root',

         '--new_master_ssh_user=root',

         '--orig_master_is_new_slave',

         '--orig_master_password=root',

         '--new_master_password=root'

       ];

Unknown option: orig_master_ssh_user

Unknown option: new_master_ssh_user

Unknown option: orig_master_is_new_slave

Tue Feb  7 16:47:37 2023 696180 Set read_only on the new master.. ok.

Tue Feb  7 16:47:37 2023 702136 Waiting all running 2 threads are disconnected.. (max 1500 milliseconds)

{'Time' => '252','db' => undef,'Id' => '14','User' => 'repl','State' => 'Master has sent all binlog to slave; waiting for more updates','Command' => 'Binlog Dump GTID','Info' => undef,'Host' => '192.168.100.195:62456'}

{'Time' => '251','db' => undef,'Id' => '15','User' => 'repl','State' => 'Master has sent all binlog to slave; waiting for more updates','Command' => 'Binlog Dump GTID','Info' => undef,'Host' => '192.168.100.194:40884'}

Tue Feb  7 16:47:38 2023 202473 Waiting all running 2 threads are disconnected.. (max 1000 milliseconds)

{'Time' => '253','db' => undef,'Id' => '14','User' => 'repl','State' => 'Master has sent all binlog to slave; waiting for more updates','Command' => 'Binlog Dump GTID','Info' => undef,'Host' => '192.168.100.195:62456'}

{'Time' => '252','db' => undef,'Id' => '15','User' => 'repl','State' => 'Master has sent all binlog to slave; waiting for more updates','Command' => 'Binlog Dump GTID','Info' => undef,'Host' => '192.168.100.194:40884'}

Tue Feb  7 16:47:38 2023 702670 Waiting all running 2 threads are disconnected.. (max 500 milliseconds)

{'Time' => '253','db' => undef,'Id' => '14','User' => 'repl','State' => 'Master has sent all binlog to slave; waiting for more updates','Command' => 'Binlog Dump GTID','Info' => undef,'Host' => '192.168.100.195:62456'}

{'Time' => '252','db' => undef,'Id' => '15','User' => 'repl','State' => 'Master has sent all binlog to slave; waiting for more updates','Command' => 'Binlog Dump GTID','Info' => undef,'Host' => '192.168.100.194:40884'}

bind: Cannot assign requested address

Tue Feb  7 16:47:39 2023 346663 Set read_only=1 on the orig master.. ok.

Tue Feb  7 16:47:39 2023 347666 Waiting all running 2 queries are disconnected.. (max 500 milliseconds)

{'Time' => '254','db' => undef,'Id' => '14','User' => 'repl','State' => 'Master has sent all binlog to slave; waiting for more updates','Command' => 'Binlog Dump GTID','Info' => undef,'Host' => '192.168.100.195:62456'}

{'Time' => '253','db' => undef,'Id' => '15','User' => 'repl','State' => 'Master has sent all binlog to slave; waiting for more updates','Command' => 'Binlog Dump GTID','Info' => undef,'Host' => '192.168.100.194:40884'}

Tue Feb  7 16:47:39 2023 763928 Killing all application threads..

Tue Feb  7 16:47:39 2023 795379 done.

STOP ARGS: $VAR1 = [];

Tue Feb  7 16:47:39 2023 - [info]  ok.

Tue Feb  7 16:47:39 2023 - [info] Locking all tables on the orig master to reject updates from everybody (including root):

Tue Feb  7 16:47:39 2023 - [info] Executing FLUSH TABLES WITH READ LOCK..

Tue Feb  7 16:47:39 2023 - [info]  ok.

Tue Feb  7 16:47:39 2023 - [info] Orig master binlog:pos is binlog.000015:378.

Tue Feb  7 16:47:39 2023 - [info]  Waiting to execute all relay logs on 192.168.100.194(192.168.100.194:3306)..

Tue Feb  7 16:47:39 2023 - [info]  master_pos_wait(binlog.000015:378) completed on 192.168.100.194(192.168.100.194:3306). Executed 0 events.

Tue Feb  7 16:47:39 2023 - [info]   done.

Tue Feb  7 16:47:39 2023 - [info] Getting new master's binlog name and position..

Tue Feb  7 16:47:39 2023 - [info]  binlog.000004:3212

Tue Feb  7 16:47:39 2023 - [info]  All other slaves should start replication from here. Statement should be: CHANGE MASTER TO MASTER_HOST='192.168.100.194', MASTER_PORT=3306, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='xxx';

Tue Feb  7 16:47:39 2023 - [info] Executing master ip online change script to allow write on the new master:

Tue Feb  7 16:47:39 2023 - [info]   /usr/local/mha/scripts/master_ip_online_change --command=start --orig_master_host=192.168.100.193 --orig_master_ip=192.168.100.193 --orig_master_port=3306 --orig_master_user='root' --new_master_host=192.168.100.194 --new_master_ip=192.168.100.194 --new_master_port=3306 --new_master_user='root' --orig_master_ssh_user=root --new_master_ssh_user=root   --orig_master_is_new_slave --orig_master_password=xxx --new_master_password=xxx

ARGS: $VAR1 = [

         '--command=start',

         '--orig_master_host=192.168.100.193',

         '--orig_master_ip=192.168.100.193',

         '--orig_master_port=3306',

         '--orig_master_user=root',

         '--new_master_host=192.168.100.194',

         '--new_master_ip=192.168.100.194',

         '--new_master_port=3306',

         '--new_master_user=root',

         '--orig_master_ssh_user=root',

         '--new_master_ssh_user=root',

         '--orig_master_is_new_slave',

         '--orig_master_password=root',

         '--new_master_password=root'

       ];

Unknown option: orig_master_ssh_user

Unknown option: new_master_ssh_user

Unknown option: orig_master_is_new_slave

Tue Feb  7 16:47:40 2023 003781 Set read_only=0 on the new master.

Tue Feb  7 16:47:41 2023 - [info]  ok.

Tue Feb  7 16:47:41 2023 - [info]

Tue Feb  7 16:47:41 2023 - [info] * Switching slaves in parallel..

Tue Feb  7 16:47:41 2023 - [info]

Tue Feb  7 16:47:41 2023 - [info] -- Slave switch on host 192.168.100.195(192.168.100.195:3306) started, pid: 36825

Tue Feb  7 16:47:41 2023 - [info]

Tue Feb  7 16:47:42 2023 - [info] Log messages from 192.168.100.195 ...

Tue Feb  7 16:47:42 2023 - [info]

Tue Feb  7 16:47:41 2023 - [info]  Waiting to execute all relay logs on 192.168.100.195(192.168.100.195:3306)..

Tue Feb  7 16:47:41 2023 - [info]  master_pos_wait(binlog.000015:378) completed on 192.168.100.195(192.168.100.195:3306). Executed 0 events.

Tue Feb  7 16:47:41 2023 - [info]   done.

Tue Feb  7 16:47:41 2023 - [info]  Resetting slave 192.168.100.195(192.168.100.195:3306) and starting replication from the new master 192.168.100.194(192.168.100.194:3306)..

Tue Feb  7 16:47:41 2023 - [info]  Executed CHANGE MASTER.

Tue Feb  7 16:47:41 2023 - [info]  Slave started.

Tue Feb  7 16:47:42 2023 - [info] End of log messages from 192.168.100.195 ...

Tue Feb  7 16:47:42 2023 - [info]

Tue Feb  7 16:47:42 2023 - [info] -- Slave switch on host 192.168.100.195(192.168.100.195:3306) succeeded.

Tue Feb  7 16:47:42 2023 - [info] Unlocking all tables on the orig master:

Tue Feb  7 16:47:42 2023 - [info] Executing UNLOCK TABLES..

Tue Feb  7 16:47:42 2023 - [info]  ok.

Tue Feb  7 16:47:42 2023 - [info] Starting orig master as a new slave..

Tue Feb  7 16:47:42 2023 - [info]  Resetting slave 192.168.100.193(192.168.100.193:3306) and starting replication from the new master 192.168.100.194(192.168.100.194:3306)..

Tue Feb  7 16:47:42 2023 - [info]  Executed CHANGE MASTER.

Tue Feb  7 16:47:43 2023 - [info]  Slave started.

Tue Feb  7 16:47:43 2023 - [info] All new slave servers switched successfully.

Tue Feb  7 16:47:43 2023 - [info]

Tue Feb  7 16:47:43 2023 - [info] * Phase 5: New master cleanup phase..

Tue Feb  7 16:47:43 2023 - [info]

Tue Feb  7 16:47:43 2023 - [info]  192.168.100.194: Resetting slave info succeeded.

Tue Feb  7 16:47:43 2023 - [info] Switching master to 192.168.100.194(192.168.100.194:3306) completed successfully.

3.4.5 startmha.sh

[root@mysql-mha03 mha]# sh startmha.sh

[root@mysql-mha03 mha]# nohup: appending output to ‘nohup.out’

[root@mysql-mha03 mha]#

[root@mysql-mha03 mha]# sh checkmha.sh

masterha_default (pid:21426) is running(0:PING_OK), master:192.168.100.194

3.4.6 startmha_nodelete.sh

[root@mysql-mha03 mha]# cat startmha_nodelete.sh

nohup masterha_manager --conf=/etc/masterha_default.cnf --ignore_last_failover &

3.4.6 stopmha.sh

[root@mysql-mha03 mha]# sh stopmha.sh

Stopped masterha_default successfully.

[root@mysql-mha03 mha]# sh checkmha.sh

masterha_default is stopped(2:NOT_RUNNING).

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论