搜索
首页数据库mysql教程CoroSync Drbd MySQL 实现MySQL的高可用集群_MySQL

Mysql集群

 Corosync DRBD MySQL构建高可用MySQL集群

节点规划:

node1.huhu.com172.16.100.103

node2.huhu.com172.16.100.104

资源名称规划

资源名称:可以是除了空白字符外的任意ACSII码字符

DRBD设备:在双节点上,此DRBD设备文件,一般为/dev/drbdN,主设备号147

磁盘:在双方节点上,各自提供存储设备

网络配置:双方数据同步所使用的网络属性

DRBD从Linux内核2.6.33起已经整合进内核

1.配置双击互信(基于秘钥认证),HOSTS文件,时间同步

1)所有节点的主机名称和对应的IP地址解析服务可以正常工作,且每个节点的主机名称需要跟"uname -n“命令的结果保持一致;因此,需要保证两个节点上的/etc/hosts文件均为下面的内容:

172.16.100.103node1.huhu.com node1

172.16.100.104node2.huhu.com node2

Node1:

#sed -i 's@/(HOSTNAME=/).*@/1node1.huhu.com@g' /etc/sysconfig/network

#hostname node1.huhu.com

Node2:

#sed -i 's@/(HOSTNAME=/).*@/1node2.huhu.com@g' /etc/sysconfig/network

#hostname node2.huhu.com

2)设定两个节点可以基于密钥进行ssh通信,这可以通过类似如下的命令实现:

#yum install openssh-clients

Node1:

#ssh-keygen -t rsa

#ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2

Node2:

#ssh-keygen -t rsa

#ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1

配置时间同步:

*/5* * * * root /usr/sbin/ntpdate ntp.api.bz & > /dev/null

2.创建和配置DRBD

Node1上执行:

#rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm

#ssh node2 'rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm'

#yum update -y

#ssh node2 'yum update -y'

#yum install drbd84-utils kmod-drbd84 -y

#ssh node2 'yum install drbd84-utils kmod-drbd84 -y'

加载模块到内核:

#/sbin/modprobe drbd

#ssh node2 '/sbin/modprobe drbd'

DRBD的配置文件:

/etc/drbd.conf

/etc/drbd.d/global_common.conf

/etc/drbd.d/resource.d/

#yum -y install parted

#ssh node2 'yum -y install parted'

#fdisk /dev/sdb

n新建分区

p主分区

1分区号,两车回车按照默认大小选择

wq保存退出

#partprobe /dev/sdb1

资源规划:

资源名称:mydrbd

DRBD设备:/dev/drbd0

磁盘:/dev/sdb1

网络配置:100M

#cat /etc/drbd.d/global_common.conf | grep -v "#"

global{

usage-countyes;

}

common{

handlers{

pri-on-incon-degr"/usr/lib/drbd/notify-pri-on-incon-degr.sh;/usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ;reboot -f";

pri-lost-after-sb"/usr/lib/drbd/notify-pri-lost-after-sb.sh;/usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ;reboot -f";

local-io-error"/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh;echo o > /proc/sysrq-trigger ; halt -f";

}

startup{

}

options{

}

disk{

on-io-errordetach;

}

net{

cram-hmac-alg "sha1";

shared-secret "1q2w3e4r5t6y";

}

syncer{

rate 200M;

}

}

#cat mydrbd.res

resourcemydrbd {

device/dev/drbd0;

disk/dev/sdb1;

meta-diskinternal;

onnode1.huhu.com {

address172.16.100.103:7789;

}

onnode1.huhu.com {

address172.16.100.104:7789;

}

}

复制配置文件到node2节点

scp-r /etc/drbd.* node2:/etc/

在两个节点上,初始化已定义的资源,并启动服务

#drbdadm create-md mydrbd

#ssh node2 'drbdadm create-md mydrbd'

#/etc/init.d/drbd start

#ssh node2 '/etc/init.d/drbd start'

查看DRBD设备的状态:

#cat /proc/drbd

version:8.4.4 (api:1/proto:86-101)

GIT-hash:599f286440bd633d15d5ff985204aff4bccffadd build by phil@Build64R6, 2013-10-1415:33:06

0:cs:Connected ro:Secondary/Secondaryds:Inconsistent/Inconsistent C r-----

ns:0nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:2096348

目前两个节点都处于secondary状态,手动让其node1成为主节点:

#drbdadm -- --overwrite-data-of-peer primary mydrbd

#cat /proc/drbd

