Percona XtraDB Cluster安装

1、Percona XtraDB Cluster简单介绍

官方文档: https://www.percona.com/doc/percona-xtradb-cluster/LATEST/install/yum.html

Percona XtraDB Cluster是MySQL高可用性和可扩展性的解决方案,Percona XtraDB Cluster提供的特性如下:   

     1). 同步复制,事务要么在所有节点提交或不提交。
     2). 多主复制,可以在任意节点进行写操作。
     3). 在从服务器上并行应用事件,真正意义上的并行复制。
     4). 节点自动配置。
     5). 数据一致性,不再是异步复制。

Percona XtraDB Cluster完全兼容MySQL和Percona Server,表现在:     

     1). 数据的兼容性
     2). 应用程序的兼容性:无需更改应用程序
     3). 集群是有节点组成的,推荐配置至少3个节点,但是也可以运行在2个节点上。
     4). 每个节点都是普通的mysql/percona服务器,可以将现有的数据库服务器组成集群,反之,也可以将集群拆分成单独的服务器。
     5). 每个节点都包含完整的数据副本。
优点如下
     1). 当执行一个查询时,在本地节点上执行。因为所有数据都在本地,无需远程访问。
     2). 无需集中管理。可以在任何时间点失去任何节点,但是集群将照常工作,不受影响。
     3). 良好的读负载扩展,任意节点都可以查询。
缺点如下
     1). 加入新节点,开销大。需要复制完整的数据。
     2). 不能有效的解决写缩放问题,所有的写操作都将发生在所有节点上。
     3). 有多少个节点就有多少重复的数据

2、各端口说明

注意:确保以下端口不会被防火墙阻止或被其他服务使用。Percona XtraDB集群需要它们进行通信。
          3306     mysql服务端口
          4444     SST全量传输(State Snapshot Transfer) 启动节点时,就通过此端口进行同步
          4567      组成员之间沟通的端口 实现IST增量传输(Incremental state Transfer)
          4568      传输IST,节点下线,重启加入时起作用
          donor     给贡献数据者,SST进行传输的提供者

-A INPUT -m state --state NEW -m tcp -p tcp --dport xxx -j ACCEPT #开放xxx端口,每个节点执行
service iptables restart

3、基于rpm版本进行yum安装

yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm  #下载rpm软件库
yum install Percona-XtraDB-Cluster-56
rpm -qa |grep "Percona-XtraDB-Cluster"
#这里安装好默认是4个包: Percona
-XtraDB-Cluster-galera-3-3.25-2.el6.x86_64
Percona
-XtraDB-Cluster-shared-56-5.6.40-26.25.1.el6.x86_64
Percona
-XtraDB-Cluster-client-56-5.6.40-26.25.1.el6.x86_64
Percona
-XtraDB-Cluster-server-56-5.6.40-26.25.1.el6.x86_64
#也可以yum安装Percona-XtraDB-Cluster-full-56,其中会包含一些附加包

              Percona-XtraDB-Cluster-devel-56-5.6.40-26.25.1.el6.x86_64
              Percona-XtraDB-Cluster-test-56-5.6.40-26.25.1.el6.x86_64
              Percona-XtraDB-Cluster-galera-3-debuginfo-3.25-2.el6.x86_6 4

  yum install -y Percona-XtraDB-Cluster-test-56-5.6.40-26.25.1.el6.x86_64 Percona-XtraDB-Cluster-devel-56-5.6.40-26.25.1.el6.x86_64 Percona-XtraDB-Cluster-galera-3-debuginfo-3.25-2.el6.x86_64 #补充避免少安装

 4、启动PXC

service mysql start

5、更改root用户登录密码

 #mysqladmin -u root password '123456'
   ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
   #set password for root@localhost = password('123456');  
   #update user set password=password('123456') where user='root' and host='localhost'; 
   #mysqladmin -uroot -p123 password 123456 

 6、关闭mysql服务开始配置集群当中的每个节点  service mysql stop

  配置示例假设有三个Percona XtraDB集群节点:
        node1 10.10.16.118    最先启动
        node2 10.10.16.119    第二个加入
        node3 10.10.16.151    最后一个加入
  a.配置第一个节点:cat /etc/my.cnf
        wsrep_provider=/usr/lib64/galera3/libgalera_smm.so   #引入Galera插件
        wsrep_cluster_name=pxc-cluster   #指定集群的逻辑名称。对于集群中的所有节点,它必须是相同的。
        wsrep_cluster_address=gcomm://10.10.16.118,10.10.16,119,10.10.16.151   # 指定集群节点ip地址,做为启动时被同步数据的服务器使用此配置,实现列表中第一个节点不可用,连接节点就可以选择其他地址
        wsrep_node_name=pxc1   #节点名
        wsrep_node_address=10.10.16.118  #节点ip地址
        wsrep_sst_method=xtrabackup-v2   #SST数据同步方式#一般有rsync,mysqldump
        wsrep_sst_auth=sstuser:sstuser   #为SST指定身份验证凭证,这个必须要在第一个节点创建这个特权用户
        pxc_strict_mode=ENFORCING    #PXC严格模式在默认情况下是启用的,并设置为强制执行,这阻止了Percona XtraDB集群中实验性和不受支持的特性的使用。
        binlog_format=ROW                   #二进制日志格式
        default_storage_engine=InnoDB     #默认存储引擎为INNODB
        innodb_autoinc_lock_mode=2   #Galera只支持InnoDB的交叉2为锁模式。设置传统的0或连续 1锁模式会导致由于未解决的死锁而导致复制失败。将这个变量设置为innodbautoinclockmode=2。
  b.配置第二个节点: #除了wsrep_node_name和wsrep_node_address变量之外,对第二和第三个节点使用相同的配置

          wsrep_node_name=pxc2
          wsrep_node_address=10.10.16.119

  c.配置第三个节点:
