mysql高可用方案之MMM

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

环境规划:

主db1       IP:192.168.1.247   host:tong1

主db2       IP:192.168.1.248   host:tong2

从db3       IP:192.168.1.249   host:tong3

monitor     IP:192.168.1.249   host:tong3

数据库:mysql-5.6.21


 

1.网络环境布置

tong1数据节点:

[root@tong1 ~]# ifconfig  eth0
eth0      Link encap:Ethernet  HWaddr 10:78:D2:C7:83:03  
          inet addr:192.168.1.247  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::1278:d2ff:fec7:8303/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4953337 errors:0 dropped:0 overruns:0 frame:0
          TX packets:78512 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:346785301 (330.7 MiB)  TX bytes:5389268 (5.1 MiB)

[root@tong1 ~]# cat /etc/hosts
192.168.1.247 tong1
192.168.1.248 tong2
192.168.1.249 tong3

[root@tong1 ~]#

 

tong2数据节点:

[root@tong2 ~]# ifconfig  eth0
eth0      Link encap:Ethernet  HWaddr 10:78:D2:C7:17:E8  
          inet addr:192.168.1.248  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::1278:d2ff:fec7:17e8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4930658 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19441 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:315661835 (301.0 MiB)  TX bytes:2133138 (2.0 MiB)

[root@tong2 ~]# cat /etc/hosts
192.168.1.247 tong1
192.168.1.248 tong2
192.168.1.249 tong3

[root@tong2 ~]#

 

tong3监控节点:

[root@tong3 ~]# ifconfig  eth0
eth0      Link encap:Ethernet  HWaddr 10:78:D2:C8:F7:50  
          inet addr:192.168.1.249  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::1278:d2ff:fec8:f750/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6864426 errors:0 dropped:0 overruns:0 frame:0
          TX packets:99046 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:694563286 (662.3 MiB)  TX bytes:7322797 (6.9 MiB)

[root@tong3 ~]# cat /etc/hosts
192.168.1.247 tong1
192.168.1.248 tong2
192.168.1.249 tong3
[root@tong3 ~]#

 

2.在监控节点上tong3安装mysql-mmm软件

下载地址:http://mysql-mmm.org/downloads

[root@tong3 ~]# tar xvf mysql-mmm-2.2.1.tar.gz 
[root@tong3 ~]# cd mysql-mmm-2.2.1
[root@tong3 mysql-mmm-2.2.1]# make && make install

[root@tong3 mysql-mmm-2.2.1]# mmm_
mmm_agentd   mmm_backup   mmm_clone    mmm_control  mmm_mond     mmm_restore  
[root@tong3 mysql-mmm-2.2.1]# ll /etc/mysql-mmm/
total 16
-rw-r-----. 1 root root   33 Apr 29 14:06 mmm_agent.conf
-rw-r-----. 1 root root  684 Apr 29 14:06 mmm_common.conf
-rw-r-----. 1 root root  321 Apr 29 14:06 mmm_mon.conf
-rw-r-----. 1 root root 1293 Apr 29 14:06 mmm_tools.conf
[root@tong3 mysql-mmm-2.2.1]# 


3.在tong1,tong2,tong3节点安装mysql数据库(步骤一样)

[root@tong1 ~]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.23-linux-glibc2.5-x86_64.tar.gz

[root@tong1 ~]# tar xvf mysql-5.6.23-linux-glibc2.5-x86_64.tar.gz  -C /usr/local/

[root@tong1 ~]# cd /usr/local/

[root@tong1 ~]# mv mysql-5.6.23-linux-glibc2.5-x86_64/ mysql-5.6.23

[root@tong1 ~]# cd mysql-5.6.23/

[root@tong1 ~]# ./scripts/mysql_install_db --user=mysql --group=mysql --basedir=/usr/local/mysql-5.6.23 --datadir=/usr/local/mysql-5.6.23/data

[root@tong1 ~]# cp -a my.cnf  /etc/

[root@tong1 ~]# cp -a support-files/mysql.server  /etc/init.d/mysqld

