MySQL рдкреНрд░рддрд┐рдХреГрддрд┐ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ CARP рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рдлрд▓рддрд╛ рдкреНрд░рдгрд╛рд▓реА

рдФрд░ рдЗрд╕рд▓рд┐рдП рдХрд╛рд░реНрдп рд╣реИред
2 рд╕рд░реНрд╡рд░ рд╣реИрдВ: 1 - рдорд╛рд╕реНрдЯрд░, 2 - рдЧреБрд▓рд╛рдоред рдпрд╣ рдПрдХ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬреЛ 1 рд╕рд░реНрд╡рд░ рдФрд░ / рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдЧрд┐рд░рд╛рд╡рдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдиреНрдпреВрдирддрдо рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреЗ рд╕рд╛рде 2 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдЧрд╛ред рдорд╛рд╕реНрдЯрд░ рдХреА рдмрд╣рд╛рд▓реА рдХреЗ рдмрд╛рдж, рдЙрд╕реЗ рдПрдХ рджрд╛рд╕, рдФрд░ рджрд╛рд╕ - рдПрдХ рдорд╛рд╕реНрдЯрд░ рдмрдирдирд╛ рдЪрд╛рд╣рд┐рдПред рдУрдПрд╕ рдлреНрд░реАрдмреАрдПрд╕рдбреАред

"рдордЫрд▓реА" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ред


рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рд╣рдо CARP рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВ
рдХрд╛рд░реНрдк CARP (рдЕрдВрдЧреНрд░реЗрдЬреА рдХреЙрдорди рдПрдбреНрд░реЗрд╕ рд░рд┐рдбрдВрдбреЗрдВрд╕реА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕реЗ) рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЧрдореЗрдВрдЯ рдХреЗ рднреАрддрд░ рдХрдИ рд╣реЛрд╕реНрдЯ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕рд┐рдВрдЧрд▓ рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред // рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛

## 192.168.10.1 - рдорд╛рд╕реНрдЯрд░ 1
## 192.168.10.2 - рджрд╛рд╕ 2

1. рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдХрд╛рд░реНрдк рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдХрд░реНрдиреЗрд▓ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВред

рдорд╛рд╕реНрдЯрд░ 1 # ee / usr / src / sys / i386 / conf / MYKERNEL
рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛рд░реНрдк # рд╕рд╛рдорд╛рдиреНрдп рдкрддрд╛ рдЕрддрд┐рд░реЗрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓
рдорд╛рд╕реНрдЯрд░ 1 # рд╕реАрдбреА / рдпреВрдПрд╕рдЖрд░ / src /
рдорд╛рд╕реНрдЯрд░ 1 # рдмрд╛рдпреБрд▓рдбрдХрд░реНрдиреЗрд▓ KERNCONF = MYKERNEL рдХрд░реЗрдВ
рдорд╛рд╕реНрдЯрд░ 1 # рдЗрдВрд╕реНрдЯрд╛рд▓ рдХрд░реНрдиреЗрд▓ KERNCONF = MYKERNEL рдХрд░реЗрдВ

// рджреВрд╕рд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╣рдо рд╡рд╣реА рдХрд░рддреЗ рд╣реИрдВред

2. рдЕрдЧрд▓рд╛, Master1 рдкрд░ /etc/rc.conf рдореЗрдВ рдирд┐рдореНрди рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВ:

рдорд╛рд╕реНрдЯрд░ 1 # ee /etc/rc.conf

## CARP рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
cloned_interfaces = "carp0"
ifconfig_carp0 = "vhid 1 рд╕рд▓рд╛рд╣рдХрд╛рд░ 100 рдкрд╛рд╕ рд╕реАрдХреНрд░реЗрдЯ 192.168.10.3.324"

#vid рдЙрд╕ рд╕рдореВрд╣ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
#рдкрд╛рд╕ рд╕рдореВрд╣ рдореЗрдВ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рд╣реИред
#advskew рдПрдХ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ, рдХрдо, рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдгред
# 192.168.10.3 / 24 - рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЖрдИрдкреА рд╣реЛрдЧрд╛ред

рджреВрд╕рд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ (рдЗрд╕реЗ Slave2 рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ), /etc/rc.conf рдореЗрдВ рдирд┐рдореНрди рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВ:

slave2 # ee /etc/rc.conf

## CARP рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
cloned_interfaces = "carp0"
ifconfig_carp0 = "vhid 1 рд╕рд▓рд╛рд╣рдХрд╛рд░ 200 рдкрд╛рд╕ seCret 192.168.10.3.324"

