设为首页 收藏本站
查看: 860|回复: 5

[经验分享] Mysql 数据库集群DRBD

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2013-7-31 09:36:31 | 显示全部楼层 |阅读模式

Mysql 数据库集群DRBD

<Alvin-zeng:孤独0-1>

目录


二、Mysql安装2

1、安装MYSQL和innob引擎2

3、建立Mysql用户及目录3

4、初始化数据库,注意请mysql  用户执行3

5、建立 My.cnf 配置文件3

6、启动mysql 服务5

二、DRBD安装6

1、编译DRBD-主备操作6

2、配置DRBD文件-主备操作6

3、创建DRBD逻辑设备-主备操作7

4、格式化DRBD逻辑设备-主操作7

5、主备切换-主操作7

6、主备切换-从操作7

7、DRBD常用故障处理7

三、Heatbeat安装8

1、编译glue,主备操作8

2、编译Cluster agent主备操作8

3、编译Heartbeat  主备操作9

4、配置心跳文件,主操作9

5、编写MYSQL启动脚本-主操作9

6、拷贝一些常用脚本-主操作11

7、将主的配置文件拷贝到从来,备操作11











一、 Mysql安装1、安装MYSQL和innob引擎

官方下载

http://www.innodb.com/download/innodb_plugin/innodb_plugin-1.0.6.tar.gz


#:tar –xvf /mnt/mysql-5.1.51.tar.gz–C /opt/

#: tar –xvf /mnt//innodb_plugin-1.0.6.tar.gz–C /opt/mysql-5.1.51/storage

#: cd /opt/mysql-5.1.51/storage

#:rm –rf innobase

#: mv innodb_plugin-1.0.6innobase

#:cd /opt/mysql-5.1.51/


/usr/local/webserver/mysql 路径必须跟这个一样,否则启动时候,脚本会出错,


./configure --prefix=/usr/local/webserver/mysql  

--enable-local-infile

--with-charset=gbk

--with-extra-charsets=complex

--with-server-suffix=max  

--with-libwrap=/usr  

--with-low-memory

--with-mysqlmanager

--with-big-tables

--with-ndb-test

--with-ndb-docs

--with-debug

--with-plugins=partition,innobase,myisammrg

--enable-assembler

--with-client-ldflags=-all-static  

--with-mysqld-ldflags=-all-static

--with-embedded-server

--with-ssl

--with-readline

--enable-thread-safe-client






./configure --prefix=/usr/local/webserver/mysql --enable-local-infile --with-charset=gbk --with-extra-charsets=complex --with-server-suffix=max --with-libwrap=/usr --with-low-memory --with-mysqlmanager --with-big-tables --with-ndb-test --with-ndb-docs --with-debug --with-plugins=partition,innobase,myisammrg --enable-assembler --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --with-embedded-server --with-ssl --with-readline --enable-thread-safe-client

Make && make install

3、建立Mysql用户及目录

#:groupadd mysql

#:useradd –g mysql mysql


#:mkdir /opt/data && chown -R mysql.mysql /opt/data

#:mkdir /var/run/mysqld && chown -R mysql:mysql /var/run/mysqld

#:mkdir /var/log/mysqld && chown -R mysql:mysql /var/log/mysqld


#:cp /usr/local/webserver/mysql/share/mysql/mysql.server  /etc/rc.d/init.d/mysqld

#:chmod 755 /etc/rc.d/init.d/mysqld

#:cp /usr/local/webserver/mysql/bin/mysql /usr/bin/



4、初始化数据库,注意请mysql  用户执行

#: su mysql

$:/usr/local/webserver/mysql/bin/mysql_install_db--basedir=/usr/local/webserver/mysql --datadir=/opt/data --user=mysql

$:exit


5、建立 My.cnf 配置文件

http://2999835.blog./e/u/themes/default/images/spacer.gif

#:vi /etc/my.cnf

[client]

port    = 3306

socket  = /tmp/mysql.sock


[mysqld]

character-set-server = utf8

replicate-ignore-db = mysql

replicate-ignore-db = test

replicate-ignore-db = information_schema

user    = mysql

port    = 3306

socket  = /tmp/mysql.sock

basedir = /usr/local/webserver/mysql

datadir = /opt/data

log-error = /var/log/mysqld/mysql_error.log

pid-file = /var/run/mysqld/mysql.pid

open_files_limit    = 10240

back_log = 600

max_connections = 5000

max_connect_errors = 6000

table_cache = 614

external-locking = FALSE

max_allowed_packet = 32M

sort_buffer_size = 1M

join_buffer_size = 1M

thread_cache_size = 300

#thread_concurrency = 8

query_cache_size = 512M

query_cache_limit = 2M

query_cache_min_res_unit = 2k

default-storage-engine = MyISAM

thread_stack = 192K

transaction_isolation = READ-COMMITTED

