percona xtradb cluster安装

Percona XtraDB Cluster简称:PXC, 是针对MySQL用户的高可用性和扩展性解决方案,基于Percona Server 。其包括了Write Set REPlication补丁,使用Galera 库,这是一个针对事务性应用程序的同步多主机复制插件。

 优点:

        1,同步复制,复制动作是同步的,实际上数据并不是完全同步的,数据的同步存在一个间隙,只能称为虚同步。
        2,多master,每一个节点都可以作为master,并将改动发送到其他节点。
        3,并行复制,复制可以指定多个线程,并且复制是以事务为单位的,多个事务同时并行推送到所有集群节点。
        4,新节点自动部署,只需要修改合适的参数,启动新节点的mysqld进程并成功加入集群后,数据完全自动的部署到新节点。
        5,数据一致性,严格的数据一致
        6,高可用性,单点故障不影响可用性
        7,与传统mysql几乎完全兼容,数据可以直接使用不需要任何转换,程序上也仅仅事务处理机制有变化,并且还可以完全规避

缺点:

        1,默认工作在InnoDB引擎表上,因此对其他引擎的表支持的很差,甚至根本不支持,所以不要考虑在PXC上使用MyISAM或者其他的存储引擎
        2,所有的表都必须要有主键
        3,不支持的操作: LOCK/UNLOCK TABLES、 lock functions (GET_LOCK(), RELEASE_LOCK()... )
        4,query log日志不能存放在表里面,必须存放在文件
        6,由于集群是基于乐观的并发控制( optimistic concurrency control ),事务冲突的情况可能会在commit阶段发生
        7,不支持XA事务,因为XA事务有可能在commit的时候出现异常发生rollback
        8,整个集群的吞吐量/性能取决于最慢的那个节点(成本)
        9,最小建议的集群节点数为3,否则很容易产生脑裂(成本)
       10,加入新节点,开销大,有多少个节点就有多少重复的数据
       11,不能有效的解决写缩放问题,所有的写操作都将发生在所有节点上(写放大)

环境规划


服务器IP(CentOS-6.5-x86_64)节点名称(hostname)
192.168.255.143node143
192.168.255.144node144
192.168.255.145node145

前提:

1.关闭防火墙:chkconfig --level 2345 iptables off

2.关闭下selinux: vim /etc/selinux/config  改SELINUX=0

3.改hostname: vim /etc/sysconfig/network 改 HOSTNAME=node143(对应的节点名称)


开始安装

1.下载PXC
wget www.percona.com/redir/downloads/Percona-XtraDB-Cluster/5.5.37-25.10/binary/linux/x86_64/Percona-XtraDB-Cluster-5.5.37-rel35.0-25.10.756.Linux.x86_64.tar.gz

2.安装epel源(socat.x86_64)

    a.wget http://download.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
    b.rpm -ivh /path/epel-release-5-4.noarch.rpm

3安装需要用到

    yum install –y perl-DBD-MySQL.x86_64  perl-IO-Socket-SSL.noarch socat.x86_64 nc

4.安装percona源
    yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

5如果需要使用xtrabackup传送SST还需要安装xtrabackup
    yum install -y percona-xtrabackup.x86_64

6.创建目录
    mkdir -p /opt/mysql

7.解压PXC
    tar -zxf /opt/mysql/Percona-XtraDB-Cluster-5.5.37-rel35.0-25.10.756.Linux.x86_64.tar.gz -C /opt/mysql/

8.软连
    ln -s /opt/mysql/Percona-XtraDB-Cluster-5.5.37-rel35.0-25.10.756.Linux.x86_64 /usr/local/mysql

9.创建mysql用户以及组
    groupadd mysql
    useradd -g mysql -s /sbin/nologin -d /usr/local/mysql mysql

10.环境变量
    /etc/profile
    export PATH=$PATH:/usr/local/mysql/bin
    source /etc/profile
11.创建mysql需要的基本目录
    mkdir -p /data/mysql/mysql_3306
    mkdir -p /data/mysql/mysql_3306/data
    mkdir -p /data/mysql/mysql_3306/logs
    mkdir -p /data/mysql/mysql_3306/tmp

12.权限设置
    chown -R mysql:mysql /data/mysql/mysql_3306/
    chown -R mysql:mysql /usr/local/mysql/*
13.修改my.cnf

    在my.cnf的最后加
    #pxc
    binlog_format = row  #日志格式必须row
    default_storage_engine=Innodb   #当前节点使用的是innodb存储引擎
    innodb_locks_unsafe_for_binlog=1
    innodb_autoinc_lock_mode=2
    wsrep_cluster_name=test  #集群名称,所有节点可以配置一样
    wsrep_cluster_address=gcomm://192.168.255.144,192.168.255.145,192.168.255.143    #集群内的节点IP地址
    wsrep_node_address=192.168.255.143    #当前节点的IP地址
    wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so  #   libgalera_smm.so的绝对路径
    wsrep_sst_method=xtrabackup   #以xtrabackup方式同步
    wsrep_sst_auth=test:test  #授权sst方式的用户名和密码

14.初始化
    cd  /usr/local/mysql
    ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql/mysql_3306/data/ --basedir=/usr/local/mysql/

15.启动文件
    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
16.第一个节点启动
    /etc/init.d/mysql bootstrap-pxc #第一个节点必须用bootstrap-pxc方式启动

17.账号管理

    清除无效的用户
        delete from mysql.user where user!='root' or host!='localhost';
        mysql.db对test表做了所有授权,容易存在安全问题
        truncate mysql.db;
    创建一个独立管理账号
        grant all privileges on *.* to 'test'@'%' identified by 'test';
    创建一个供xtrabackup创建SST的帐号
        grant reload, lock tables, replication client on *.* to 'sst'@'%' identified by 'test';

18.启动第二个节点(按照1-17的方式在另一台服务器上执行)

       /etc/init.d/mysql start # 第二个开始的节点启动就不用bootstrap-pxc方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值