version:8.4.4 (api:1/proto:86-101)

GIT-hash:599f286440bd633d15d5ff985204aff4bccffadd build by phil@Build64R6, 2013-10-1415:33:06

0:cs:Connected ro:Primary/Secondaryds:UpToDate/UpToDateC r-----

ns:2096348nr:0 dw:0 dr:2097012 al:0 bm:128 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

在primary节点上进行格式化drbd分区然后挂载

#mke2fs -j /dev/drbd0

#mkdir /mydata

#mount /dev/drbd0 /mydata/

#cp /etc/inittab /mydata/

#ls -lh /mydata/

total20K

-rw-r--r--.1 root root 884 Jul 8 17:24 inittab

drwx------.2 root root 16K Jul 8 17:23 lost found

到此drbd分区已经可以正常使用了

DRBD分区的主备切换

primary节点上执行:

#umount /mydata/

# drbdadm secondary mydrbd

#drbd-overview

0:mydrbd/0ConnectedSecondary/SecondaryUpToDate/UpToDateC r-----

secondary上执行

#drbd-overview确保两者的状态都有secondary状态

#drbdadm primary mydrbd

#mkdir -p /mydata

# mount /dev/drbd0 /mydata/

#ls -lh /mydata/

total20K

-rw-r--r--.1 root root 884 Jul 8 17:24 inittab

drwx------.2 root root 16K Jul 8 17:23 lost found

#drbd-overview

0:mydrbd/0ConnectedPrimary/SecondaryUpToDate/UpToDate Cr----- /mydata ext3 2.0G 36M 1.9G 2%

状态已经改变,primary /secondary

3.配置coresync服务

各个节点上停止掉drbd服务,并且关闭开机启动

#/etc/init.d/drbd stop

#ssh node2 '/etc/init.d/drbd stop'

#chkconfig drbd off

#ssh node2 'chkconfig drbd off'

#chkconfig --list | grep drbd

#ssh node2 'chkconfig --list | grep drbd'

drbd0:off 1:off 2:off 3:off 4:off 5:off 6:off

安装corosync

#yum install libibverbs librdmacm lm_sensors libtool-ltdl openhpi-libs openhpiperl-TimeDate

#yum install corosync pacemaker

#ssh node2 '# yum install libibverbs librdmacm lm_sensors libtool-ltdlopenhpi-libs openhpi perl-TimeDate'

wgethttp://ftp5.gwdg.de/pub/opensuse/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-6/x86_64/crmsh-2.1-1.1.x86_64.rpm&& wgethttp://ftp5.gwdg.de/pub/opensuse/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-6/x86_64/pssh-2.3.1-4.1.x86_64.rpm

#ssh node2 'wget http://ftp5.gwdg.de/pub/opensuse/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-6/x86_64/crmsh-2.1-1.1.x86_64.rpm&& wgethttp://ftp5.gwdg.de/pub/opensuse/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-6/x86_64/pssh-2.3.1-4.1.x86_64.rpm'

yum--nogpgcheck localinstall crmsh-2.1-1.1.x86_64.rpm pssh-2.3.1-4.1.x86_64.rpm

如果安装失败,请添加以下源

#vim /etc/yum.repos.d/ha-clustering.repo

[haclustering]

name=HAClustering

baseurl=http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-6/

enabled=1

gpgcheck=0

#yum --nogpgcheck localinstall crmsh-2.1-1.1.x86_64.rpmpssh-2.3.1-4.1.x86_64.rpm

node2上同样执行以上

配置corosync

#cd /etc/corosync/

#cp corosync.conf.example corosync.conf

#cat corosync.conf | grep -v "^#" | sed -e'/^$/d'

compatibility: whitetank

totem {

version: 2

secauth: on

threads: 2

interface {

ringnumber: 0

bindnetaddr: 172.16.100.0

mcastaddr: 226.94.8.9

mcastport: 5405

ttl: 1

}

}

logging {

fileline: off

to_stderr: no

to_logfile: yes

to_syslog: no

logfile: /var/log/cluster/corosync.log

debug: off

timestamp: on

logger_subsys {

subsys: AMF

debug: off

}

}

service {

ver: 0

name: pacemaker

# use_mgmtd: yes

}

aisexec {

user: root

group: root

}

amf {

mode: disabled

}

生成秘钥

#corosync-keygen

#scp -p authkey corosync.conf node2:/etc/corosync/

创建日志文件目录

#mkdir -p /var/log/cluster/ -pv

