文档章节

基于mysql 5.5+mysql-master-ha实现mysql ha架构

五大三粗
 五大三粗
发布于 2015/04/20 17:16
字数 3043
阅读 31
收藏 1
点赞 0
评论 0
   听说很多大公司都在使用mysql ha(mysql-master-ha)的环境,下面,我也试着搭建测试一下。
一.MHA原理及其特点:
1.原理:
       MHA在主服务器发生故障时,自动实现故障转移,快速将从服务器晋级为主服务器(通常在10-30s),而不影响复制的一致性,适用于任何存储引擎
       MHA 提供在线服务器切换,将从服务器器提升为主服务器,时间在0.5-2s,这段时间,数据是无法写入的。
       MHA manager 是通过ssh 连接到 mysql slave服务器上
       MHA 每次从宕掉的主服务器上保存二进制日志,但不是每次都成功(主服务器硬件故障或无法通过ssh访问)
       mysql 5.5支持半同步复制,MHA与半同步复制结合,可以大大降低数据丢失的风险,
2.特性:
   (1).主服务器的自动监控和故障转移
   (2).交互式主服务器故障迁移(使用MHA实现故障迁移,不监控主服务器,出现故障,手工调用MHA切换)
   (3).非交互式的主故障迁移(不监控主服务器,但自动实现故障转移)
   (4).在线切换主服务器
      注: MHA 可以应用于任何复制结构(此点待定)
二.MHA的前提条件:
1.搭建的前提条件:
   (1).mysql 主从复制已配置好(master-slave)
   (2).4台server 设置SSH公钥免密码登录
   (3).操作系统为linux系统(MHA 只支持linux系统)
   (4).单台可写主服务器和多台从服务器或只读服务器
   (5).mysql 版本为5.0或以上版本
   (6).候选主服务器的log-bin必须开启
   (7). 所有服务器上的二进制日志和中级日志过滤规则必须相同
   (8).候选服务器上的复制用户必须存在
   (9). 保留中继日志和定期清理
        参考文章:http://www.vmcd.org/2012/04/mysql-high-availability-mha/
2.MHA的基本说明:
     MHA由node 和 manage 组成,
     node 安装在每一台mysql服务器上(主从上都要装),
     manage端运行在独立服务器上,也需要安装node节点
3.MHA 切换过程:
   (1).监控和故障转移过程
        检测复制设置和确定当前主服务器
        监控主服务器
        检测主服务器当掉
        再次检测从服务器配置
        关闭当掉的主服务器(可选)
        恢复一个新的主服务器
        激活新的主服务器
        恢复其余的从服务器
        告警(可选)
   (2).在线切换过程
        检测复制设置和确定当前主服务器
        确定新的主服务器
        阻塞写入到当前主服务器
        等待所有从服务器赶上复制
        授予写入到新的主服务器
        重新设置从服务器
三.MHA 部署实例:
    主DB:192.168.1.101
    从DB1:192.168.1.102
    从DB2:192.168.1.103
    MHA管理端:192.168.1.100
    系统版本:red hat linux 6
    数据库版本:mysql 5.5
    注:默认mysql主从配置已经配置完毕

