• CentOS 7 搭建PXC 数据库集群


    CentOS 7 搭建PXC 数据库集群
    PXC( Percona XtraDB Cluster ) 特点如下:

    1.同步复制,事务要么在所有节点提交或不提交,保证了数据的强一致性。
    2.多主复制,可以在任意节点进行写操作。
    3.在从服务器上并行应用事件,真正意义上的并行复制。

    Percona 下载地址
    https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/

    所有下载安装包如下:

    Percona-XtraDB-Cluster

    Percona-XtraBackup

    jemalloc

    qpress

    #修改静态IP

    ip addr

    vi /etc/sysconfig/network-scripts/ifcfg-ens32

    #修改并添加

    BOOTPROTO=static

    IPADDR=192.168.0.3
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.1
    DNS1=192.168.0.1
    DNS2=8.8.8.8

    service network restart

    #先删除预装的 MariaDB
    yum -y remove mari*

    #解压所有安装包,到 /home 目录,执行批量安装
    yum localinstall *.rpm

    #查看 root 密码
    cat /var/log/mysqld.log | grep "A temporary password"

    #修改 root 密码,建议先创建快照,以便恢复.
    mysql_secure_installation

    #登录 mysql
    mysql -h127.0.0.1  -u root  -p

    #创建 admin 帐号
    mysql> CREATE USER 'admin'@'%' IDENTIFIED BY 'Abc_123456';
    mysql> GRANT all privileges ON *.* TO 'admin'@'%';
    mysql> FLUSH PRIVILEGES;
    mysql>exit


    #修改 mysql 配置文件
    vi /etc/percona-xtradb-cluster.conf.d/mysqld.cnf

    ===>添加在 [mysqld] 下面:
    [mysqld]
    character_set_server=utf8
    bind-address=0.0.0.0
    #跳过DNS解析
    skip-name-resolve
     
    #修改集群配置文件
    vi /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
     
    ===>对照配置文件,修改这些地方(红色标记是要改的地方)
     
    [mysqld]

    #集群名称
    wsrep_cluster_name=pxc-cluster

    #节点名称(每个节点不同)
    wsrep_node_name=pxc-cluster-node-1

    #节点IP
    wsrep_node_address=192.168.0.11

    #集群IP地址列表(3,4,5 最少三个节点)
    wsrep_cluster_address=192.168.0.3,192.168.0.4,192.168.0.5

    #同步数据时的帐户
    wsrep_sst_auth="admin:Abc_123456"

    #Galera 库
    wsrep_provider=/usr/lib64/galera3/libgalera_smm.so

    #基于ROW复制(安全可靠)
    binlog_format=ROW

    #默认存储引擎,目前MyISAM 还处于实验阶段
    default_storage_engine=InnoDB

    #从节点线程数
    wsrep_slave_threads= 8

    #是否记录有关冲突的其他信息
    wsrep_log_conflicts=OFF

    #主键自增长不锁表
    innodb_autoinc_lock_mode=2

    #同步严厉模式(DISABLED,PERMISSIVE,ENFORCING,MASTER)
    pxc_strict_mode=ENFORCING

    #同步方法(mysqldump、rsync、xtrabackup)
    wsrep_sst_method=xtrabackup-v2

     
    #把 SELINUX 值设置成 disabled
    vi /etc/selinux/config
     
    #禁止 mysql 自启动
    chkconfig mysqld off
     
    #开放端口
    firewall-cmd --zone=public --add-port=3306/tcp --permanent
    firewall-cmd --zone=public --add-port=4444/tcp --permanent
    firewall-cmd --zone=public --add-port=4567/tcp --permanent
    firewall-cmd --zone=public --add-port=4568/tcp --permanent
     
    #重启服务器
    reboot
     
    至此,第一个节点服务器就建好了,如果你用的虚拟机的话,克隆该系统两份.这个时候是不无法通过 service mysql 启动的,因为当前是集群配置,没有没有集群的存在,当然启动失败.
    接下来,再配置两台机器,可以直接克隆,然后改改.
     
    如果是克隆的话,我说一个注意事项,首先,机器启动之前,把网卡地址改一下,不然,与前一台机器冲突了.然后再启动机器,修改静态IP.
     
    #修改 server-id,每个集群中,编号唯一,可改成1.2.3编号
    vi /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
     
    准备就位后,把其中一台作为主节点启动,以创建集群,命令分别如下.
     
    #主节点启动
    systemctl start mysql@bootstrap.service
     
    #非主节点启动
    service  mysql start
     
    另外注意一点,集群中,半数或半数以上的节点挂了,集群也就挂了.当重新启动集群时,能作为主节点启动的,往往是那台最后挂的服务器,因为它保存的数据是最完整的.
     
    #查看哪能节点服务器能作为主节点启动
    vi /var/lib/mysql/grastate.dat
     
    找到 "safe_to_bootstrap: 0"  如果是 1 表示可以作为主节点启动,当三个节点同时挂了,那么全都是0,这时手动修改其中一个为1就好了.

    最终实现的效果是数据库管理工具连接这三个数据库节点,然后,任意操作其中一个数据库,刷新另外两个,都能看到变一致的改变.
     
     
  • 相关阅读:
    MOSS 搜索服务,内容源无法停止的错误
    在服务器场中安装moss sp1
    基于CodeSmith代码生成之数据访问层
    IMVSynchronization接口说明
    [Best Practice]WSPBuilder和QuickPart合作进行Web Partk可视化开发与部署的好方法
    vs2008快捷键生成
    转帖:vs2008使用jquery智能提示
    [Best Practice]如何在SharePoint团队开发中利用WSPBuilder
    规划备用访问映射 (Windows SharePoint Services)
    转帖:[Best Practice]如何在SharePoint团队开发中利用WSPBuilder
  • 原文地址:https://www.cnblogs.com/zbseoag/p/9623124.html
Copyright © 2020-2023  润新知