zoukankan      html  css  js  c++  java
  • percona-xtradb-cluster安装部署

    Percona Xtradb Cluster 安装
    Percona Xtradb Cluster 介绍 Percona XtraDB Cluster 简称:PXC,是针对MySQL 用户的高可用性和扩展性解决方案,基于Percona Server。其包括了Write Set REPlication 补丁,使用Galera库,这是一个针对事务性应用程序的同步多主机复制插件。
    Percona XtraDB Cluster特点:
      (1)同步复制,事务在所有集群节点要么同时提交,要么不提交。
      (2)多主复制,可以在任意一个节点写入。
      (3)从服务器上的并行应用事件,真正的“并行复制”。
      (4)自动配置节点。
      (5)数据一致性,没有不同步的从服务器。
     
    PXC 安装环境需求
     
    环境:
    CentOS 6.5 64bits
    IP:
    192.168.1.88
    192.168.1.89
    192.168.1.90
     
    基本架构:
     
    PXC 安装基本步骤
    Percona-Xtradb-Cluster
    5.6 版本下载
    wget http://www.percona.com/downloads/Percona-XtraDB-Cluster-56/Percona-XtraDB-Cluster-5.6.21-25.8/binary/tarball/Percona-XtraDB-Cluster-5.6.21-rel70.1-25.8.938.Linux.x86_64.tar.gz
     
    1.安装依赖包:(使用系统光盘配置本地yum源即可)
    yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL
     
    2.安装软件包percona-xtrabackup:
    rpm -ivh percona-xtrabackup-2.3.5-1.el6.x86_64.rpm
     
    可能需要依赖软件包libev.
    rpm -ivh libev-4.04-2.el6.x86_64.rpm
     
    3.安装
    创建安装目录
    mkdir /usr/local/mysql
    tar -xvf  Percona-XtraDB-Cluster-5.6.21-rel70.1-25.8.938.Linux.x86_64.tar.gz
    mv  Percona-XtraDB-Cluster-5.6.21-rel70.1-25.8.938.Linux.x86_64  /usr/local/mysql
     
    创建mysql 的用户及组
    groupadd mysql
    useradd -g msyql mysql
    创建启动文件:
    #cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
    创建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
    chown mysql:mysql /data -R
    chmod 755  /data -R
    ./mysql_install_db --user=mysql  --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/
    确认结果正确
     
     
    4.PXC 配置
    cat /etc/my.cnf
    [client]
    socket=/data/mysql/mysql_3306/tmp/mysql.sock
    port            = 3306
     
    [mysqld]
    server_id=88
    basedir         = /usr/local/mysql
    port            = 3306
    datadir         = /data/mysql/mysql_3306/data
    tmpdir          = /data/mysql/mysql_3306/tmp
    socket          = /data/mysql/mysql_3306/tmp/mysql.sock
    user=mysql
    pid-file=/data/mysql/mysql_3306/data/mysqld.pid
    log-error=/data/mysql/mysql_3306/logs/mysql.err
    general-log-file=/data/mysql/mysql_3306/logs/mysql.log
    slow-query-log-file=/data/mysql/mysql_3306/logs/mysql.log
     
    default_storage_engine=InnoDB
    innodb_locks_unsafe_for_binlog=1
    innodb_autoinc_lock_mode=2
    wsrep_cluster_name="mycluster"
    #cluster 的名字
    wsrep_cluster_address=gcomm://192.168.1.88,192.168.1.89,192.168.1.90
    #cluster 中的节点ip
    wsrep_node_address=192.168.1.88
    #cluster 当前节点的ip
    wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so
    wsrep_sst_method=rsync
    wsrep_sst_auth="sstuser:sstuser"
    wsrep_node_name=pxc1
     
     
     
    有两个地方需要注意:
    1、wsrep_node_address=192.168.1.88 安装每个mysql服务时,需要修改为自身的ip
    2、wsrep_sst_method:在刚安装时,需要将slave节点设置为rsync,才能同步成功
    每台集群中的mysql服务都按以上的步骤安装即可
     
    注意下面几个值根据实际情况设置,3台主机需要设置成不同的值:
    server_id=88
    wsrep_node_address
    wsrep_node_name
     
    5.启动
    # 首先启动第一节点
    修改/etc/init.d/mysql配置文件中basedir和datadir的路径
    basedir=/usr/local/mysql
    datadir=/data/mysql/mysql_3306/data
    /etc/init.d/mysql bootstrap-pxc  --wsrep-cluster-address="gcomm://"
    tail -f /data/mysql/mysql_3306/logs/mysql.log                                   ----- 观察错误日志
     
    # 以上述方式启动完第一个节点后,用命令service mysql start依次启动第二和第三个节点。当全部节点启动完毕后,# 再回过来把第一个节点service mysql restart重新启动。这是因为在集群节点全部关闭状态下,第一个启动的节点# 必须以gcomm://方式启动。
    /etc/init.d/mysql start
    /etc/init.d/mysql start
    /etc/init.d/mysql restart
     
    6.验证是否配置成功:
    mysql> show global status like 'wsrep_cluster_size';
    +--------------------+-------+
    | Variable_name      | Value |
    +--------------------+-------+
    | wsrep_cluster_size | 3     |
    +--------------------+-------+
    1 row in set (0.00 sec)
     
    mysql> show global status like 'wsrep_incoming_addresses';
    +--------------------------+-------------------------------------------------------+
    | Variable_name            | Value                                                 |
    +--------------------------+-------------------------------------------------------+
    | wsrep_incoming_addresses | 192.168.1.90:3306,192.168.1.89:3306,192.168.1.88:3306 |
    +--------------------------+-------------------------------------------------------+
    1 row in set (0.25 sec)
     
    # 比较重要的参数状态
    mysql> show status like 'wsrep%';
    +------------------------------+-------------------------------------------------------------+
    | Variable_name                | Value                                                       |
    +------------------------------+-------------------------------------------------------------+
    | wsrep_cluster_status         | Primary                                                     |
    | wsrep_connected              | ON                                                          |
    | wsrep_ready                  | ON                                                          |
    +------------------------------+-------------------------------------------------------------+
     
    测试数据
     
    第一个节点:
    mysql> create database db1;
    Query OK, 1 row affected (0.05 sec)
    mysql> use db1;
    Database changed
    mysql> create table t1(x int);
    Query OK, 0 rows affected (0.21 sec)
    mysql> insert into t1 values(1);
    第二个节点:
    mysql> use db1;
     Database changed
     mysql> show tables;
     +---------------+
     | Tables_in_db1 |
     +---------------+
     | t1 |
     +---------------+
     1 row in set (0.00 sec)
     mysql> insert into t1 values(2);
     Query OK, 1 row affected (0.01 sec)
     第三个节点:
     mysql> use db1;
     Database changed
     mysql> show tables;
     +---------------+
     | Tables_in_db1 |
     +---------------+
     | t1 |
     +---------------+
     1 row in set (0.00 sec)
     
    mysql> select * from t1;
    +------+
    | x    |
    +------+
    |    1 |
    |    2 |
    |    3 |
    +------+
    3 rows in set (0.00 sec)
     
    遇到的问题及解决办法:
    可能提示缺少libssl.so.6和libcrypto.so.6
    /usr/local/mysql//bin/my_print_defaults: error while loading shared libraries: libssl.so.6: cannot open shared object file: No such file or directory
    /usr/local/mysql//bin/my_print_defaults: error while loading shared libraries: libcrypto.so.6: cannot open shared object file: No such file or directory
    安装openssl
    # rpm -qa | grep openssl
    krb5-pkinit-openssl-1.10.3-65.el6.x86_64
    openssl-1.0.1e-57.el6.x86_64
    openssl098e-0.9.8e-20.el6.centos.1.i686
     
    cd /usr/lib64
    # ln -s libssl.so.1.0.1e libssl.so.6
    # ln -s libcrypto.so.1.0.1e libcrypto.so.6
     
     
     
     
  • 相关阅读:
    PostgreSQL高可用之Pgpool-II的故障转移和故障恢复参数详解
    PostgreSQL高可用之Pgpool-II的Health Check参数详解(健康检测)
    PostgreSQL之常用SQL命令
    PostgreSQL之WAL日志归档配置
    PostgreSQL13基于流复制搭建后备服务器
    PostgreSQL之密码文件.pgpass
    PostgreSQL之wal日志
    PostgreSQL之background writer
    PostgreSQL之checkpoint
    使用lambda会降低代码可读性吗?
  • 原文地址:https://www.cnblogs.com/manger/p/7212080.html
Copyright © 2011-2022 走看看