1.对mysql的主从进行半同步配置、从上建立复制的用户和授予相应的权限、日志清除设置

  1. # 所有mysql数据库服务器,安装半同步插件(semisync_master.so,semisync_slave.so)  
  2. mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so';      
  3. mysql> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';  
  4. # 注:其实master是安装在主,slave是安装在从上,但是我们是涉及从升级为主,所以主从都装  
  5. # 卸载插件使用命令:   
  6. # mysql> uninstall plugin rpl_semi_sync_slave;  
  7. # mysql> uninstall plugin rpl_semi_sync_master;  
  8. # 修改所有数据库服务器的参数文件(/etc/my.cnf),添加内容如下:  
  9. [root@client101-103  ~]# vim /etc/my.cnf  
  10. rpl_semi_sync_master_enabled=1  
  11. rpl_semi_sync_master_timeout=1000  
  12. rpl_semi_sync_slave_enabled=1  
  13. relay_log_purge=0     # 此参数将定期清除中继日志功能关闭  
  14. # 重启数据库,查看同步状态和半同步参数、状态  
  15. [root@client101-103  ~]# /etc/init.d/mysql restart  
  16. # 查看半同步参数:  
  17. mysql> show variables like '%sync%';  
  18. # 查看半同步状态:  
  19. mysql> show status like '%sync%';  
  20. # 有几个状态参数值得关注的:  
  21. rpl_semi_sync_master_status:显示主服务是异步复制模式还是半同步复制模式  
  22. rpl_semi_sync_master_clients:显示有多少个从服务器配置为半同步复制模式  
  23. rpl_semi_sync_master_yes_tx:显示从服务器确认成功提交的数量  
  24. rpl_semi_sync_master_no_tx:显示从服务器确认不成功提交的数量  
  25. rpl_semi_sync_master_tx_avg_wait_time:事务因开启semi_sync,平均需要额外等待的时间  
  26. rpl_semi_sync_master_net_avg_wait_time:事务进入等待队列后,到网络平均等待时间  
  27. # 两台从数据库建立用于复制的用户和密码  
  28. mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.%' IDENTIFIED BY 'slave';  
  29. mysql> flush privileges;  

2.4台server建立ssh无密码验证登陆

  1. 注:ssh-keygen  -t   rsa:  
  2. # manage 端  
  3. [root@client100 ~]# ssh-keygen  -t rsa  
  4. [root@client100 ~]# ssh-copy-id root@192.168.1.101  
  5. [root@client100 ~]# ssh-copy-id root@192.168.1.102  
  6. [root@client100 ~]# ssh-copy-id root@192.168.1.103  
  7. # 主DB   
  8. [root@client101 ~]# ssh-keygen  -t rsa  
  9. [root@client101 ~]# ssh-copy-id root@192.168.1.100  
  10. [root@client101 ~]# ssh-copy-id root@192.168.1.102  
  11. [root@client101 ~]# ssh-copy-id root@192.168.1.103  
  12. # 从DB1   
  13. [root@client102 ~]# ssh-keygen  -t rsa  
  14. [root@client102 ~]# ssh-copy-id root@192.168.1.100  
  15. [root@client102 ~]# ssh-copy-id root@192.168.1.102  
  16. [root@client102 ~]# ssh-copy-id root@192.168.1.103  
  17. # 从DB2   
  18. [root@client103 ~]# ssh-keygen  -t rsa  
  19. [root@client103 ~]# ssh-copy-id root@192.168.1.100  
  20. [root@client103 ~]# ssh-copy-id root@192.168.1.101  
  21. [root@client103 ~]# ssh-copy-id root@192.168.1.102  

3.在3台数据库节点安装MHA的node节点:

  1. # 如果安装下面包,报依赖关系错,请先安装mysql-share-compat包  
  2. # 先安装下面的 perl-dbd-mysql包  
  3. # 在下面执行perl时,如果出现报错,需要安装如下这几个perl包: perl-devel perl-CPAN  
  4. ## 在192.168.1.101上执行如下操作  
  5. [root@client101 ~]# yum -y install perl-DBD-MySQL  
  6. [root@client101 ~]# tar -xf mha4mysql-node-0.54.tar.gz  
  7. [root@client101 ~]# cd mha4mysql-node-0.54  
  8. [root@client101 mha4mysql-node-0.54]# perl Makefile.PL  
  9. [root@client101 mha4mysql-node-0.54]# make && make install  
  10. # 在192.168.1.102上执行如下操作  
  11. [root@client102 ~]# yum -y install perl-DBD-MySQL  
  12. [root@client102 ~]# tar -xf mha4mysql-node-0.54.tar.gz  
  13. [root@client102 ~]# cd mha4mysql-node-0.54  
  14. [root@client102 mha4mysql-node-0.54]# perl Makefile.PL  
  15. [root@client102 mha4mysql-node-0.54]# make && make install  
  16. # 在192.168.1.103上执行如下操作  
  17. [root@client103 ~]# yum -y install perl-DBD-MySQL  
  18. [root@client103 ~]# tar -xf mha4mysql-node-0.54.tar.gz  
  19. [root@client103 ~]# cd mha4mysql-node-0.54  
  20. [root@client103 mha4mysql-node-0.54]# perl Makefile.PL  
  21. [root@client103 mha4mysql-node-0.54]# make && make install  