tmp_table_size = 246M

max_heap_table_size = 246M

long_query_time = 3

log-slave-updates

log-bin = /var/log/mysqld/binlog

binlog_cache_size = 4M

binlog_format = MIXED

max_binlog_cache_size = 8M

max_binlog_size = 1G

relay-log-index = /var/log/mysqld/relaylog

relay-log-info-file = /var/log/mysqld/relaylog

relay-log = /var/log/mysqld/relaylog

expire_logs_days = 30

key_buffer_size = 256M

read_buffer_size = 1M

read_rnd_buffer_size = 16M

bulk_insert_buffer_size = 64M

myisam_sort_buffer_size = 128M

myisam_max_sort_file_size = 10G

myisam_repair_threads = 1

myisam_recover


interactive_timeout = 120

wait_timeout = 120


skip-name-resolve

#master-connect-retry = 10

slave-skip-errors = 1032,1062,126,1114,1146,1048,1396


#master-host     =   192.168.1.2

#master-user     =   username

#master-password =   password

#master-port     =  3306


server-id = 1


innodb_additional_mem_pool_size = 16M

innodb_buffer_pool_size = 512M

innodb_data_file_path = ibdata1:256M:autoextend

innodb_file_io_threads = 4

innodb_thread_concurrency = 8

innodb_flush_log_at_trx_commit = 2

innodb_log_buffer_size = 16M

innodb_log_file_size = 128M

innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 90

innodb_lock_wait_timeout = 120

innodb_file_per_table = 0


[mysqldump]

quick

max_allowed_packet = 32M


6、启动mysql 服务

# /etc/init.d/mysql5 start

Starting MySQL.....                                        [  OK  ]


创建一个具有root权限的用户(admin)和密码(12345678):、

#:mysql

Mysql-> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' IDENTIFIED BY '12345678';
Mysql-> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'127.0.0.1' IDENTIFIED BY '12345678';



二、 DRBD安装

下载http://oss.linbit.com/drbd/drbd-8.3.8.1.tar.gz

1、编译DRBD-主备操作

#: tar -xvf drbd-8.3.8.1.tar.gz -C /opt/

#: cd drbd-8.3.8.1

#:./configure --prefix=/ --with-km

#: make && make install

#: insmod drbd/drbd.ko

#: modprobe drbd   这两个命令,任选一个,放到/etc/rc.d/rc.local

    #:cat /proc/drbd


2、配置DRBD文件-主备操作

#: vi /etc/drbd.d/dbdata.res

resource dbdata {

on SQL-1 {                    #主机名

   device    /dev/drbd1;        #:drbd逻辑设备块

   disk      /dev/hdb1;         #:物理设备块

   address   192.168.1.236:7789;  #:IP地址与端口

   meta-disk internal;

}

on SQL-2 {                    #主机名

   device    /dev/drbd1;        #:drbd逻辑设备块

   disk      /dev/hdb1;         #:物理设备块

   address   192.168.1.237:7789;  #:IP地址与端口

   meta-disk internal;

}

}


3、创建DRBD逻辑设备-主备操作

  #: drbdadm create-md all

#: /etc/init.d/drbd restart

#: ls –l /dev/drbd1

#: cat /proc/drbd



4、格式化DRBD逻辑设备-主操作

   #:drbdadm -- --overwrite-data-of-peer primary all

#:mkfs.ext3 /dev/drbd1

#:mount /dev/drbd1 /opt/data


5、主备切换-主操作

#:cd /opt/data

#: touch 1.txt

#:umount /opt/data

#:drbdadm secondary all   设置为从服务器

6、主备切换-从操作

#:mount /dev/drbd1 /opt/data

#:drbdadm primary all     设置为主服务器

#: cd /opt/data && ls


7、DRBD常用故障处理

节点连接:

#:drbdadm connect|disconnect all


DRBD脑裂后的处理,

两个节点间数据不同步,主从关系失效,需要按下面的步骤修复

A:在从节点如下操作:

#drbdadm secondary dbdata

#drbdadm -- --discard-my-data connect dbdata



B: 在主节点上如下操作

通过cat /proc/drbd查看状态,如果不是WFConnection状态,需要再手动连接:

#drbdadm connect dbdata




三、 Heatbeat安装1、编译glue,主备操作

官方网站下载

http://linux-ha.org/w/index.php?title=Download&setlang=zh

#:tar –xvf Reusable-Cluster-Components-glue-1.0.6.tar.bz2–C /opt/

#:cd /opt/ Reusable-Cluster-Components-glue-1.0.6

#: ./autogen.sh

打开lib/stonith/main.c,将version相关的注释掉,否则编译不过,有点诡异。
1、找到其64行,将其注释掉。
2、找到其76到81行全部注释掉。
3、找到其390行,将其注释

#: ./configure

#: groupadd haclient

#: useradd -g haclient hacluster