wsrep_node_name
=pxc3 wsrep_node_address=10.10.16.151

7、为SST指定身份验证凭证

mysql> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'sstuser'; #必须在引导第一个节点并为其提供必要的权限时创建这个用户:

mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';
mysql> FLUSH PRIVILEGES;

8、启动第一个节点

/etc/init.d/mysql bootstrap-pxc #它将在引导模式下运行wsrepclusteraddress=gcomm://。这将告诉节点用wsrepclusterid设置为1的集群初始化集群。当将其他节点添加到集群之后,你就可以正常地重新启动这个节点,并且它将再次使用标准配置。

9、查看集群状态

show status like 'wsrep%';

10、依次加入其它节点

/etc/init.d/mysql start  #在node2 node3 上执行

11、验证复制

  a.在第二个节点创建一个数据库Percona
  b.在第三个节点创建一张表test 
    #create table test(id int primary key,name varchar(20));
  c.在第一个节点插入一些数据   
#insert into test values (
1,'zhangsan'),(2,'lisi'); d. 在第二个节点查看数据,复制成功

12、负载均衡引入

a.pen引入:http://galeracluster.com/documentation-webpages/pen.html#using-pen
           #介绍:PEN是一个可伸缩、高可用性、强大的负载均衡中间件,基于TCP和UDP通信,可以使用它来平衡应用程序和Galera集群之间的连接。默认是以Round robin轮询的方式将所有请求引导到一个循环的ip列表中,根据服务器间的负载均衡性来实现调度
           #安装: yum install -y pen 
           #启动: pen -l pen.log -p pen.pid 10.10.16.118:3307 10.10.16.118:3306 10.10.16.119:3306 10.10.16.151:3306
           #查看日志:tailf pen.log 
       
b.proxySQL引入:https://www.percona.com/doc/percona-xtradb-cluster/LATEST/howtos/proxysql.html#load-balancing-with-proxysql
           #介绍:ProxySQL是一个高性能的SQL代理,它以监视着守护进程的方式运行,并且在节点宕机时以最短的时间重新启动它。这个守护进程接受来自MySQL客户端的传入流量,并将其转发到后端MySQL服务器。
           #安装:yum install -y proxysql
           #启动:service proxysql start 
           #配置:Percona的ProxySQL包包括proxysql-admin工具,它可以使用ProxySQL配置Percona XtraDB集群节点。proxysql-admin工具只能用于初始的ProxySQL配置。
                 /etc/proxysql-admin.cnf #提供连接和认证信息,为Percona XtraDB集群节点提供超级用户凭证。proxysql-admin脚本将自动检测集群中的其他节点。
                 1)proxysql-admin --config-file=/etc/proxysql-admin.cnf --enable  #使用——enable选项将Percona XtraDB集群节点自动配置为ProxySQL .(目前仅支持Percona XtraDB集群,并支持ProxySQL)
                 2)mysql --user=proxysql_user -p --host=localhost --port=6033 --protocol=tcp  #使用登录认证用户来通过ProxySQL连接应用程序
                 3)proxysql-admin --config-file=/etc/proxysql-admin.cnf --disable  #禁用ProxySQL并删除Percona XtraDB集群节点:
                 4)proxysql-admin --config-file=/etc/proxysql-admin.cnf --adduser   #将Percona XtraDB集群应用程序用户添加到ProxySQL数据库中。
                 5)proxysql-admin --config-file=/etc/proxysql-admin.cnf --galera-check-interval=5000 --enable    #当为集群启用ProxySQL时,设置用于监视proxysql galera检测器脚本(以毫秒为单位)的时间间隔。
                 6)grep "MODE" /etc/proxysql-admin.cnf   #export MODE="singlewrite" 模式设置
                    proxysql-admin --config-file=/etc/proxysql-admin.cnf --write-node=127.0.0.1:25000 --enable  
                 7)检查你可以运行的配置:SELECT hostgroup_id,hostname,port,status,comment FROM mysql_servers;
未完,待续。。。

 

posted @ 2018-08-27 17:00  淺景尘  阅读(574)  评论(0)    收藏  举报
TOP