# ssh node2 'mkdir -p /var/log/cluster/ -pv'

启动corosync服务

#service corosync start

#ssh node2 'service corosync start'

检查corosync引擎是否已经启动

#grep -e "Corosync Cluster Engine" -e "configuration file"/var/log/cluster/corosync.log

Jul09 10:28:14 corosync [MAIN ] Corosync Cluster Engine ('1.4.1'): started andready to provide service.

Jul09 10:28:14 corosync [MAIN ]Successfullyreadmain configuration file '/etc/corosync/corosync.conf'.

查看节点成员之间通信是否正常

#grep TOTEM /var/log/cluster/corosync.log

Jul09 10:28:14 corosync [TOTEM ] Initializing transport (UDP/IP Multicast).

Jul09 10:28:14 corosync [TOTEM ] Initializing transmit/receive security:libtomcrypt SOBER128/SHA1HMAC (mode 0).

Jul09 10:28:14 corosync [TOTEM ]The network interface[172.16.100.103] is now up.

Jul09 10:28:14 corosync [TOTEM ] A processor joined or left the membership and anew membership was formed.

Jul09 10:28:29 corosync [TOTEM ] A processor joined or left the membership and anew membership was formed.

检查pacemaker启动是否正常

#grep pcmk_startup /var/log/cluster/corosync.log

Jul09 10:28:14 corosync [pcmk ] info: pcmk_startup: CRM: Initialized

Jul09 10:28:14 corosync [pcmk ] Logging: Initialized pcmk_startup

7 月 09 月 10:28:14 corosync [pcmk ] 信息:pcmk_startup:最大核心文件大小为:18446744073709551615

7 月 09 10:28:14 corosync [pcmk ] 信息:pcmk_startup:服务:9

Jul09 10:28:14 corosync [pcmk ] info: pcmk_startup: 本地主机名: node1.huhu.com

查看错误信息

#grep ERROR /var/log/cluster/ corosync.log | grep -v unpack_resources

Jul09 10:28:14 corosync [pcmk ] 错误:process_ais_conf:您已使用 Corosync 的 Pacemaker 插件配置了 acluster。此环境不支持该插件,很快就会被删除。

Jul09 10:28:14 corosync [pcmk ] 错误:process_ais_conf:请参阅“从头开始的集群”的第 8 章 (http://www .clusterlabs.org/doc)了解有关使用 Pacemaker 与 CMAN 的详细信息

Jul09 10:28:35 [1373] node1.huhu.com pengine: 注意:process_pe_message:PE 处理期间发现配置错误。请运行“crm_verify-L”来识别问题。

注意:这里因为没有使用stonith设备,因此错误可以忽略

#crm status

Lastupdated: Wed Jul 9 2014 年 10:49:53

最后更改:2014 年 7 月 9 日星期三 10:19:07,通过 node1.huhu.com 上的 crmd

Stack:classic openais(带插件)

CurrentDC:node1.huhu.com - 具有法定人数的分区

版本:1.1.10-14.el6_5.3-368c726

配置了2个节点,2个预期投票

0资源已配置

在线:[node1.huhu.com node2.huhu.com]

以上说明corosync配置启动正常。

关闭stonith设备,并验证提交

crm(live)#configure

crm(live)configure#property stonith-enabled=false

crm(live)configure#verify

crm(live) configure#commit

关闭不具备法定票数的时候,不能关闭集群服务

crm(live)configure#property no-quorum-policy=ignore

crm(live )configure#verify

crm(live)configure#commit

配置资源粘性,更倾向于当前节点

crm(live)configure#rsc_defaults resources-stickiness=100

crm(live)configure#verify

crm(live)configure#commit

查看当前的配置

crm(live)configure#show

nodenode1.huhu.com

nodenode2.huhu.com

propertycib-bootstrap-options:/

dc-version=1.1.10-14。 el6_5.3-368c726/

cluster-infrastruct="classicopenais (带插件)" /

expected-quorum-votes=2/

stonith-enabled=false/

no-quorum-policy=ignore

rsc_defaultsrsc-options: /

resource-stickiness=100

crm(live)configure#

查看drbd的资源代理

crm(live)configure#cd ..

crm(live)#ra

crm(live)ra#providers drbd

linbit

注意:这里只有linbit没有beartbeat,corosync1.4以前的版本有heartbeat。

查看原数据

crm(live)ra#元 ocf:linbit:drbd

定义资源:

crm(live)configure#primitive mysql_drbd ocf:linbit:drbd paramsdrbd_resource=mydrbd op start timeout=240 op stop timeout=100 op monitorrole=主设备间隔=50s 超时=30s 操作监控角色=从设备间隔=60s 超时=30s

定义集群资源:

crm(live)configure#master MS_mysql_drbd mysql_drbd metamaster-max="1" master-node-max=“1”clone-max=“2”clone-node-max=“1”notify=“true”

crm(live)configure#显示 mysql_drbd

primitivemysql_drbd ocf:linbit:drbd /

paramsdrbd_resource=mydrbd /

opstart 超时=240 间隔=0 /

opstop 超时=100 间隔=0 /

opmonitor 角色=主控间隔=50s 超时=30s /

opmonitor 角色=从属间隔=60s 超时=30s

crm(live)configure#show MS_mysql_drbd

msMS_mysql_drbd mysql_drbd /

metamaster-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true

crm(live)configure#verify

crm(live)configure#commit

crm(live)configure#cd

crm(live)#status

最后更新:2014年7月9日星期三11:54:30

最后更改:2014年7月9日星期三11:54:17,通过node1.huhu.com上的cibadmin

Stack:classic openais (带插件)

CurrentDC:node2.huhu.com - 带仲裁的分区

版本:1.1.10-14.el6_5.3-368c726

已配置 2 个节点,预计 2 个投票

已配置2个资源

上线:[node1.huhu.com node2.huhu.com]

主/从集:MS_mysql_drbd [mysql_drbd]

主站:[node1.huhu.com]

从站:[node2.huhu.com]

crm(live)#

主从资源已经完成定义

[root@node1corosync]# drbd-overview

0:mydrbd/0Connected Primary/Secondary UpToDate/UpToDate C r-----

[root@node1corosync]#

此时当前节点已经成为主资源了

手动做一次主从切换:

#crm节点待机

#crm状态

最后更新:2014年7月9日星期三12:01:44

最后更改:2014年7月9日星期三12:01:29,通过node1.huhu.com上的crm_attribute

Stack:classic openais(带有插件) )