4.管理节点安装MHA的manager和node(192.168.1.100):

  1. # 管理节点一定记得装mha4mysql-node-0.54.tar.gz  和  mha4mysql-manager-0.55.tar.gz   
  2. # 管理节点,不装node 会报错的  
  3. # 安装相关perl包(有些包,系统没有自带,需要自行下载安装)  
  4. [root@client100 ~]# yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Config-IniFiles  
  5. [root@client100 ~]# tar -xf mha4mysql-node-0.54.tar.gz  
  6. [root@client100 ~]# cd mha4mysql-node-0.54  
  7. [root@client100 mha4mysql-node-0.54]# perl Makefile.PL  
  8. [root@client100 mha4mysql-node-0.54]# make && make install  
  9.   
  10. [root@client100 ~]# tar -xf mha4mysql-manager-0.55.tar.gz  
  11. [root@client100 ~]# cd mha4mysql-manager-0.55  
  12. [root@client100 mha4mysql-manager-0.55]# perl Makefile.PL  
  13. [root@client100 mha4mysql-manager-0.55]# make && make install  

5.编辑管理节点的配置文件

  1. # 建立配置文件存放目录,并将模板配置文件复制到新建目录  
  2. [root@client100 ~]# mkdir /etc/mastermha  
  3. [root@client100 ~]# mkdir -p /mastermha/app1  
  4. [root@client100 ~]# cd /tmp/mha4mysql-manager-0.55  
  5. [root@client100 mha4mysql-manager-0.55]# cp samples/conf/* /etc/mastermha/  
  6. [root@client100 ~]# vim /etc/mastermha/app1.cnf  
  7. [server default]  
  8. manager_workdir=/masterha/app1  
  9. manager_log=/masterha/app1/manager.log  
  10. user=mha_mon  
  11. password=123456  
  12. ssh_user=root  
  13. repl_user=slave  
  14. repl_password=slave  
  15. ping_interval=1  
  16. shutdown_script=""  
  17. master_ip_online_change_script=""  
  18. report_script=""  
  19.   
  20. [server1]  
  21. hostname=192.168.1.101  
  22. master_binlog_dir=/var/lib/mysql/  
  23. candidate_master=1  
  24.   
  25. [server2]  
  26. hostname=192.168.1.102  
  27. master_binlog_dir=/var/lib/mysql  
  28. candidate_master=1  
  29.   
  30. [server3]  
  31. hostname=192.168.1.103  
  32. #master_binlog_dir=/var/lib/mysql  
  33. no_master=1   

6.在所有数据库节点的机器上进行授权操作(192.168.1.101/192.168.1.102/192.168.1.103)

  1. mysql> grant all privileges on *.* to 'mha_mon'@'192.168.1.%' identified by '123456';  
  2. Query OK, 0 rows affected (1.00 sec)  
  3. mysql> flush privileges;  

