zoukankan      html  css  js  c++  java
  • MySQL PXC 高可用集群搭建

    1.准备环境

    --用户用户组

    groupadd mysql
    useradd -g mysql mysql

    --目录

    mkdir -p  /data/PXC/{data,redo,binlog,tmp,logs}
    chown -R  mysql:mysql /data/PXC
    chmod -R  755 /data/PXC
    chown -R mysql:mysql PXC
    chmod -R 755 PXC

    修改内核参数

    [root@mar3 PXC]#  cat   /etc/security/limits.conf |grep -v ^$|grep -v ^#
    mysql   soft    nproc   65535
    mysql   hard    nproc   65535
    mysql   soft    nofile  65535
    mysql   hard    nofile  65535

    关闭各个节点防火墙:

    systemctl stop firewalld
    systemctl disable firewalld

    2安装相关软件

    socat

    yum -y install socat

    安装xtrabckup

    cat <<eof>>/etc/yum.repos.d/percona.repo
    > [percona]
    > name = Percona
    > baseurl = https://mirrors.tuna.tsinghua.edu.cn/percona/release/$releasever/RPMS/$basearch
    > enabled = 1
    > gpgcheck = 0
    > 
    > [epel]
    > name=epelrepo
    > baseurl=https://mirrors.aliyun.com/epel/$releasever/$basearch
    > gpgcheck=0
    > enable=1
    > eof
    [root@mar3 PXC]# yum list all| grep xtraback -i
    percona-xtrabackup-24.x86_64            2.4.21-1.el7               @percona     
    holland-xtrabackup.noarch               1.1.21-1.el7               epel         
    percona-xtrabackup.x86_64               2.3.10-1.el7               percona      
    percona-xtrabackup-22.x86_64            2.2.13-1.el7               percona      
    percona-xtrabackup-22-debuginfo.x86_64  2.2.13-1.el7               percona      
    percona-xtrabackup-24-debuginfo.x86_64  2.4.21-1.el7               percona      
    percona-xtrabackup-80.x86_64            8.0.14-1.el7               percona      
    percona-xtrabackup-80-debuginfo.x86_64  8.0.14-1.el7               percona      
    percona-xtrabackup-debuginfo.x86_64     2.3.10-1.el7               percona      
    percona-xtrabackup-test.x86_64          2.3.10-1.el7               percona      
    percona-xtrabackup-test-22.x86_64       2.2.13-1.el7               percona      
    percona-xtrabackup-test-24.x86_64       2.4.21-1.el7               percona      
    percona-xtrabackup-test-80.x86_64       8.0.14-1.el7               percona      
    yum -y install percona-xtrabackup-24.x86_64

    安装pxc

    gunzip Percona-XtraDB-Cluster-5.7.26-rel29-31.37.1.Linux.x86_64.ssl101.tar.gz
    tar -zxvf Percona-XtraDB-Cluster-5.7.26-rel29-31.37.1.Linux.x86_64.ssl101.tar -C /usr/local/
    mv /usr/local/Percona-XtraDB-Cluster-5.7.26-rel29-31.37.1.Linux.x86_64.ssl101 /usr/local/mysql
    chown -R  mysql:mysql /usr/local/mysql
    chmod -R  755 /usr/local/mysql

    3.创建my.cnf配置文件,

    标红色的部分要根据 每个节点的情况更改

    [root@mar0 PXC]# cat my.cnf |grep -v ^#
    [client]
    default-character-set = uft8
    port    = 3306
    socket = /data/PXC/tmp/mysql.sock
    
    [mysql]
    prompt="u@mysqldb R:m:s [d]> "
    
    [mysqld]
    basedir=/usr/local/mysql
    datadir = /data/PXC/data   
    port = 3306
    server_id = 101
    socket = /data/PXC/tmp/mysql.sock
    tmpdir=/data/PXC/tmp
    character-set-server=utf8
    log-error= /data/PXC/logs/alert_3306.log
    pid-file = /data/PXC/tmp/mar0.inno.com.mysql_3306.pid
    gtid_mode=ON
    log-slave-updates=ON
    enforce-gtid-consistency=ON
    binlog_format = ROW
    skip-slave-start=1
    log-bin=/data/PXC/binlog/mysql-bin
    master_info_repository=TABLE
    relay_log_purge=0
    binlog_checksum=NONE 
    transaction_write_set_extraction=XXHASH64
    secure_file_priv=/data/export
    slow_query_log=on
    long_query_time=1
    slow_query_log_file=/data/PXC/logs/slow.log
    log_queries_not_using_indexes=on
    log_output=FILE
    general_log = on
    innodb_data_file_path=ibdata1:2G:autoextend
    innodb_log_group_home_dir=/data/PXC/redo
    innodb_file_per_table=1
    wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so
    wsrep_cluster_name=pxc-cluster
    wsrep_cluster_address=gcomm://192.168.1.200,192.168.1.111,192.168.1.112
    wsrep_node_name=pxc01
    wsrep_node_address=192.168.1.200
    wsrep_sst_method=xtrabackup-v2
    wsrep_sst_auth=pxc:123456
    pxc_strict_mode=ENFORCING
    default_storage_engine=InnoDB
    innodb_autoinc_lock_mode=2

    第二个节点

    wsrep_node_name=pxc2
    wsrep_node_address=192.168.1.111

    第三个节点

    wsrep_node_name=pxc3
    wsrep_node_address=192.168.1.112

    4. 修改mysql环境变量

    export PATH=/usr/local/mysql/bin:$PATH:/usr/local/xtrabackup/bin

    5.开始部署

    各个节点分别初始化数据库

    mysqld --defaults-file=/data/PXC/my.cnf --initialize

    启动第一个节点

    mysqld_safe --defaults-file=/data/PXC/my.cnf --wsrep-new-cluster  &

    在第一个节点修改密码,创建复制用户

    --修改密码
    root@(none)>set password='123456';
    --创建一个SST用户
    GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'pxc'@'localhost' IDENTIFIED BY '123456';

    启动节点#二节点和三节点不要同时启动,待二节点同步完成后再启动三节点

    mysqld_safe --defaults-file=/data/PXC/my.cnf   &

    登陆验证:

    root@mysqldb 21:49:  [(none)]> show status like 'wsrep_cluster_%';
    +--------------------------+--------------------------------------+
    | Variable_name            | Value                                |
    +--------------------------+--------------------------------------+
    | wsrep_cluster_weight     | 3                                    |
    | wsrep_cluster_conf_id    | 15                                   |
    | wsrep_cluster_size       | 3                                    |
    | wsrep_cluster_state_uuid | b813dad6-298a-11eb-a1a0-ff3a44db33c5 |
    | wsrep_cluster_status     | Primary                              |
    +--------------------------+--------------------------------------+

     PXC 5.7集群参数具体描述

    wsrep_cluster_name        指定群集的逻辑名称。对于群集中的所有节点,它必须相同。
    wsrep_cluster_address     指定群集中节点的IP地址。
    wsrep_node_name           指定每个单独节点的逻辑名称。如果未指定此变量,则将使用主机名称。
    wsrep_node_address        指定该特定节点的IP地址。
    wsrep_sst_method          默认情况下,Percona XtraDB集群使用Percona XtraBackup进行状态快照传输(SST)。 
                   强烈建议设置wsrep_sst_method
    =xtrabackup-v2。
               这种方法需要用户在初始节点上创建SST用户。用wsrep_sst_auth变量提供SST用户凭据。 wsrep_sst_auth 必须在引导第一个节点时创建此用户 并为其提供必要的权限:
               mysql
    > CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'passw0rd';            mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';            mysql> FLUSH PRIVILEGES; pxc_strict_mode   默认情况下PXC Strict模式为 ENFORCING,这将阻止使用Percona XtraDB集群中不受支持的特性 关于这个参数的具体描述可以参考:Percona XtraDB Cluster Strict Mode(PXC 5.7 ) binlog_format   Galera只支持行级复制,所以设置binlog_format=ROW。 efault_storage_engine Galera完全支持InnoDB存储引擎。它不能与MyISAM或任何其他非事务性存储引擎正常工作。将此变量设置为default_storage_engine=InnoDB。
    innodb_autoinc_lock_mode Galera仅支持InnoDB的交错(
    2)锁定模式。设置传统(0)或连续(1)锁定模式会导致复制失败,因为未解决的死锁。 将此变量设置为innodb_autoinc_lock_mode=2
  • 相关阅读:
    屏幕的真实分辨率大小
    CCConfiguration::sharedConfiguration()->loadConfigFile cocos2d-x 中文乱码问题及国际化解决方案
    git 放弃提交到提交之前
    cocos2d-x 输出debug信息
    Ubuntu设置环境变量
    有时候需要统计手机的型号和版本号,利用程序可以获取到相应的手机信息.
    读取 android sys/下的信息
    android 读取 raw 中的文件。
    C/C++中结构体(struct)
    异步图片下载引擎(升级版——ExecutorService+handler)
  • 原文地址:https://www.cnblogs.com/tingxin/p/14002794.html
Copyright © 2011-2022 走看看