当前DC:node2.huhu.com - 具有法定人数的分区

版本:1.1.10-14.el6_5.3-368c726

已配置2个节点,2个预期投票

已配置2个资源

Nodenode1.huhu.com:备用

Online:[ node2.huhu.com ]

Master/SlaveSet: MS_mysql_drbd [mysql_drbd]

Masters:[ node2.huhu.com ]

Stopped:[ node1.huhu.com ]

#crm node online

#crm status

Lastupdated: Wed Jul 9 12:02:46 2014

Lastchange: Wed Jul 9 12:02:43 2014 via crm_attribute on node1.huhu.com

Stack:classic openais (with plugin)

CurrentDC: node2.huhu.com - partition with quorum

Version:1.1.10-14.el6_5.3-368c726

2Nodes configured, 2 expected votes

2Resources configured

Online:[ node1.huhu.com node2.huhu.com ]

Master/SlaveSet: MS_mysql_drbd [mysql_drbd]

Masters:[ node2.huhu.com ]

Slaves:[ node1.huhu.com ]

#drbd-overview

0:mydrbd/0Connected Secondary/Primary UpToDate/UpToDate C r-----

[root@node1corosync]#

当前节点就切换为从节点了

此时保证了资源可以主从切换,但是文件系统是没有挂载

因此必须定义文件系统

crm(live)configure#primitive mystore ocf:heartbeat:Filesystem paramsdevice=/dev/drbd0 directory=/mydata fstype=ext3 op start timeout=60 op stoptimeout=60

crm(live)configure#verify

注意:这里千万不要提交,因为必须保证文件系统跟主节点在一起,定义排列约束

crm(live)configure#colocation mystore_with_MS_mysql_drbd inf: mystoreMS_mysql_drbd:Master

定义存储资源必须和资源的主节点在一起

crm(live)configure#order mystore_after_MS_mysql_drbd mandatory:MS_mysql_drbd:promote mystore:start

定义存储资源必须在主节点启动后进行挂载

crm(live)configure#verify

crm(live)configure#commit

crm(live)configure#cd ..

crm(live)#status

Lastupdated: Wed Jul 9 12:25:25 2014

Lastchange: Wed Jul 9 12:22:30 2014 via cibadmin on node1.huhu.com

Stack:classic openais (with plugin)

CurrentDC: node2.huhu.com - partition with quorum

Version:1.1.10-14.el6_5.3-368c726

2Nodes configured, 2 expected votes