#: make && make install





2、编译Cluster agent主备操作

官方网站下载

http://linux-ha.org/w/index.php?title=Download&setlang=zh


#:tar –xvf Cluster-Resource-Agents-agents-1.0.3.tar.bz2–C /opt/

#:cd Cluster-Resource-Agents-agents-1.0.3

#./autogen.sh
#./configure
#make && make install

3、编译Heartbeat  主备操作

官方网站下载

http://linux-ha.org/w/index.php?title=Download&setlang=zh

#./bootstrap
#./ConfigureMe configure
#make && make install


4、配置心跳文件,主操作

# vi /etc/ha.d/ha.cf          #:此文件默认是没有的,现在新编辑一个

logfacility local0
keepalive 500ms
deadtime 10
warntime 5
initdead 60
mcast eth0 225.0.0.1 694 1 0
auto_failback off
node SQL-1
node SQL-2


#:vi /etc/ha.d/haresources   #:此文件默认是没有的,现在新编辑一个

SQL-1 drbddisk Filesystem::/dev/drbd1::/data/dbdata::ext3 IPaddr::192.168.1.238/24/eth0 mysql


生成/etc/ha.d/authkeys ,:此文件默认是没有的,现在新生成一个

#( echo -ne "auth 1\n1 sha1 "; \
dd if=/dev/urandom bs=512 count=1 | openssl md5 ) \
> /etc/ha.d/authkeys

#:chmod 600 /etc/ha.d/authkeys


5、编写MYSQL启动脚本-主操作

#:vi /etc/ha.d/resource.d/mysql


#!/bin/bash

#Totle:mysql

#Description:start mysql service

#system:Use Linux

#Company:Fashion's friend

#Author:ZengYong

#Version:1.0

#DateTime:2010-10-10

########################################

. /etc/ha.d/shellfuncs


#======================================

#:Function-->Mysql_Start

#=======================================


Mysql_Start()

{

case "$1" in

   start)

        SQLDIR=`/etc/init.d/mysqld start`

        RET=$?

        ha_log $SQLDIR

        exit $RET

        ;;

    stop)

        SQLDIR=`/etc/init.d/mysqld stop`

        RET=$?

        ha_log $SQLDIR

        exit $RET

        ;;

    status)

        if [[ `ps -ef | grep '[m]ysqld'` > 1 ]] ; then

            tput setf 2

            echo "running"

            tput sgr0

        else

            tput setf 4

            echo "stopped"

            tput sgr0

        fi

        ;;

    *)

        echo "Usage: mysql {start|stop|status}"

        return 1

        ;;

esac

}





#======================================

#:Function-->Main

#=======================================

Main()

{


Mysql_Start $1

     if [ $? -eq 1 ]

     then

      exit 1

     fi

}

#:主函数

Main $1


6、拷贝一些常用脚本-主操作

#:cd /opt/Heartbeat-3-0-STABLE-3.0.3

#:cp heartbeat/lib/hb_standbyhb_takeover/usr/lib/heartbeat

#: cp /usr/etc/ha.d/shellfuncs /etc/ha.d/

#: cp -rf /etc/ha.d/* /usr/etc/ha.d/

7、将主的配置文件拷贝到从来,备操作

http://2999835.blog./e/u/themes/default/images/spacer.gif

#: scp –r 192.168.1.236:/etc/ha.d/   /mnt/

#:rm –rf /etc/ha.d/

#:cp –r /mnt/ha.d/   /etc/

#:cp –rf /etc/ha.d/*  /usr/etc/


1. 设置为自启动:
chkconfig mysqld off
chkconfig --add heartbeat
chkconfig heartbeat on

2. 手动切换两个节点、主从增加host 解析

vi /etc/hosts                  主

192.168.1.237  SQL-2

vi /etc/hosts

192.168.1.236  SQL-1


/etc/init.d/heartbeat  start
/usr/lib/heartbeat/hb_takeover 将当前节点设为主节点
/usr/lib/heartbeat/hb_standby 将当前节点设为从节点




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-7915-1-1.html 上篇帖子: mysql优化--巧用rand(),with rollup,help 下篇帖子: Mysql_cluster 部署(精华版) 数据库

尚未签到

发表于 2013-8-10 11:01:49 | 显示全部楼层
关羽五绺长髯,风度翩翩,手提青龙偃月刀,江湖人送绰号——刀郎。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-8-21 15:58:18 | 显示全部楼层
爱她,就请为她做无痛人流手术!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-9-5 19:34:49 | 显示全部楼层
穿别人的鞋,走自己的路,让他们找去吧。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-11-1 09:40:27 | 显示全部楼层
好好 学习了 确实不错

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-23 08:13:09 | 显示全部楼层
用力的爱过,没心没肺的笑过,被狠狠的伤害过,撕心裂肺的哭过,最后不过是一笑而过

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表