7.测试ssh连接是否正常

  1. # 所有都为ok 即为正常  
  2. [root@client100 mastermha]# masterha_check_ssh  --global_conf=/etc/mastermha/masterha_default.cnf  --conf=/etc/mastermha/app1.cnf  
  3. Sun Mar  2 14:52:53 2014 - [info] Reading default configuratoins from /etc/mastermha/masterha_default.cnf..  
  4. Sun Mar  2 14:52:53 2014 - [info] Reading application default configurations from /etc/mastermha/app1.cnf..  
  5. Sun Mar  2 14:52:53 2014 - [info] Reading server configurations from /etc/mastermha/app1.cnf..  
  6. Sun Mar  2 14:52:53 2014 - [info] Starting SSH connection tests..  
  7. Sun Mar  2 14:53:04 2014 - [debug]  
  8. Sun Mar  2 14:52:53 2014 - [debug]  Connecting via SSH from root@192.168.1.102(192.168.1.102:22) to root@192.168.1.101(192.168.1.101:22)..  
  9. Sun Mar  2 14:53:03 2014 - [debug]   ok.  
  10. Sun Mar  2 14:53:03 2014 - [debug]  Connecting via SSH from root@192.168.1.102(192.168.1.102:22) to root@192.168.1.103(192.168.1.103:22)..  
  11. Sun Mar  2 14:53:04 2014 - [debug]   ok.  
  12. Sun Mar  2 14:53:04 2014 - [debug]  
  13. Sun Mar  2 14:52:54 2014 - [debug]  Connecting via SSH from root@192.168.1.103(192.168.1.103:22) to root@192.168.1.101(192.168.1.101:22)..  
  14. Sun Mar  2 14:53:04 2014 - [debug]   ok.  
  15. Sun Mar  2 14:53:04 2014 - [debug]  Connecting via SSH from root@192.168.1.103(192.168.1.103:22) to root@192.168.1.102(192.168.1.102:22)..  
  16. Sun Mar  2 14:53:04 2014 - [debug]   ok.  
  17. Sun Mar  2 14:54:53 2014 - [debug]  
  18. Sun Mar  2 14:52:53 2014 - [debug]  Connecting via SSH from root@192.168.1.101(192.168.1.101:22) to root@192.168.1.102(192.168.1.102:22)..  
  19. Sun Mar  2 14:53:53 2014 - [debug]   ok.  
  20. Sun Mar  2 14:53:53 2014 - [debug]  Connecting via SSH from root@192.168.1.101(192.168.1.101:22) to root@192.168.1.103(192.168.1.103:22)..  
  21. Sun Mar  2 14:54:53 2014 - [debug]   ok.  
  22. Sun Mar  2 14:54:53 2014 - [info] All SSH connection tests passed successfully.  