3Resources configured

Online:[ node1.huhu.com node2.huhu.com ]

Master/SlaveSet: MS_mysql_drbd [mysql_drbd]

Masters:[ node1.huhu.com ]

Slaves:[ node2.huhu.com ]

mystore(ocf::heartbeat:Filesystem): Started node1.huhu.com

crm(live)#

可以看到Master在node1上,mystore就启动在node1上

[root@node1~]# ls -lh /mydata/

total20K

-rw-r--r--.1 root root 884 Jul 8 17:24 inittab

drwx------2 root root 16K Jul 8 17:23 lost found

[root@node1~]#

手动模拟一次切换

[root@node1corosync]# crm node standby

[root@node1corosync]# crm status

Lastupdated: Wed Jul 9 12:28:55 2014

Lastchange: Wed Jul 9 12:28:49 2014 via crm_attribute on node1.huhu.com

Stack:classic openais (with plugin)

CurrentDC: node2.huhu.com - partition with quorum

Version:1.1.10-14.el6_5.3-368c726

2Nodes configured, 2 expected votes

3Resources configured

Nodenode1.huhu.com: standby

Online:[ node2.huhu.com ]

Master/SlaveSet: MS_mysql_drbd [mysql_drbd]

Masters:[ node2.huhu.com ]

Stopped:[ node1.huhu.com ]

mystore(ocf::heartbeat:Filesystem): Started node2.huhu.com

[root@node1corosync]#

[root@node2~]# ls -lh /mydata/

total20K

-rw-r--r--.1 root root 884 Jul 8 17:24 inittab

drwx------2 root root 16K Jul 8 17:23 lost found

Youhave new mail in /var/spool/mail/root

[root@node2~]#

这样就切换到node2节点上。

4.配置MySQL结合DRBD和corosync

分别在node1节点上创建MySQL用户和组

#groupadd -g 3306 mysql

#useradd -u 3306 -g mysql -s /sbin/nologin -M mysql

#id mysql

uid=3306(mysql)gid=3306(mysql) groups=3306(mysql)

#ssh node2 'groupadd -g 3306 mysql'

#ssh node2 'useradd -u 3306 -g mysql -s /sbin/nologin -M mysql'

#wgethttp://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.38-linux2.6-x86_64.tar.gz

#tar zxvf mysql-5.5.38-linux2.6-x86_64.tar.gz -C /usr/local/

#cd /usr/local/

#ln -s mysql-5.5.38-linux2.6-x86_64/ mysql

#cd mysql

#chown root:mysql -R .

#cp support-files/my-huge.cnf /etc/my.cnf

#cp support-files/mysql.server /etc/init.d/mysqld

#[ -x /etc/init.d/mysqld ] && echo "ok" || echo "NO"

确保当前在主节点上操作

#drbd-overview

0:mydrbd/0ConnectedPrimary/SecondaryUpToDate/UpToDate Cr----- /mydata ext3 2.0G 36M 1.9G 2%

#mkdir -p /mydata/data

#chown -R mysql:mysql /mydata/data/

#scripts/mysql_install_db --user=mysql--datadir=/mydata/data

vim/etc/my.cnf

datadir=/mydata/data

#chkconfig --add mysqld

#chkconfig mysqld off

#service mysqld start

确保启动OK

#/usr/local/mysql/bin/mysql -uroot -e "CREATE DATABASE mydb"

[root@node1mysql]# /usr/local/mysql/bin/mysql -uroot -e "SHOW DATABASES"

--------------------

|数据库 |

--------------------

|information_schema |

|mydb|

|mysql |

|性能模式 |

|测试 |

----------------- ---

#service mysqld stop

#chkconfig --list | grep 3:关闭| grep mysql

mysqld0:off 1:off 2:off 3:off 4:off 5:off 6:off

[root@node1mysql]#

将存储资源切换到node2上,在node2MySQL配置好

#crm节点备用

[root@node1mysql]# crm status

Lastupdated: Wed Jul 9 14:45:36 2014

最后更改:2014 年 7 月 9 日星期三 14:45:29,通过 node1.huhu.com 上的 crm_attribute

Stack:classic openais(带插件)

CurrentDC:node2.huhu .com - 具有法定人数的分区

版本:1.1.10-14.el6_5.3-368c726

配置了2个节点,2个预期投票

3个资源配置

Nodenode1.huhu.com:备用

在线:[node2.huhu.com]

主/从集:MS_mysql_drbd [mysql_drbd]