3. рдЗрд╕рдХреЗ рдмрд╛рдж, рджреЛрдиреЛрдВ рдорд╢реАрдиреЛрдВ рдкрд░, sysctl рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░реЗрдВ

master1 # sysctl net.inet.carp.preempt = 1
slave2 # sysctl net.inet.carp.preempt = 1

/Etc/sysctl.conf рдореЗрдВ рджреЛрдиреЛрдВ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдВ:
net.inet.carp.preempt = 1

# рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдкрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рдХрд╛рд░реНрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╕рд┐рдЧреНрдирд▓ рднреЗрдЬрддрд╛ рд╣реИред

4. рд╕рд░реНрд╡рд░ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░реЗрдВред рд░рд┐рдмреВрдЯ рдХреЗ рдмрд╛рдж рд╣рдо рдХрд░рддреЗ рд╣реИрдВ
рдорд╛рд╕реНрдЯрд░ рд╕рд┐рд╕реНрдЯрдо рдкрд░ ifconfig carp0:

carp0: рдЭрдВрдбреЗ = 49 рдореАрдЯреНрд░рд┐рдХ 0 mtu 1500
inet 192.168.10.3 рдиреЗрдЯрдорд╛рд╕реНрдХ 0xffff0000
рдХрд╛рд░реНрдк: рдорд╛рд╕реНрдЯрд░ vhid 1 advbase 1 advskew 100

рдЧреБрд▓рд╛рдо рдкреНрд░рдгрд╛рд▓реА рдкрд░ ifconfig carp0 рдмрдирд╛рддреЗ рд╣реИрдВ:

carp0: рдЭрдВрдбреЗ = 49 рдореАрдЯреНрд░рд┐рдХ 0 mtu 1500
inet 192.168.10.3 рдиреЗрдЯрдорд╛рд╕реНрдХ 0xffff0000
рдХрд╛рд░реНрдк: рдмреИрдХрдЕрдк vhid 1 рдПрдбрдмреЗрд╕ 1 рдПрдбрд╡рд╛рд╕реНрдХреНрдпреВ 200

"рдордЫрд▓реА" рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред

рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗрдЯрдЕрдк


рдкреНрд░рддрд┐рдХреГрддрд┐ рдпреЛрдЬрдирд╛
MySQL рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рд░реВрдк рд╕реЗ рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рддреЛ рдЪрд▓рд┐рдП рддреБрд░рдВрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред

рджреЛрдиреЛрдВ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░, рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рд╕реЗ mySQL рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред

рдорд╛рд╕реНрдЯрд░ 1 # рд╕реАрдбреА / рдпреВрдПрд╕рдЖрд░ / рдкреЛрд░реНрдЯ / рдбреЗрдЯрд╛рдмреЗрд╕ / mysql55- рд╕рд░реНрд╡рд░
рдорд╛рд╕реНрдЯрд░ 1 # рд╕реНрдерд╛рдкрд┐рдд рд╕реНрд╡рдЪреНрдЫ рдФрд░ & quot;

рдХреЙрдиреНрдлрд┐рдЧ рдХреЛ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдХреЙрдкреА рдХрд░реЗрдВ
Master1 # cp /usr/local/share/mysql/my-huge.cnf /etc/my.cnf

1. рд╡рд┐рдЬрд╝рд╛рд░реНрдб 1 рдкрд░ config /etc/my.cnf рдЦреЛрд▓реЗрдВ рдФрд░ рдЬреЛрдбрд╝реЗрдВ
[mysqld] рдЕрдиреБрднрд╛рдЧ рдХреЗ рд▓рд┐рдП

## рдорд╛рд╕реНрдЯрд░ 1
auto_increment_increment = 2
auto_increment_offset = 1
рд╕рд░реНрд╡рд░-рдЖрдИрдбреА = рез
рд░рд┐рд▓реЗ-рд▓реЙрдЧ = mysql-relay-bin
log_slave_updates = 1
skip_slave_start
рд░рд┐рд▓реЗ-рд▓реЙрдЧ-рд╕реНрдкреЗрд╕-рд▓рд┐рдорд┐рдЯ = 1G
log-bin = mysql-bin

2. Slave2 рдкрд░, config /etc/my.cnf рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ

## рдорд╛рд╕реНрдЯрд░ 2
auto_increment_increment = 2
auto_increment_offset = 2
log-bin = mysql-bin
рд╕рд░реНрд╡рд░-рдЖрдИрдбреА = реи
рд░рд┐рд▓реЗ-рд▓реЙрдЧ = mysql-relay-bin
log_slave_updates = 1
skip_slave_start
рд░рд┐рд▓реЗ-рд▓реЙрдЧ-рд╕реНрдкреЗрд╕-рд▓рд┐рдорд┐рдЯ = 1G

// рдмреЗрд╢рдХ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреЗ рд╕рд╛рде mySQL рдХреЗ рдХрд╛рдо рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ "рдлрд╝рд╛рдЗрд▓" рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬреЛ рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реИ, рдпрд╛ рдХреЙрдиреНтАНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдкреЗрдЪреАрджрдЧрд┐рдпреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Percona рд╕рд░реНрд╡рд░ рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ tools.percona.com рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рд╡реИрд╕реЗ, рдЖрдк mySQL-server рдХреЗ рдмрдЬрд╛рдп рдкрд░реНрдХреЙрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

3. рд╣рдо mysql рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ
/usr/local/etc/rc.d/mysql-server рдкреНрд░рд╛рд░рдВрдн
Mysql рд╢реБрд░реВред

3. Master1 рдкрд░ mysql рдбрд╛рд▓реЗрдВ:
mysql @ master1> рдорд╛рд╕реНрдЯрд░ рд╕реНрдерд┐рддрд┐ рджрд┐рдЦрд╛рдПрдВ;
+ ------------------ + ---------- + -------------- + ---- -------------- +
| рдлрд╝рд╛рдЗрд▓ | рд╕реНрдерд┐рддрд┐ | Binlog_Do_DB | Binlog_Ignore_DB |
+ ------------------ + ---------- + -------------- + ---- -------------- +
| mysql-bin.000001 | 499 | | |
+ ------------------ + ---------- + -------------- + ---- -------------- +
1 рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕реЗрдЯ (0.00 рд╕реЗрдХрдВрдб)

4. Slave2 рдкрд░ mysql рдбрд╛рд▓реЗрдВ:
mysql @ slave2> рдорд╛рд╕реНрдЯрд░ рд╕реНрдерд┐рддрд┐ рджрд┐рдЦрд╛рдПрдВ;
+ ------------------ + ---------- + -------------- + ---- -------------- +
| рдлрд╝рд╛рдЗрд▓ | рд╕реНрдерд┐рддрд┐ | Binlog_Do_DB | Binlog_Ignore_DB |
+ ------------------ + ---------- + -------------- + ---- -------------- +
| mysql-bin.000002 | 499 | | |
+ ------------------ + ---------- + -------------- + ---- -------------- +
1 рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕реЗрдЯ (0.00 рд╕реЗрдХрдВрдб)

5. Master1 рдкрд░ mysql рдбрд╛рд▓реЗрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВ:

mysql @ master1> GRANT REPLICATION SL рдХреЛ * рдкрд░ рдЬрд╛рдирд╛ рд╣реИред * to repl@192.168.10.1 'ID рдмрд╛рдИрдкрд╛рд╕' рджреНрд╡рд╛рд░рд╛ IDENTIFIED;
mysql @ master1> GRANT REPLICATION SL рдХреЛ * рдкрд░ рдЬрд╛рдирд╛ рд╣реИред * to repl@192.168.10.2 IDENTIFIED BY 'replpass';
mysql @ master1> FLUSH PRIVILEGES;

6. рдЗрд╕реА рддрд░рд╣ рдЧреБрд▓рд╛рдо 2 рдкрд░:

mysql @ slave2> GRANT REPLICATION SLAVE рдкрд░ *ред * to repl@192.168.10.1 IDENTIFIED BY 'рдкреНрд░рддрд┐рдХреГрддрд┐';
mysql @ slave2> GRANT REPLICATION SLAVE рдкрд░ *ред * to repl@192.168.10.2 IDENTIFIED BY 'replpass';
mysql @ slave2> FLUSH PRIVILEGES;

7. рдЧреБрд▓рд╛рдо 2 рдкрд░:
mysql @ slave2> CHASS MASTER TO MASTER_HOST = "192.168.10.1", MASTER_USER = "рдЙрддреНрддрд░", MASTER_PASSWORD = "рдкреНрд░рддрд┐рдХреГрддрд┐", MASTER_LOG_FILE = "mysql-bin.000001", MASTER_LOG_POS = 499;