8.测试数据库之间的复制情况:

  1. # 如果正常点额话,下面会有ok显示  
  2. [root@client100 mastermha]# masterha_check_repl --global_conf=/etc/mastermha/masterha_default.cnf  --conf=/etc/mastermha/app1.cnf  
  3. Sun Mar  2 15:10:16 2014 - [info] Reading default configuratoins from /etc/mastermha/masterha_default.cnf..  
  4. Sun Mar  2 15:10:16 2014 - [info] Reading application default configurations from /etc/mastermha/app1.cnf..  
  5. Sun Mar  2 15:10:16 2014 - [info] Reading server configurations from /etc/mastermha/app1.cnf..  
  6. Sun Mar  2 15:10:16 2014 - [info] MHA::MasterMonitor version 0.55.  
  7. Sun Mar  2 15:10:25 2014 - [info] Dead Servers:  
  8. Sun Mar  2 15:10:25 2014 - [info]   192.168.1.101(192.168.1.101:3306)  
  9. Sun Mar  2 15:10:25 2014 - [info] Alive Servers:  
  10. Sun Mar  2 15:10:25 2014 - [info]   192.168.1.102(192.168.1.102:3306)  
  11. Sun Mar  2 15:10:25 2014 - [info]   192.168.1.103(192.168.1.103:3306)  
  12. Sun Mar  2 15:10:25 2014 - [info] Alive Slaves:  
  13. Sun Mar  2 15:10:25 2014 - [info]   192.168.1.102(192.168.1.102:3306)  Version=5.5.36-log (oldest major version between slaves) log-bin:enabled  
  14. Sun Mar  2 15:10:25 2014 - [info]     Replicating from 192.168.1.101(192.168.1.101:3306)  
  15. Sun Mar  2 15:10:25 2014 - [info]     Primary candidate for the new Master (candidate_master is set)  
  16. Sun Mar  2 15:10:25 2014 - [info]   192.168.1.103(192.168.1.103:3306)  Version=5.5.36-log (oldest major version between slaves) log-bin:enabled  
  17. Sun Mar  2 15:10:25 2014 - [info]     Replicating from 192.168.1.101(192.168.1.101:3306)  
  18. Sun Mar  2 15:10:25 2014 - [warning] MySQL master is not currently alive!  
  19. Sun Mar  2 15:10:25 2014 - [info] Checking slave configurations..  
  20. Sun Mar  2 15:10:25 2014 - [info]  read_only=1 is not set on slave 192.168.1.102(192.168.1.102:3306).  
  21. Sun Mar  2 15:10:25 2014 - [warning]  relay_log_purge=0 is not set on slave 192.168.1.102(192.168.1.102:3306).  
  22. Sun Mar  2 15:10:25 2014 - [info] Checking replication filtering settings..  
  23. Sun Mar  2 15:10:25 2014 - [info]  Replication filtering check ok.  
  24. Sun Mar  2 15:10:25 2014 - [info] Starting SSH connection tests..  
  25. Sun Mar  2 15:10:26 2014 - [info] All SSH connection tests passed successfully.  
  26. Sun Mar  2 15:10:26 2014 - [info] Checking MHA Node version..  
  27. Sun Mar  2 15:10:26 2014 - [info]  Version check ok.  
  28. Sun Mar  2 15:10:26 2014 - [info] Getting current master (maybe dead) info ..  
  29. Sun Mar  2 15:10:26 2014 - [info] Identified master is 192.168.1.101(192.168.1.101:3306).  
  30. Sun Mar  2 15:10:26 2014 - [info] Checking SSH publickey authentication settings on the current master..  
  31. Sun Mar  2 15:10:31 2014 - [warning] HealthCheck: Got timeout on checking SSH connection to 192.168.1.101! at /usr/local/share/perl5/MHA/HealthCheck.pm line 298.  
  32. Sun Mar  2 15:10:31 2014 - [info] Checking SSH publickey authentication and checking recovery script configurations on all alive slave servers..  
  33. Sun Mar  2 15:10:31 2014 - [info]   Executing command : apply_diff_relay_logs --command=test --slave_user='mha_mon' --slave_host=192.168.1.102 --slave_ip=192.168.1.102 --slave_port=3306 --workdir=/data/log/masterha --target_version=5.5.36-log --manager_version=0.55 --relay_log_info=/var/lib/mysql/relay-log.info  --relay_dir=/var/lib/mysql/  --slave_pass=xxx  
  34. Sun Mar  2 15:10:31 2014 - [info]   Connecting to root@192.168.1.102(192.168.1.102:22)..  
  35. Creating directory /data/log/masterha.. done.  
  36.   Checking slave recovery environment settings..  
  37.     Opening /var/lib/mysql/relay-log.info ... ok.  
  38.     Relay log found at /var/lib/mysql, up to mysql-relay-bin.000007  
  39.     Temporary relay log file is /var/lib/mysql/mysql-relay-bin.000007  
  40.     Testing mysql connection and privileges.. done.  
  41.     Testing mysqlbinlog output.. done.  
  42.     Cleaning up test file(s).. done.  
  43. Sun Mar  2 15:10:31 2014 - [info]   Executing command : apply_diff_relay_logs --command=test --slave_user='mha_mon' --slave_host=192.168.1.103 --slave_ip=192.168.1.103 --slave_port=3306 --workdir=/data/log/masterha --target_version=5.5.36-log --manager_version=0.55 --relay_log_info=/var/lib/mysql/relay-log.info  --relay_dir=/var/lib/mysql/  --slave_pass=xxx  
  44. Sun Mar  2 15:10:31 2014 - [info]   Connecting to root@192.168.1.103(192.168.1.103:22)..  
  45. Creating directory /data/log/masterha.. done.  
  46.   Checking slave recovery environment settings..  
  47.     Opening /var/lib/mysql/relay-log.info ... ok.  
  48.     Relay log found at /var/lib/mysql, up to mysql-relay-bin.000009  
  49.     Temporary relay log file is /var/lib/mysql/mysql-relay-bin.000009  
  50.     Testing mysql connection and privileges.. done.  
  51.     Testing mysqlbinlog output.. done.  
  52.     Cleaning up test file(s).. done.  
  53. Sun Mar  2 15:10:32 2014 - [info] Slaves settings check done.  
  54. Sun Mar  2 15:10:32 2014 - [info]  
  55. 192.168.1.101 (current master)  
  56. +--192.168.1.102  
  57. +--192.168.1.103  
  58.   
  59. Sun Mar  2 15:10:32 2014 - [info] Checking replication health on 192.168.1.102..  
  60. Sun Mar  2 15:10:32 2014 - [info]  ok.  
  61. Sun Mar  2 15:10:32 2014 - [info] Checking replication health on 192.168.1.103..  
  62. Sun Mar  2 15:10:32 2014 - [info]  ok.  
  63. Sun Mar  2 15:10:32 2014 - [warning] master_ip_failover_script is not defined.  
  64. Sun Mar  2 15:10:32 2014 - [warning] shutdown_script is not defined.  
  65. Sun Mar  2 15:10:32 2014 - [info] Got exit code 0 (Not master dead).  
  66.   
  67. MySQL Replication Health is OK.  