主:[node2.huhu。 com ]

已停止:[node1.huhu.com]

mystore(ocf::heartbeat:Filesystem):已启动node2.huhu.com

[root@node1mysql] # crm 节点在线

[root@node1mysql]# crm 状态

最后更新:2014 年 7 月 9 日星期三 14:45:52

最后更改:7 月 9 日星期三 14:45: 49 2014,通过 node1.huhu.com 上的 crm_attribute

Stack:经典 openais(带插件)

CurrentDC:node2.huhu.com - 带仲裁的分区

版本:1.1 .10-14.el6_5.3-368c726

已配置2个节点,2个预期投票

3个资源配置

上线:[node1.huhu.com node2.huhu.com ]

主/从集:MS_mysql_drbd [mysql_drbd]

主站:[node2.huhu.com]

从站:[node1.huhu.com]

mystore (ocf::heartbeat:Filesystem): 已启动node2.huhu.com

[root@node1mysql]#

# scp /root/mysql-5.5.38-linux2.6-x86_64 .tar.gz node2:/root/

# scp /etc/my.cnf node2:/etc/my.cnf

# scp /etc/init.d/mysqld node2:/ etc/init.d/mysqld

在node2上安装MySQL

#tar zxvf mysql-5.5.38-linux2.6-x86_64.tar.gz -C /usr/local/

#cd /usr/local/

#ln -s mysql-5.5.38-linux2.6-x86_64/ mysql

#cd mysql

#chown root:mysql -R .

注意:千万不要手动创建/mydata/data,否则会导致文件损坏

缺少相关库文件# yum install libaio

#service mysqld start

#/usr/local/mysql/bin/mysql -uroot -e "显示数据库"

-------- ------------

|数据库 |

--------------------

|信息架构 |

|mydb|

|mysql |

|性能_架构 |

|测试 |

-- ------------------

[root@node2mydata]#

#service mysqld stop

#chkconfig mysqld off

配置MySQL加入集群资源

crm(live)#configure

crm(live)configure#primitive mysqld lsb:mysqld

crm(live) configure#verify

crm(live)configure#colocation mysqld_with_mystore inf: mysqld mystore

crm(live)configure#show xml

MySQL服务一定是跟MySQL存储资源在一起

crm(live)configure#order mysqld_after_mystore 强制: mystore mysqld

crm(live)configure#verify

MySQL 服务一定是在 MySQ 存储转移之后的,因此定义了顺序约束

crm(live)#status

最后更新:2014 年 7 月 9 日星期三 16:18:27

最后更改:2014 年 7 月 9 日星期三 16:18:16 通过 node2.huhu.com 上的 cibadmin

Stack:classic openais(带插件)

CurrentDC:node2.huhu.com - 具有法定人数的分区

版本:1.1.10-14.el6_5.3-368c726

配置了2个节点,预计2票

4个资源已配置

在线:[node1.huhu.com node2.huhu.com]

主/从集:MS_mysql_drbd [mysql_drbd]

主站:[node2.huhu.com]

从站:[node1.huhu.com]

mystore(ocf::heartbeat:Filesystem):已启动node2.huhu.com

mysqld (lsb:mysqld): 已启动node2.huhu.com

crm(live)#

相应登录node2节点

#/usr/local/mysql /bin/mysql -uroot -e "显示数据库"

--------------------

|数据库 |

--------------------

|information_schema |

| mydb|

|mysql |

|performance_schema |

|测试 |

------------------ -----

#/usr/local/mysql/bin/mysql -uroot -e "删除数据库 mydb"

#/usr/local/mysql/bin/mysql -uroot -e "CREATE DATABASE testdb"

这里再次进行主从节切换

#crm nodestandby

#crm status

Masters:[node1. huhu.com ]

已停止:[ node2.huhu.com ]

mystore(ocf::heartbeat:Filesystem):已启动 node1.huhu.com

mysqld(lsb :mysqld): 已启动node1.huhu.com

#crm节点上线

主/从集:MS_mysql_drbd [mysql_drbd]

主站:[node1.huhu.com]

奴隶:[node2.huhu.com]

mystore(ocf::heartbeat:Filesystem):已启动node1.huhu.com

mysqld(lsb:mysqld):已启动node1.huhu.com

在node1节点上

#/usr/local/mysql/bin/mysql -uroot -e "SHOW DATABASES"

---- ----------------

|数据库 |

--------------------

|information_schema |

|mysql |

|性能架构 |

|测试 |

|testdb|