mysql @ slave2> рдЧреБрд▓рд╛рдо рд╢реБрд░реВ рдХрд░реЛ;

8. рдорд╛рд╕реНрдЯрд░ 1 рдкрд░:
mysql @ master1> MASTER_HOST = "192.168.10.2", MASTER_USER = "рдЙрддреНрддрд░", MASTER_PASSWORD = "рдкреНрд░рддрд┐рдХреГрддрд┐", MASTER_LOG_POS = "mysql-bin.000002", MASTER_LOG_POS = 499 рдкрд░ рдорд╛рд╕реНрдЯрд░ рдХреЛ рдмрджрд▓реЗрдВред

mysql @ master1> рдЧреБрд▓рд╛рдо рд╢реБрд░реВ рдХрд░реЛ;

9. рджреЛрдиреЛрдВ рд╕реНрд╡рд╛рдореА рдкрд░ рд╣рдо рдХрд░рддреЗ рд╣реИрдВ:
mysql @ master1> рдЧреБрд▓рд╛рдо рдХрд╛ рджрд░реНрдЬрд╛ рджрд┐рдЦрд╛рдУ \ G

рд╣рдореЗрдВ рдЬреЛ рдЬрд╛рдирдХрд╛рд░реА рдЪрд╛рд╣рд┐рдП рд╡рд╣ рд╣реИ Slave_IO_Running рдФрд░ Slave_SQL_Running

Slave_IO_Running: рд╣рд╛рдБ
Slave_SQL_Running: рд╣рд╛рдБ

рдЙрд░ред рдорд╛рд╕реНрдЯрд░ - рдорд╛рд╕реНрдЯрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рддреИрдпрд╛рд░ рд╣реИред

рд▓рд┐рдкрд┐


рдлрд┐рд▓рд╣рд╛рд▓, рдЧреБрдЪреНрдЫрд╛ рд▓рдЧрднрдЧ рддреИрдпрд╛рд░ рд╣реИ, рдПрдХ рдкрд▓ рдмрд╛рдХреА рд╣реИред
рдпрджрд┐ рдорд╛рд╕реНрдЯрд░ 1 рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЧрд┐рд░рддрд╛ рд╣реИ, рддреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╕реНрд▓реЗрд╡ 2 рд╕реАрдПрдЖрд░рдкреА рд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдХреНрд░рд┐рдп рдорд╛рд╕реНрдЯрд░ рдмрди рдЬрд╛рдПрдЧрд╛ред рдЕрдм рдЖрдкрдХреЛ "рдордЫрд▓реА" рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдЧреБрд▓рд╛рдо -> рд╕рдХреНрд░рд┐рдп рдорд╛рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрджрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИред

рдЪрд▓реЛ рдПрдХ рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВред

рд╕реНрд▓реЗрд╡ 2 # рд╕реАрдбреА / рдЯреАрдПрдордкреА
Slave2 # рдЯрдЪ switch_script.sh && chmod + x switch_script.sh
Slave2 # ee switch_script.sh

#!/bin/sh HOST1='192.168.10.1'; # master on server1 HOST2='192.168.10.2'; # slave on server2 GENERAL='192.168.10.3'; # General IP-adress MYSQL='/usr/local/bin/mysql' # Create infinite loop x=1 while [ $x -le 5 ]; do ${MYSQL} -s -h${HOST1} -urepl -preplpass --connect-timeout=10 -e 'SELECT VERSION()' > /dev/null out=$? if [ $out -eq 0 ]; then echo "server ${HOST1} is OK" sleep 60 # delay 1 min else /usr/local/bin/mysqladmin stop-slave /sbin/ifconfig carp0 ${GENERAL} vhid 1 advskew 50 echo "FAILED, cannot connect to mySQL" echo "This host ${HOST2} became a MASTER " exit 0 fi done 


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБ:
Slave2 # ./switch_script.sh

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдХрд╣рдирд╛ред


рд╣рдореЗрдВ MySQL рдореЗрдЯрд░-рдорд╛рд╕реНрдЯрд░ (рдПрдХреНрдЯрд┐рд╡-рдкреИрд╕рд┐рд╡) рдкреНрд░рддрд┐рдХреГрддрд┐ рдФрд░ CARB рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдХрд╛рдлреА рд╕рд░рд▓, рд▓реЗрдХрд┐рди рдкреНрд░рднрд╛рд╡реА рдЕрд╕рдлрд▓-рд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдорд┐рд▓реАред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

Source: https://habr.com/ru/post/In185318/


All Articles