9.启动管理节点进程:

  1. [root@client100 mastermha]#nohup masterha_manager --conf=/etc/mastermha/app1.cnf > /tmp/mha_manager.log  </dev/null 2>&1 &  
  2. # 可以用以下命令,查看mha 进程是否启动  
  3. [root@client100 mastermha]# ps -ef |grep mha   
  4. # 检查MHA状态:  
  5. [root@client100 ~]# masterha_check_status  --global_conf=/etc/mastermha/masterha_default.cnf  --conf=/etc/mastermha/app1.cnf  
  6.  app1 (pid:2835) is running(0:PING_OK), master:192.168.1.101  
  7. #  正常情况下,如果为ok,则mha已经配置成功  
  8. # 也可以查看相关日志,/masterha/app1/manager.log 此日记记录详细切换过程  

10.测试:

     关闭目前为主的mysql,仔细查看日志,系统会自动进行切换
注:切换失败后,再次启动管理端,是启不来的,需要删除目录下相关app1.failover.complete,才可正常开启
     各位自行测试,有问题,可以互相探讨。

© 著作权归作者所有

共有 人打赏支持
五大三粗
粉丝 157
博文 2215
码字总数 4578339
作品 0
广州
程序员
Linux下的MYSQL主主复制

为什么,会有mysql的主主复制。因为在一些高可用的环境中,mysql的主从不能满足现实中的一些实际需求。比如,一些流量大的网站数据库访问有了瓶颈,需要负载均衡的时候就用两个或者多个的mys...

duyunlong
2013/10/10
0
0
PostgresSQL HA高可用架构实战

PostgresSQL HA高可用架构实战 原创 2015-09-25 萧少聪 高可用架构 本文由萧少聪在高可用架构群所做的分享整理而来,转载请注明高可用架构公众号:ArchNotes。 萧少聪(花名:铁庵),广东中...

Yamazaki
2015/09/26
1K
2
MySQL共享存储主备模式利用Keepalived实现双机高可用

简单介绍 先简单说下MySQL主从复制与keepalived模式和MySQL共享存储与Keepalived模式 MySQL共享存储主备模式不同于MySQL主主复制模式,MySQL主主是利用MySQL自带的replication复制技术实现两...

HMLinux
2017/01/22
0
0
MySQL高可用性分析

版权声明:本文由易固武原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/203 来源:腾云阁 https://www.qcloud.com/community MySQL数据库是目前开源应用...

偶素浅小浅
2016/11/11
4
0
MySQL高可用在网易的最佳应用与实践

本文根据DBAplus社群第102期线上分享整理而成。 主题简介: 1、常见的MySQL高可用架构 2、分布式数据库高可用实践 3、基于keepalive的MySQL高可用改造 大家好,我是来自杭州研究院的潘威,今...

潘威
2017/05/08
0
0
Hadoop 2.0中单点故障解决方案总结

项目构建 Hadoop 1.0内核主要由两个分支组成:MapReduce和HDFS,众所周知,这两个系统的设计缺陷是单点故障,即MR的JobTracker和HDFS的NameNode两个核心服务均存在单点问题,该问题在很长时间...

jackwxh
06/29
0
0
MySQL 数据库的高可用性分析

MySQL数据库是目前开源应用最大的关系型数据库,有海量的应用将数据存储在MySQL数据库中。存储数据的安全性和可靠性是生产数据库的关注重点。本文分析了目前采用较多的保障MySQL可用性方案。...

OSC_cnhwTY
06/22
0
0
Mysql Fabric实现学习笔记

Mysql Fabric用来管理mysql服务,提供扩展性和容易使用的系统,管理mysql分片和高可用部署(当前实现了两个特性:高可用和使用数据分片的横向扩展,能单独使用或结合使用这两个特性。)。 架构...