----------------- ---

testdb正常显示

最后给MySQL定义了一个虚拟IP资源

crm(live)configure#primitive myip ocf:heartbeat:IPaddr paramsip=172.16.100.119 nic=eth0 cidr_netmask=24

crm(live)configure#verify

crm(live)configure#colocation myip_with_MS_mysql_drbd inf:MS_mysql_drbd:Master myip

crm(live)configure #验证

crm(live)configure#show xml

crm(live)configure#commit

crm(live)configure#cd ..

crm(live)#status

最后更新:2014 年 7 月 9 日星期三 16:46:27

最后更改:2014 年 7 月 9 日星期三 16:46:20 通过 node1.huhu.com 上的 cibadmin

Stack:classic openais (带插件)

CurrentDC:node2.huhu.com - 带仲裁的分区

版本:1.1.10-14.el6_5.3-368c726

已配置2个节点,2个预期投票

已配置5个资源

上线:[node1.huhu.com node2.huhu.com]

主/从集:MS_mysql_drbd [ mysql_drbd]

主站:[node1.huhu.com]

从站:[node2.huhu.com]

mystore(ocf::heartbeat:Filesystem):已启动node1 .huhu.com

mysqld (lsb:mysqld): 已启动node1.huhu.com

myip (ocf::heartbeat:IPaddr): 已启动node1.huhu.com

crm(live)

可以看到myip已经在node1启动。

#ip addr

1:lo: mtu 16436 qdisc noqueue 状态未知

link/loopback00:00:00:00:00:00 brd 00:00:00:00:00:00

inet127.0.0.1/8范围主机 lo

inet6::1/128 范围主机

valid_lftforever Preferred_lft 永远

2:eth0: mtu 1500 qdisc pfifo_fast stateUP qlen 1000

link/ether00:0c:29:a9:86:42 brd ff:ff:ff:ff:ff:ff

inet172.16.100.103/ 24 brd 172.16.100.255 范围全局 eth0

inet172.16.100.119/24brd 172.16.100.255 范围全局辅助 eth0

inet6fe80::20c:29ff:fea9:8642/64 范围链接

valid_lftforever Preferred_lft permanent

5.在其节点上进行MySQL登录验证

登录MySQL创建用户

#/usr/local/mysql/bin/mysql - uroot -e "将 *.* 上的所有内容授予由 '123.com' 识别的 root@'%';刷新权限"

#mysql -uroot -p123.com -h172.16.100.119 -e "显示数据库"

--------------------

|数据库 |

------ --------------

|信息架构 |

|mysql |

|性能_架构 |

|测试 |

| testdb |

--------------------

[root@localhost~]#

在模拟主从节点切换:

#crm节点待机

#crm节点上线

#crm状态

上线:[node1.huhu.com node2.huhu .com ]

主/从集:MS_mysql_drbd [mysql_drbd]

主站:[node2.huhu.com]

从站:[node1.huhu.com]

mystore (ocf::heartbeat:Filesystem): 已启动node2.huhu.com

mysqld (lsb:mysqld): 已启动node2.huhu.com

myip (ocf::heartbeat :IPaddr): 已启动node2.huhu.com

#mysql -uroot -p123.com -h172.16.100.119 -e "显示数据库"

[root@node2~]# crm

crm(live)#configure

crm(live)configure#show

nodenode1.huhu.com /

      attributesstandby=off

nodenode2.huhu.com /

      attributesstandby=off

primitivemyipIPaddr /

      paramsip=172.16.100.119nic=eth0cidr_netmask=24

primitive mysql_drbdocf:linbit :drbd /

      paramsdrbd_resource=mydrbd/

      opstarttimeout=240interval=0/

      opstoptimeout=100interval=0/

      opmonitorrole=Masterinterval=50stimeout=30s /

      opmonitorrole=Slaveinterval=60stimeout=30s

primitivemysqldlsb:mysqld

primitivemystoreFilesystem /

      paramsdevice="/dev/drbd0"directory="/mydata “ fstype = ext3/

> opstarttimeout = 60 Interval = 0/

opstoptimeout = 60 Interval = 0

msmss_mysql_drbd mysql_drbd mysql_dr_dr_drbd/

metamaster-max = 1master-max = 1master-node -max=1clone-max=2clone-node-max=1notify=true

colocationmyip_with_MS_mysql_drbdinf:MS_mysql_drbd:Mastermyip

colocationmysqld_with_mystoreinf:mysqldmystore