[root@tong1 ~]# chkconfig  --add mysqld

[root@tong1 ~]# chkconfig  mysqld on

[root@tong1 ~]# vim /etc/my.cnf

basedir = /usr/local/mysql-5.6.23
datadir = /usr/local/mysql-5.6.23/data
port = 3306
server_id = 20             --server_id在三台主机不同,分别用10,20,30表示
socket = /tmp/mysql.sock

[root@tong1 ~]# pkill  mysqld

[root@tong1 ~]# /etc/init.d/mysqld  restart

[root@tong1 ~]# /usr/local/mysql-5.6.23/bin/mysqladmin  -u root password 'system'

[root@tong1 ~]# /usr/local/mysql-5.6.23/bin/mysql -u root -p  --输入密码system
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.23 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> exit
Bye
[root@tong1 ~]#


4.将tong1和tong2配置成主主架构

tong1节点配置文件:

[root@tong1 ~]# vim /etc/my.cnf

basedir = /usr/local/mysql-5.6.23
datadir = /usr/local/mysql-5.6.23/data
port = 3306
server_id = 20
socket = /tmp/mysql.sock

replicate-do-db=tong                 --复制tong数据库
replicate-ignore-db=mysql            --忽略mysql数据库

log-bin=mysql-bin                    --开启二进制日志
log-bin-index=mysql-bin-index

auto_increment_offset=1
auto_increment_increment=2


relay-log=relay-log                   --开启中继日志
relay-log-index=relay-log-index


log_slave_updates       --当任意一台主宕机,从可以接管主应用
sync-binlog=1

[root@tong1 ~]#


tong2节点配置文件:

[root@tong2 ~]# vim /etc/my.cnf 

basedir = /usr/local/mysql-5.6.23
datadir = /usr/local/mysql-5.6.23/data
port = 3306
server_id = 10
socket = /tmp/mysql.sock

replicate-do-db=tong
replicate-ignore-db=mysql

log-bin=mysql-bin
log-bin-index=mysql-bin-index

auto_increment_offset=2
auto_increment_increment=2


relay-log=relay-log
relay-log-index=relay-log-index


log_slave_updates
sync-binlog=1

[root@tong2 ~]#


tong3节点配置文件:

[root@tong3 ~]# vim /etc/my.cnf

basedir = /usr/local/mysql-5.6.23
datadir = /usr/local/mysql-5.6.23/data
port = 3306
server_id = 30
socket = /tmp/mysql.sock

replicate-do-db=tong
replicate-ignore-db=mysql

[root@tong3 ~]#


配置主主模式:

tong1节点:

[root@tong1 ~]# /etc/init.d/mysqld restart
Shutting down MySQL.... SUCCESS! 
Starting MySQL. SUCCESS! 
[root@tong1 ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.23-log MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> grant replication slave,replication client on *.* to repl_user@'192.168.1.%' identified by 'system!#%246';         --创建复制用户

Query OK, 0 rows affected (0.00 sec)

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      120 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

mysql> 


tong2节点:

[root@tong2 ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.23-log MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> grant replication slave,replication client on *.* to repl_user@'192.168.1.%' identified by 'system!#%246';

Query OK, 0 rows affected (0.00 sec)

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      120 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

mysql> change master to master_host='192.168.1.247',master_port=3306,master_user='repl_user',master_password='system!#%246',master_log_file='mysql-bin.000001',master_log_pos=120;    --复制tong1中的数据
Query OK, 0 rows affected, 2 warnings (0.50 sec)

mysql> start slave;                 --开启从服务
Query OK, 0 rows affected (0.05 sec)

mysql> 


tong1节点:

mysql>  change master to master_host='192.168.1.248',master_port=3306,master_user='repl_user',master_password='system!#%246',master_log_file='mysql-bin.000001',master_log_pos=120;   --复制tong2中的数据
Query OK, 0 rows affected, 2 warnings (0.22 sec)

mysql> start slave;
Query OK, 0 rows affected (0.05 sec)

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.248
                  Master_User: repl_user
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 120
               Relay_Log_File: relay-log.000002
                Relay_Log_Pos: 283
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes            --主主同步成功
            Slave_SQL_Running: Yes
              Replicate_Do_DB: tong
          Replicate_Ignore_DB: mysql
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 120
              Relay_Log_Space: 450
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 10
                  Master_UUID: de5d22d1-ed4b-11e4-9390-1078d2c717e8
             Master_Info_File: /usr/local/mysql-5.6.23/data/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
1 row in set (0.00 sec)


mysql> 



5.测试主主架构是否生效

tong1节点:

mysql> create table a(a int);
Query OK, 0 rows affected (0.39 sec)

mysql> insert into a values(1);
Query OK, 1 row affected (0.03 sec)

mysql> select * from a;
+------+
| a    |
+------+
|    1 |
+------+
1 row in set (0.00 sec)

mysql> 


tong2节点:

mysql> \u tong
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from a;
+------+
| a    |
+------+
|    1 |
+------+
1 row in set (0.00 sec)

mysql> insert into a values(2);
Query OK, 1 row affected (0.03 sec)

mysql> select * from a;
+------+
| a    |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.00 sec)

mysql> 


6.将tong3设置成tong1节点的从机

[root@tong3 ~]# /etc/init.d/mysqld  restart

Shutting down MySQL.. SUCCESS! 
Starting MySQL. SUCCESS! 
[root@tong3 ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 5.6.23 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> change master to master_host='192.168.1.247',master_port=3306,master_user='repl_user',master_password='system!#%246',master_log_file='mysql-bin.000001',master_log_pos=120;    --复制tong1中的数据
Query OK, 0 rows affected, 2 warnings (0.27 sec)

mysql> start slave;
Query OK, 0 rows affected (0.07 sec)

mysql> \u tong
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from a;    --数据已同步
+------+
| a    |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.00 sec)

mysql> 


7.在三个数据库节点分别创建监控用户和代理用户

mysql> grant replication client on *.* to 'mmm_moniton'@'192.168.1.%' identified by 'moniton';
Query OK, 0 rows affected (0.00 sec)

mysql>  grant super,replication client,process on *.* to 'mmm_agent'@'192.168.1.%' identified by 'agent';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> 


8.在监控节点修改配置文件

[root@tong3 ~]# cd /etc/mysql-mmm/
[root@tong3 mysql-mmm]# ll
total 16
-rw-r-----. 1 root root   33 Apr 29 14:06 mmm_agent.conf
-rw-r-----. 1 root root  684 Apr 29 14:06 mmm_common.conf
-rw-r-----. 1 root root  321 Apr 29 14:06 mmm_mon.conf
-rw-r-----. 1 root root 1293 Apr 29 14:06 mmm_tools.conf
[root@tong3 mysql-mmm]# vim mmm_common.conf 

active_master_role      writer


<host default>
        cluster_interface              eth0    --心跳网卡接口

        pid_path                       /var/run/mmm_agentd.pid
        bin_path                       /usr/lib/mysql-mmm

        replication_user               repl_user        --复制用户名和密码
        replication_password           system!#%246     

        agent_user                      mmm_agent       --代理用户名和密码
        agent_password                  agent
</host>

<host tong1>    --主机名
        ip                              192.168.1.247    --tong1的IP地址
        mode                            master           --主模式
        peer                            tong1            --主机名
</host>

<host tong2>
        ip                              192.168.1.248
        mode                            master
        peer                            tong2
</host>

<host tong3>
        ip                              192.168.1.249
        mode                            slave         --从服务器
</host>


<role writer>
        hosts                           tong1, tong2     --tong1和tong2可写
        ips                             192.168.1.120
        mode                            exclusive
</role>

<role reader>
        hosts                           tong1, tong2, tong3   --三台可读
        ips                             192.168.1.121
        mode                            balanced

<role>


[root@tong3 mysql-mmm]# vim mmm_mon.conf

include mmm_common.conf

<monitor>
        ip                                      127.0.0.1
        pid_path                                /var/run/mmm_mond.pid
        bin_path                                /usr/lib/mysql-mmm
        status_path                             /var/lib/misc/mmm_mond.status
        ping_ips                                192.168.1.247, 192.168.1.248, 192.168.1.249
        auto_set_online                         10
</monitor>

<host default>
        monitor_user                    mmm_moniton    --监控用户名和密码
        monitor_password                moniton
</host>

debug 1               --为1是开启服务打印日志,为0是只开启服务

[root@tong3 mysql-mmm]# cat mmm_agent.conf 
include mmm_common.conf
this tong3                        --主机名
[root@tong3 mysql-mmm]# 


9.将tong3节点的mmm_common.conf复制到tong1和tong2节点中

[root@tong3 mysql-mmm]# scp mmm_common.conf tong1:/etc/mysql-mmm/
mmm_common.conf                              100%  674     0.7KB/s   00:00    
You have mail in /var/spool/mail/root
[root@tong3 mysql-mmm]# scp mmm_common.conf tong2:/etc/mysql-mmm/
mmm_common.conf                              100%  674     0.7KB/s   00:00    
[root@tong3 mysql-mmm]# 


tong1,tong2修改mmm_agent.conf文件并启动服务

[root@tong1 mysql-mmm]# cat mmm_agent.conf 
include mmm_common.conf
this tong1                        --修改主机名
[root@tong1 mysql-mmm]# /etc/init.d/mysql-mmm-agent restart    --重启服务
Daemon bin: '/usr/sbin/mmm_agentd'
Daemon pid: '/var/run/mmm_agentd.pid'
Daemon bin: '/usr/sbin/mmm_agentd'
Daemon pid: '/var/run/mmm_agentd.pid'
Shutting down MMM Agent daemon. Ok
Daemon bin: '/usr/sbin/mmm_agentd'
Daemon pid: '/var/run/mmm_agentd.pid'
Starting MMM Agent daemon... Ok
[root@tong1 mysql-mmm]# 


tong3启动mmm-mysql-agent和mysql-mmm-monitor服务

[root@tong3 mysql-mmm]# /etc/init.d/mysql-mmm-agent  restart
Daemon bin: '/usr/sbin/mmm_agentd'
Daemon pid: '/var/run/mmm_agentd.pid'
Daemon bin: '/usr/sbin/mmm_agentd'
Daemon pid: '/var/run/mmm_agentd.pid'
Shutting down MMM Agent daemon. Ok
Daemon bin: '/usr/sbin/mmm_agentd'
Daemon pid: '/var/run/mmm_agentd.pid'
Starting MMM Agent daemon... Ok
[root@tong3 mysql-mmm]# /etc/init.d/mysql-mmm-monitor  restart
Daemon bin: '/usr/sbin/mmm_mond'
Daemon pid: '/var/run/mmm_mond.pid'
Daemon bin: '/usr/sbin/mmm_mond'
Daemon pid: '/var/run/mmm_mond.pid'
Shutting down MMM Monitor daemon:  not running.
Daemon bin: '/usr/sbin/mmm_mond'
Daemon pid: '/var/run/mmm_mond.pid'
Starting MMM Monitor daemon: Ok
[root@tong3 mysql-mmm]# mmm_control  show
  tong1(192.168.1.247) master/ONLINE. Roles: writer(192.168.1.120)
  tong2(192.168.1.248) master/ONLINE. Roles: 
  tong3(192.168.1.249) slave/ONLINE. Roles: reader(192.168.1.121)

[root@tong3 mysql-mmm]# mmm_control  set_offline tong1
OK: State of 'tong1' changed to ADMIN_OFFLINE. Now you can wait some time and check all roles!
[root@tong3 mysql-mmm]# mmm_control  show
  tong1(192.168.1.247) master/ADMIN_OFFLINE. Roles: 
  tong2(192.168.1.248) master/ONLINE. Roles: writer(192.168.1.120)
  tong3(192.168.1.249) slave/ONLINE. Roles: reader(192.168.1.121)

[root@tong3 mysql-mmm]# mmm_control  set_offline tong3
OK: State of 'tong3' changed to ADMIN_OFFLINE. Now you can wait some time and check all roles!
[root@tong3 mysql-mmm]# mmm_control  show
  tong1(192.168.1.247) master/ADMIN_OFFLINE. Roles: 
  tong2(192.168.1.248) master/ONLINE. Roles: reader(192.168.1.121), writer(192.168.1.120)
  tong3(192.168.1.249) slave/ADMIN_OFFLINE. Roles: 

[root@tong3 mysql-mmm]# mmm_control  set_online tong1
OK: State of 'tong1' changed to ONLINE. Now you can wait some time and check its new roles!
[root@tong3 mysql-mmm]# mmm_control  set_online tong3
OK: State of 'tong3' changed to ONLINE. Now you can wait some time and check its new roles!
[root@tong3 mysql-mmm]# mmm_control  show
  tong1(192.168.1.247) master/ONLINE. Roles: reader(192.168.1.121)
  tong2(192.168.1.248) master/ONLINE. Roles: writer(192.168.1.120)
  tong3(192.168.1.249) slave/ONLINE. Roles: 

You have mail in /var/spool/mail/root
[root@tong3 mysql-mmm]










本文转自 z597011036 51CTO博客,原文链接:http://blog.51cto.com/tongcheng/1588620,如需转载请自行联系原作者
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
235
分享
相关文章
Mysql高可用架构方案
本文阐述了Mysql高可用架构方案,介绍了 主从模式,MHA模式,MMM模式,MGR模式 方案的实现方式,没有哪个方案是完美的,开发人员在选择何种方案应用到项目中也没有标准答案,合适的才是最好的。
455 3
Mysql高可用架构方案
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
基于SQL Server / MySQL进行百万条数据过滤优化方案
对百万级别数据进行高效过滤查询,需要综合使用索引、查询优化、表分区、统计信息和视图等技术手段。通过合理的数据库设计和查询优化,可以显著提升查询性能,确保系统的高效稳定运行。
48 9
云数据库:从零到一,构建高可用MySQL集群
在互联网时代,数据成为企业核心资产,传统单机数据库难以满足高并发、高可用需求。云数据库通过弹性扩展、分布式架构等优势解决了这些问题,但也面临数据安全和性能优化挑战。本文介绍了如何从零开始构建高可用MySQL集群,涵盖选择云服务提供商、创建实例、配置高可用架构、数据备份恢复及性能优化等内容,并通过电商平台案例展示了具体应用。
Aurora MySQL负载突增应对策略与优化方案
通过以上策略,企业可以有效应对 Aurora MySQL 的负载突增,确保数据库在高负载情况下依然保持高性能和稳定性。这些优化方案涵盖了从架构设计到具体配置和监控的各个方面,能够全面提升数据库的响应速度和处理能力。在实际应用中,应根据具体的业务需求和负载特征,灵活调整和应用这些优化策略。
68 22
MySQL 分库分表方案
本文总结了数据库分库分表的相关概念和实践,针对单张表数据量过大及增长迅速的问题,介绍了垂直和水平切分的方式及其适用场景。文章分析了分库分表后可能面临的事务支持、多库结果集合并、跨库join等问题,并列举了几种常见的开源分库分表中间件。最后强调了不建议水平分库分表的原因,帮助读者在规划时规避潜在问题。
327 20
【MySQL进阶篇】存储引擎(MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案)
MySQL的存储引擎是其核心组件之一,负责数据的存储、索引和检索。不同的存储引擎具有不同的功能和特性,可以根据业务需求 选择合适的引擎。本文详细介绍了MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案。
【MySQL进阶篇】存储引擎(MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案)
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
130 5
docker拉取MySQL后数据库连接失败解决方案
通过以上方法,可以解决Docker中拉取MySQL镜像后数据库连接失败的常见问题。关键步骤包括确保容器正确启动、配置正确的环境变量、合理设置网络和权限,以及检查主机防火墙设置等。通过逐步排查,可以快速定位并解决连接问题,确保MySQL服务的正常使用。
114 82
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等