AnthonyYau
2014/08/27
0
7
360高性能分布式存储服务--HustStore

HustStore- 高性能分布式存储服务 huststore 是一个高性能的分布式存储服务,不但提供了 10w QPS 级别的 kv 存储的功能,还提供了 hash、set 等一系列数据结构的支持,并且支持 二进制 的 kv...

HustInfra
2016/04/28
14.4K
13
heartbeat+drbd+mysql高可用架构

Heartbeat+DRBD+MySQL高可用架构方案与实施过程细节 互联网公司从初期到后期的数据库架构拓展 Heartbeat介绍 官方站点:http://linux-ha.org/wiki/Main_Page heartbeat可以资源(VIP地址及程序...

1243983186
2017/04/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

MacOS和Linux内核的区别

导读 有些人可能认为MacOS和Linux内核有相似之处,因为它们可以处理类似的命令和类似的软件。甚至有人认为苹果的MacOS是基于linux的。事实上,这两个内核的历史和特性是非常不同的。今天,我...

问题终结者
13分钟前
1
0
SpringBoot | 第八章:统一异常、数据校验处理

前言 在web应用中,请求处理时,出现异常是非常常见的。所以当应用出现各类异常时,进行异常的捕获或者二次处理(比如sql异常正常是不能外抛)是非常必要的,比如在开发对外api服务时,约定了响...

oKong
21分钟前
0
0
mysql高级

一、存储引擎 InnoDB MyISAM 比较 二、数据类型 整型 浮点数 字符串 时间和日期 三、索引 索引分类 索引的优点 索引优化 B-Tree 和 B+Tree 原理 四、查询性能优化 五、切分 垂直切分 水平切分...

丁典
42分钟前
1
0
rsync通过同步服务、系统日志、screen工具

rsync通过后台服务同步 在远程主机中建立一个rsync服务器,在服务器上配置好rsync的各种应用,然后将本机作为rsync的一个客户端连接远程的rsync服务器。 首先在A机器上建立并且配置rsync的配...

黄昏残影
今天
5
0
Spring Cloud Gateway 接口文档聚合实现

在微服务架构下,通常每个微服务都会使用Swagger来管理我们的接口文档,当微服务越来越多,接口查找管理无形中要浪费我们不少时间,毕竟懒是程序员的美德。 由于swagger2暂时不支持webflux 走...

冷冷gg
今天
115
2
流利阅读笔记31-20180720待学习

克罗地亚:输了世界杯,却赢了全世界 雪梨 2018-07-20 1.今日导读 1998 年,年轻的克罗地亚国家队在法国世界杯给全世界留下了不可磨灭的印象,格子军团一举夺得了季军。4 年后,克罗地亚折戟...

aibinxiao
今天
5
0
OSChina 周五乱弹 —— 我们是食物链的最底层

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @温家成 :分享谢安琪的单曲《姿色份子》 《姿色份子》- 谢安琪 手机党少年们想听歌,请使劲儿戳(这里) @贪吃飒:最近p2p怎么了、半个月爆了...

小小编辑
今天
877
14
Android Studio 3.0 之后打包apk出现应用未安装问题

1、废话 出现这个问题的原因,并不是只有一个,而是有多个原因,不懂的估计会被搞得一头雾水,下面我列举的是我遇到的几种问题和网友遇到的几种问题,但不一定是全部,也有可能有些莫名其妙的...

她叫我小渝
今天
0
0
前端基础

1. get请求传参长度的误区 误区:我们经常说get请求参数的大小存在限制,而post请求的参数大小是无限制的。 实际上HTTP 协议从未规定 GET/POST 的请求长度限制是多少。对get请求参数的限制是...

wenxingjun
今天
0
0
拦截SQLSERVER的SSL加密通道替换传输过程中的用户名密码实现运维审计(一)

工作准备 •一台SQLSERVER 2005/SQLSERVER 2008服务 •SQLSERVER jdbc驱动程序 •Java开发环境eclipse + jdk1.8 •java反编译工具JD-Core 反编译JDBC分析SQLSERVER客户端与服务器通信原理 SQ...

紅顏為君笑
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部