• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL之-MySQL高可用实现的详细介绍

MySQL之-MySQL高可用实现的详细介绍

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了MySQL,高可用等相关知识,希望本文的分享对您有所帮助
一、 基本环境介绍及基本环境配置

节点1: node1.hulala.com 192.168.1.35 centos6.5_64 添加8G新硬盘
节点2: node2.hulala.com 192.168.1.36 centos6.5_64 添加8G新硬盘
vip 192.168.1.39

节点1与节点2均需配置
修改主机名:

vim /etc/sysconfig/network
HOSTNAME=node1.hulala.com

配置hosts解析:

vim /etc/hosts
192.168.1.35    node1.hulala.com node1
192.168.1.36    node2.hulala.com node2

同步系统时间:

ntpdate cn.pool.ntp.org

关闭防火墙与SELINUX

service iptables stop
chkconfig iptables off
cat /etc/sysconfig/selinux
SELINUX=disabled

以上配置在两个节点都需要配置,配置完成之后重启两个节点

二:配置ssh互信

[root@node1~]#ssh-keygen -t rsa -b 1024
[root@node1~]#ssh-copy-id root@192.168.1.36
[root@node2~]#ssh-keygen -t rsa -b 1024
[root@node2~]#ssh-copy-id root@192.168.1.35

三:DRBD的安装与配置(node1和node2执行相同操作)

[root@node1~]#wget -c http:///
[root@node1~]#wget -c http:///
[root@node1~]#rpm -ivh *.rpm

获取一个sha1值做为shared-secret

[root@node1~]#sha1sum /etc/drbd.conf
8a6c5f3c21b84c66049456d34b4c4980468bcfb3  /etc/drbd.conf

创建并编辑资源配置文件:/etc/drbd.d/dbcluster.res

[root@node1~]# vim /etc/drbd.d/dbcluster.res
resource dbcluster {
    protocol C;
    net {
        cram-hmac-alg sha1;
        shared-secret "8a6c5f3c21b84c66049456d34b4c4980468bcfb3";
        after-sb-0pri discard-zero-changes;
after-sb-1pri discard-secondary;
        after-sb-2pri disconnect;
        rr-conflict disconnect;
    }
    device    /dev/drbd0;
    disk      /dev/sdb1;
meta-disk internal;
    on node1.hulala.com {
        address   192.168.1.35:7789;
    }
    on node2.hulala.com {
        address   192.168.1.36:7789;
    }
}

以上配置所用参数说明:
RESOURCE: 资源名称
PROTOCOL: 使用协议”C”表示”同步的”,即收到远程的写入确认之后,则认为写入完成.
NET: 两个节点的SHA1 key是一样的
after-sb-0pri : “Split Brain”发生时且没有数据变更,两节点之间正常连接
after-sb-1pri : 如果有数据变更,则放弃辅设备数据,并且从主设备同步
rr-conflict: 假如前面的设置不能应用,并且drbd系统有角色冲突的话,系统自动断开节点间连接
META-DISK: Meta data保存在同一个磁盘(sdb1)
ON <NODE>: 组成集群的节点
将DRBD配置拷贝到node机器:

[root@node1~]#scp /etc/drbd.d/dbcluster.res root@192.168.1.36:/etc/drbd.d/

创建资源及文件系统:
创建分区(未格式化过)
在node1和node2上创建LVM分区:

[#root@node1~]fdisk /dev/sdb

在node1和node2上给资源(dbcluster)创建meta data:

[root@node1~drbd]#drbdadm create-md dbcluster

激活资源(node1和node2都得查看)
– 首先确保drbd module已经加载
查看是否加载:

# lsmod | grep drbd

若未加载,则需加载:

# modprobe drbd
# lsmod | grep drbd
drbd                  317261  0
libcrc32c               1246  1 drbd

– 启动drbd后台进程:

[root@node1 drbd]# drbdadm up dbcluster
[root@node2 drbd]# drbdadm up dbcluster

查看(node1和node2)drbd状态:

[root@node2 drbd]# /etc/init.d/drbd status
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by dag@Build64R6, 2016-10-23 08:16:10
m:res        cs         ro                   ds                         p  mounted  fstype
0:dbcluster  Connected  Secondary/Secondary  Inconsistent/Inconsistent  C

从上面的信息可以看到,DRBD服务已经在两台机器上运行,但任何一台机器都不是主机器(“primary” host),因此无法访问到资源(block device).
开始同步:

仅在主节点操作(这里为node1)

[root@node1 drbd]# drbdadm — –overwrite-data-of-peer primary dbcluster

查看同步状态:


上面的输出结果的一些说明:
cs (connection state): 网络连接状态
ro (roles): 节点的角色(本节点的角色首先显示)
ds (disk states):硬盘的状态
复制协议: A, B or C(本配置是C)
看到drbd状态为”cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate”即表示同步结束.
也可以这样查看drbd状态:

[root@centos193 drbd]# drbd-overview
  0:dbcluster/0  Connected Secondary/Primary UpToDate/UpToDate C r—–

创建文件系统:
在主节点(Node1)创建文件系统:

[root@node1 drbd]# mkfs -t ext4 /dev/drbd0
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
…….
180 days, whichever comes first.  Use tune2fs -c or -i to override.

注:没必要在辅节点(Node2)做同样的操作,因为DRBD会处理原始磁盘数据的同步.
另外,我们也不需要将这个DRBD系统挂载到任何一台机器(当然安装MySQL的时候需要临时挂载来安装MySQL),因为集群管理软件会处理.还有要确保复制的文件系统仅仅挂载在Active的主服务器上.

四:mysql的安装

MySQL的安装也可以参见博文《MySQL之——CentOS6.5 编译安装MySQL5.6.16》

1,在node1和node2节点安装mysql:

yum install mysql* -y

2.node1和node2都操作停止mysql服务

[root@node1~]# service mysql stop
Shutting down MySQL.        [  OK  ]

3.node1和node2都操作创建数据库目录并将该目录权限属主修改为mysql

[root@host1 /]# mkdir -p /mysql/data
[root@host1 /]# chown -R mysql:mysql /mysql

4,关闭mysql临时挂载DRBD文件系统到主节点(Node1)

[root@node1 ~]# mount /dev/drbd0  /mysql/

5.node1和node2都操作修改my.cnf文件修改
在[mysqld]下添加新的数据存放路径

datadir=/mysql/data

6.将默认的数据路径下的所有文件和目录cp到新的目录下(node2不用操作)

[root@host1 mysql]#cd /var/lib/mysql
[root@host1 mysql]#cp -R * /mysql/data/

node1和node2都操作这里注意copy过去的目录权限属主需要修改为mysql,这里直接修改mysql目录即可.

[root@host1 mysql]# chown -R mysql:mysql /mysql

7.启动node1上的mysql进行登陆测试

[root@host1 mysql]# mysql

8.在节点Node1卸载DRBD文件系统

[root@node1 ~]# umount /var/lib/mysql_drbd
[root@node1 ~]# drbdadm secondary dbcluster

9.将DRBD文件系统挂载节点Node2

[root@node2 ~]# drbdadm primary dbcluster
[root@node2 ~]# mount /dev/drbd0 /mysql/

10.节点Node2上配置MySQL并测试

[root@node1 ~]# scp node2:/etc/my.cnf /etc/my.cnf
[root@node2 ~]# chown mysql /etc/my.cnf
[root@node2 ~]# chmod 644 /etc/my.cnf

11. node2上做mysql登陆测试

[root@node2 ~]# mysql

12.在Node2上卸载DRBD文件系统,交由集群管理软件Pacemaker来管理

[root@node2~]# umount /var/lib/mysql_drbd
[root@node2~]# drbdadm secondary dbcluster
[root@node2~]# drbd-overview
  0:dbcluster/0  Connected Secondary/Secondary UpToDate/UpToDate C r—–
[root@node2~]#

五:Corosync和Pacemaker的安装配置(node1和node2都需安装)

安装Pacemaker必须依赖:

[root@node1~]#yum -y install automake autoconf libtool-ltdl-devel
  


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分享下mysql各个主要版本之间的差异
  • MySQL essential版本和普通版本有什么区别?
  • redhat 5.4下安装MYSQL全过程
  • 如何用SQL命令查看Mysql数据库大小
  • 解析mysql中如何获得数据库的大小
  • 解析mysql修改为utf8后仍然有乱码的问题
  • 5个常用的MySQL数据库管理工具详细介绍
  • 解析在MySQL里创建外键时ERROR 1005的解决办法
  • 解析远程连接管理其他机器上的MYSQL数据库
  • mysql 精简过程(删除一些文件)

相关文章

  • 2018-12-05mysql 命令总结
  • 2018-12-05mybatis分页插件pageHelper实例详解
  • 2018-12-05详解MySQL误操作后怎样进行数据恢复_MySQL
  • 2018-12-05具有负载均衡功能的MySQL服务器集群部署及实现
  • 2018-12-05windows下安装、卸载mysql服务的方法(mysql 5.6 zip解压版安装教程)_MySQL
  • 2017-05-11教你为MySQL数据库换挡加速
  • 2018-12-05关于MySQL中数据类型显示宽度n
  • 2018-12-05一个分页存储过程代码
  • 2018-12-05全面接触SQL语法(6)
  • 2018-12-05分享sql语句性能调优的实例教程

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • MySQL的入门介绍
    • Win7、WinXP下MySql安装出错完全卸载的方法步骤
    • 用SQL进行集合运算
    • 【ASP.NET Web API教程】1.1 第一个ASP.NET Web API
    • mysql 读写分离(实战篇)
    • utf 8-mysql,jsp,hibernate,不支持utf-8
    • mysql(10061)报错临时解决办法
    • mytop 使用介绍 mysql实时监控工具
    • MySQL笔记之子查询使用介绍
    • 浅析MySQL replace into 的用法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有