- 浏览: 293111 次
文章分类
- 全部博客 (148)
- Shell (2)
- Python (4)
- Java (31)
- Javascript (4)
- Android (7)
- SQL优化 (0)
- Linux (5)
- webOS (4)
- MySQL (18)
- memcach redis (1)
- memcach (0)
- redis (3)
- memcache (2)
- svn (1)
- UED (1)
- 网络 (1)
- virtual box (1)
- git (1)
- Gitosis (1)
- 云计算 (2)
- 12306 (1)
- google (1)
- spdy (1)
- nginx (1)
- tomcat (2)
- SSL (2)
- lucene (2)
- 空间搜索 (1)
- lzo (1)
- 数据压缩 (1)
- ios (1)
- maven (1)
- elasticsearch (1)
- scribe (1)
- flume (1)
- jni (1)
- jna (1)
- hadoop (2)
- 大数据 (1)
最新评论
-
aa80303857:
不错,学习了。互相关注一下。
Sitemesh学习笔记 -
xiaozang:
...
关于nginx的rewrite重写规则 -
coderuncle:
楼主有没有研究过cloudera flume和apache f ...
scribe,flume -
奔跑的犀牛:
...
linux下自动启动mysql -
lsn_1212:
网上装svn的资源太多了,这个挺好的,说的挺全的。
SVN Server安装部署攻略(Linux+SubVersion+Apache)
A(M)[192.168.33.11\192.168.43.11]->B(Backup)[192.168.33.13\192.168.43.13]
->C(M/S)[192.168.33.15\192.168.43.15]->s1、s2....
公用IP:192.168.33.100
本例可实现以下功能:
一、实现mysql replication
A(M)-->C(M/S)-->s1、s2、s3....
性能:降低A服务器的负载
扩展性:可扩展到20台slave服务器。
二、实现实时备份、安全可靠功能
利用drbd(号称网络RAID)将A服务器与C服务器的数据进行实时备份
如果仅A服务器down掉了,通过heartbeatB服务器则会自动切换,变成A服务器的角色.
如果仅C服务器down掉了,则需要在B服务器上,进行手动切换,变成C服务器的角色.
如果A和C服务器都down掉了,则需要改进本例,方可解决问题.(如:再增加一台backup机器)
本例需要的软件包如下:
drbd-0.7.23-1.c4.x86_64.rpm
heartbeat-2.0.7-1.c4.x86_64.rpm
heartbeat-pils-2.0.7-1.c4.x86_64.rpm
heartbeat-stonith-2.0.7-1.c4.x86_64.rpm
kernel-module-drbd-2.6.9-42.0.10.ELsmp-0.7.23-1.el4.centos.x86_64.rpm
mysql-5.0.33.tar.gz
★1.分区:
在A、C机器分出/opt分区
在B机器上分出/opt1、/opt2分区
且大小相同/opt=/opt1=/op2
★2.安装mysql并进行mysql replication设定.
[mdbrw01 ~]#tar -zxf mysql-5.0.33.tar.gz
[mdbrw01 ~]#cd mysql-5.0.33
[mdbrw01 ~]#./configure --prefix=/usr/local/mysql
--with-mysqld-ldflags=-all-static --with-mysqld-user=mysql
--with-charset=cp932 --with-pthread CFLAGS=-O3 CXXFLAGS=-O3 CXX=gcc
[mdbrw01 ~]#make && make install
[mdbrw01 ~]#/usr/local/mysql/bin/mysql -A -e "grant REPLICATION SLAVE on
*.* to [email=slaver@]slaver@"%[/email]" Identified by"slave;FLUSH
PRIVILEGES;"
[mdbrw01 ~]# /usr/local/mysql/bin/mysqladmin shutdown
[mdbrw01 ~]# mv /usr/local/mysql /opt
[mdbrw01 ~]#ln -s /opt/mysql /usr/local/mysql
replication设定比较简单,在此就不说明了.
★3.分别在A、B、C机器上安装以下软件
drbd-0.7.23-1.c4.x86_64.rpm
kernel-module-drbd-2.6.9-42.0.10.ELsmp-0.7.23-1.el4.centos.x86_64.rpm
heartbeat-pils-2.0.7-1.c4.x86_64.rpm
heartbeat-stonith-2.0.7-1.c4.x86_64.rpm
heartbeat-2.0.7-1.c4.x86_64.rpm
(请按照顺序来进行安装)
==========配置drbd===============
★4.在A服务器上
[mdbrw01 ~]#vi /etc/drbd.conf
resource r0 {
protocol C;
startup {
degr-wfc-timeout 120;
}
disk {
on-io-error detach;
}
net {
}
syncer {
rate 10M;
group 1;
al-extents 257;
}
on mdbrw01{
device /dev/drbd0;
disk /dev/sda5;
address 192.168.43.11:7788;
meta-disk internal;
}
on mdbbk01
device /dev/drbd0;
disk /dev/sda5;
address 192.168.43.13:7788;
meta-disk internal;
}
}
启动Drbd并设置为Primary
[mdbrw01 ~]# /etc/init.d/drbd start
[mdbrw01 ~]#drbdadm -- --do-what-I-say primary all
建立专用块及文件系统
[mdbrw01 ~]#mknod /dev/drbd0 b 147 0
[mdbrw01 ~]#mkfs /dev/drbd0
在B服务器上
[mdbrwbak ~]#vi /etc/drbd.conf
resource r0 {
protocol C;
startup {
degr-wfc-timeout 120;
}
disk {
on-io-error detach;
}
net {
}
syncer {
group 1;
al-extents 257;
}
on mdbrw01{
device /dev/drbd0;
disk /dev/sda5;
address 192.168.43.11:7788;
meta-disk internal;
}
on mdbbk01{
device /dev/drbd0;
disk /dev/sda5;
address 192.168.43.13:7788;
meta-disk internal;
}
}
resource r1 {
protocol C;
incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ; halt -f";
startup {
wfc-timeout 0;
degr-wfc-timeout 120;
}
disk {
on-io-error detach;
}
net {
}
syncer {
rate 4M;
group 1;
}
on mdbrw02{
device /dev/drbd1;
disk /dev/sda5;
address 192.168.43.15:7789;
meta-disk internal;
}
on mdbbk01 {
device /dev/drbd1;
disk /dev/sda6;
address 192.168.43.13:7789;
meta-disk internal;
}
}
启动Drbd
[mdbrwbak ~]# /etc/init.d/drbd start
建立专用块及文件系统
[mdbrwbak ~]#mknod /dev/drbd0 b 147 0
[mdbrwbak ~]#mknod /dev/drbd1 b 147 1
在C服务器上
[mdbrw02 ~]#vi /etc/drbd.conf
resource r0 {
protocol C;
startup {
degr-wfc-timeout 120;
}
disk {
on-io-error detach;
}
net {
}
syncer {
rate 10M;
group 1;
al-extents 257;
}
on mdbrw02{
device /dev/drbd1;
disk /dev/sda5;
address 192.168.43.15:7789;
meta-disk internal;
}
on mdbbk01{
device /dev/drbd1;
disk /dev/sda6;
address 192.168.43.13:7789;
meta-disk internal;
}
}
启动Drbd并设置为Primary
[mdbrw02 ~]# /etc/init.d/drbd start
[mdbrw02 ~]#drbdadm -- --do-what-I-say primary all
建立专用块及文件系统
[mdbrw02 ~]#mknod /dev/drbd1 b 147 1
[mdbrw02 ~]#mkfs /dev/drbd1
========配置heartbeat==========
分别在A、B服务器上创建authkeys和haresources文件
# vi /etc/ha.d/authkeys
auth 1
1 crc
#2 sha1 HI!
#3 md5 Hello!
[mdbrw01 ~]#chmod 600 /etc/ha.d/authkeys
[mdbrw01 ~]#vi /etc/ha.d/haresources
mdbrw01 IPaddr::192.168.33.100/24/eth1 mysql_umount mysql
[mdbrw01 ~]# cat /etc/ha.d/resource.d/mysql_umount
#!/bin/sh
unset LC_ALL; export LC_ALL
unset LANGUAGE; export LANGUAGE
prefix=/usr
exec_prefix=/usr
. /etc/ha.d/shellfuncs
case "$1" in
'start')
/sbin/drbdadm -- --do-what-I-say primary r0
#/sbin/drbdadm -- --do-what-I-say primary all
/bin/mount /dev/drbd0 /opt
;;
'pre-start')
;;
'post-start')
;;
'stop')
/bin/umount /opt
/sbin/drbdadm secondary r0
#/sbin/drbdadm secondary all
;;
'pre-stop')
;;
'post-stop')
;;
*)
echo "Usage: $0 { start | pre-start | post-start | stop | pre-stop | post-stop }"
;;
esac
exit 0
[mdbrw01 ~]# cat /etc/ha.d/resource.d/mysql
内容略..
[mdbrw01 ~]# cat /etc/ha.d/ha.cf
logfile /var/log/ha-log
logfacility local0
keepalive 625ms
deadtime 5
warntime 1250ms
initdead 30
udpport 699
bcast eth1 # Linux
auto_failback off
node mdbrw01
node mdbbk01
ping 192.168.33.1
respawn hacluster /usr/lib64/heartbeat/ipfail
=============启动heartbeat==========
分别在A、B服务器上
[mdbrw01 ~]#etc/init.d/heartbeat start
注意事项:
1.drbd.conf文件中每一个资源的配置需要相同.
2.在/opt mount状态下不能启动drbd
3.在drbd启动状态下添加、修改、删除drbd.conf文件中的资源,可能会导致drbd stop失败
4.A、B服务器上的ha.cf需要保持一致
发表评论
-
mysql binlog分析工具
2013-01-26 22:45 1534https://github.com/tangfl/jbinl ... -
MySQL 百万级分页优化(Mysql千万级快速分页)
2012-12-07 22:30 0以下分享一点我的经验 一般刚开始学SQL的时候,会这样写 ... -
mysql共享表空间和独立表空间
2012-12-07 22:12 0innodb表的数据结构 innodb这种引擎 ... -
InnoDB之表空间
2012-12-07 22:12 0innoDB是MySQL的重要存储引擎,为数据提供了很好 ... -
MySQL 系统架构 说明
2012-12-07 22:07 901说明:本文转自 简朝阳(MySQL ACE)的 《MyS ... -
基于InnoDB存储引擎的mysql数据库表结构详解
2012-12-07 22:05 3605前言 前一篇文章基于InnoDB存储引擎的mysql数 ... -
MySQL技术内幕:InnoDB存储引擎读书笔记(下)
2012-12-07 21:58 1358第六章、锁 锁是区别文件系统和数据库系统的一个关键 ... -
MySQL技术内幕:InnoDB存储引擎读书笔记(中)
2012-12-07 21:54 1536第四章、表 4.1 ... -
MySQL技术内幕:InnoDB存储引擎读书笔记(上)
2012-12-07 21:53 1656第一章、mysql体系结构和存储引擎 1.1、数据 ... -
由12306.cn谈谈网站性能技术
2012-10-17 16:35 96512306.cn网站挂了,被 ... -
mysql水平切分
2012-10-17 13:22 1280在大中型项目中,在 ... -
mysql主从复制(半同步方式)
2012-08-15 12:22 3038一、半同步复制原理介 ... -
淘宝开源 mysql 插件,让mysql像nosql一样使用
2012-06-29 17:28 1217http://rdc.taobao.com/team/jm/a ... -
mysql的几个主要分支
2012-06-29 17:11 1367http://www.percona.com/software ... -
mysql 添加用户,并对数据库授权
2011-12-07 11:46 1054use mysql; insert into user ... -
MySQL server has gone away 问题的解决方法
2011-04-11 11:27 10161、应用程序(比如PHP)长时间的执行批量的MYSQL语句。 ... -
DRBD 提升了 MySQL 的集群能力
2011-03-02 23:00 1025前几天 MySQL 站点上 ... -
快速/简单实现mysql数据库集群(mysql cluster)
2011-03-02 22:58 1865最近一直在研究mysql的高可用性和负载均衡技术,对于数据库/ ... -
MySQL复制实现互为主从双机热备
2011-03-02 22:55 1870A B 为两台MySQL服务器,均开启二进制日志,数据库版本 ... -
Mysql, DRBD, Heartbeat 实现数据库复制和数据库系统HA
2011-03-02 22:51 1548使用了两种技术来实现数据库之间的复制和高可用性(HA) DR ...
相关推荐
本文主要探讨了几种常见的MySQL高可用性解决方案,包括MySQL主从复制、MySQL+Heartbeat+存储、MySQL+DRBD+Heartbeat以及MySQL Cluster。 1. **MySQL+Replication** - **概述**:MySQL的异步复制允许数据从一个主...
本方案由陈明于2010年7月25日撰写,旨在探讨多种MySQL高可用性实现方法,包括MySQL复制、心跳系统结合共享存储以及DRBD技术。 I. 综述 在当今信息化社会,数据的稳定性和可访问性对于任何企业都是至关重要的。MySQL...
3. **Drbd+heartbeat+mysql replication来构建mysql的高可用性**: 这个文档可能详细介绍了如何结合DRBD、Heartbeat和MySQL复制来构建MySQL数据库的高可用性环境。MySQL复制用于数据的多节点同步,而DRBD和...
在上述高可用性方案的实践中,涉及到的几个关键点包括Mysql的安装配置、主主同步配置、Lvs和Keepalived的安装与配置、Heartbeat的配置以及DRBD的管理和维护等。每一步操作都需要按照指南仔细完成,并通过实际测试来...
另外,MySQL Replication与其他集群软件结合使用,如MMM(Multi-Master Replication Manager for MySQL)或Heartbeat+DRBD+MySQL,可以提供更高的可用性级别。DRBD(Distributed Replicated Block Device)通过底层...
【云原生MySQL高可用方案】在云原生环境中,MySQL的高可用性面临一系列挑战。传统的解决方案如MHA(MySQL High Availability)和DRBD+Heartbeat在部署时较为复杂,且通常需要HAvip(High Availability Virtual IP)...
构建具有高可用性的MySQL数据库系统,旨在减少因系统故障造成的停机时间,确保服务的稳定性和连续性。这对于希望在竞争激烈的市场环境中保持竞争力的企业尤为重要。 #### 三、现有高可用方案分析 ##### 3.1 MySQL+...
例如,在核高基项目中,采用了一种基于全局唯一性主键范围的切分策略,配合DRBD+Heartbeat技术和MySQL Replication,构建了一个高可用的分布式数据库集群。 非结构化数据,如文档、图片、音频/视频等,通常通过...
标题与描述:“MySQL分布式数据库集群高可用设计及应用”这一主题深入探讨了如何构建和维护一个高可用性的MySQL分布式数据库集群。在IT行业中,数据库的高可用性是确保业务连续性和数据安全的关键因素之一,特别是在...
《mysql管理之道:性能调优、高可用与监控》由资深mysql专家撰写,以最新的mysql版本为基础,以构建高性能mysql服务器为核心,从故障诊断、表设计、sql优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、...
为了实现MySQL的高可用性,业界有多种方法,其中包括MySQL原生复制方式、共享存储和分布式协议。 MySQL原生复制方式主要包括异步复制和半同步复制。异步复制中,主库只需将事务日志(Binlog)写入文件并通知dump...
首先,MySQL的Replication是构建高可用性基础的重要手段。通过异步复制,主库(Master)上的数据变化会被记录到二进制日志(Binary Log),然后由从库(Slave)读取并执行。然而,由于异步复制的特性,数据在主库...
MySQL性能优化是一个复杂而关键的任务,它涉及到多个层面的...综上所述,MySQL性能优化是一个综合性的工程,需要在架构设计、数据分布、读写分离、缓存策略、高可用性以及成本控制等多个方面进行综合考虑和精细调整。
7. DRBD+Heartbeat双主配置:DRBD(Distributed Replicated Block Device)结合Heartbeat心跳监测可以实现双主模式,提供高可用性。然而,在使用InnoDB时,需要注意DRBD重启时的慢速读取可能对MyISAM表造成损坏,...
- **DRBD(Distributed Replicated Block Device)**:用于创建网络化的块设备复制,结合HA软件如Heartbeat,可实现高可用性。 2. **读写分离**: - **MySQL+Proxy**:通过MySQL Proxy作为中间件,根据SQL语句...