colocationmystore_with_MS_mysql_drbdinf:mystoreMS _mysql_drbd:大师

ordermysqld_after_mystoreMandatory:mystore mysqld

ordermystore_after_MS_mysql_drbdMandatory:MS_mysql_drbd:promote mystore:start

propertycib-bootstrap-options:/

      dc-version=1.1.10- 14. el6_5.3-368c726/

      cluster-infrastruct="classic openais (带插件)" /

      expected-quorum-votes=2/

      stonith-enabled=false/

      no-quorum-policy=ignore

rsc_defaultsrsc-options: /

      resource-stickiness=100

crm(实时)配置#

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
将用户添加到MySQL:完整的教程将用户添加到MySQL:完整的教程May 12, 2025 am 12:14 AM

掌握添加MySQL用户的方法对于数据库管理员和开发者至关重要,因为它确保数据库的安全性和访问控制。1)使用CREATEUSER命令创建新用户,2)通过GRANT命令分配权限,3)使用FLUSHPRIVILEGES确保权限生效,4)定期审计和清理用户账户以维护性能和安全。

掌握mySQL字符串数据类型:varchar vs.文本与char掌握mySQL字符串数据类型:varchar vs.文本与charMay 12, 2025 am 12:12 AM

chosecharforfixed-lengthdata,varcharforvariable-lengthdata,andtextforlargetextfield.1)chariseffity forconsistent-lengthdatalikecodes.2)varcharsuitsvariable-lengthdatalikenames,ballancingflexibilitibility andperformance.3)

MySQL:字符串数据类型和索引:最佳实践MySQL:字符串数据类型和索引:最佳实践May 12, 2025 am 12:11 AM

在MySQL中处理字符串数据类型和索引的最佳实践包括:1)选择合适的字符串类型,如CHAR用于固定长度,VARCHAR用于可变长度,TEXT用于大文本;2)谨慎索引,避免过度索引,针对常用查询创建索引;3)使用前缀索引和全文索引优化长字符串搜索;4)定期监控和优化索引,保持索引小巧高效。通过这些方法,可以在读取和写入性能之间取得平衡,提升数据库效率。

mysql:如何远程添加用户mysql:如何远程添加用户May 12, 2025 am 12:10 AM

ToaddauserremotelytoMySQL,followthesesteps:1)ConnecttoMySQLasroot,2)Createanewuserwithremoteaccess,3)Grantnecessaryprivileges,and4)Flushprivileges.BecautiousofsecurityrisksbylimitingprivilegesandaccesstospecificIPs,ensuringstrongpasswords,andmonitori

MySQL字符串数据类型的最终指南:有效的数据存储MySQL字符串数据类型的最终指南:有效的数据存储May 12, 2025 am 12:05 AM

tostorestringsefliceflicyInmySql,ChooSetherightDataTypeBasedyOrneOrneEds:1)USEcharforFixed-LengthStstringStringStringSlikeCountryCodes.2)UseVarcharforvariable-lengtthslikenames.3)USETEXTCONTENT.3)

mysql blob vs.文本:为大对象选择正确的数据类型mysql blob vs.文本:为大对象选择正确的数据类型May 11, 2025 am 12:13 AM

选择MySQL的BLOB和TEXT数据类型时,BLOB适合存储二进制数据,TEXT适合存储文本数据。1)BLOB适用于图片、音频等二进制数据,2)TEXT适用于文章、评论等文本数据,选择时需考虑数据性质和性能优化。

MySQL:我应该将root用户用于产品吗?MySQL:我应该将root用户用于产品吗?May 11, 2025 am 12:11 AM

No,youshouldnotusetherootuserinMySQLforyourproduct.Instead,createspecificuserswithlimitedprivilegestoenhancesecurityandperformance:1)Createanewuserwithastrongpassword,2)Grantonlynecessarypermissionstothisuser,3)Regularlyreviewandupdateuserpermissions

MySQL字符串数据类型说明了:选择适合您数据的合适类型MySQL字符串数据类型说明了:选择适合您数据的合适类型May 11, 2025 am 12:10 AM

mySqlStringDatatatPessHouldBechoseBeadeDataCharacteristicsAndUsecases:1)USECHARFORFIXED LENGTHSTRINGSTRINGSLIKECOUNTRYCODES.2)USEDES.2)usevarcharforvariable-lengtthstringstringstringstringstringstringstringslikenames.3)usebinaryorvarrinaryorvarinarydatalbonydatalgebgeenfopical.4)

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中