• openstack搭建2、部署Mariadbgalera


    2、部署MariaDB Galeria集群

    2.1 控制节点安装mariadb(controller1、controller2、controller3)
    Galera是Galera Cluster,是一种为数据库设计的新型的、数据不共享的、高度冗余的高可用方案,galera mariadb就是集成了Galera插件的MariaDB集群,Galera本身是具有多主特性的,所以galera mariadb不是传统的主备模式的集群,而是多主节点架构。

    2.1.1 控制节点添加mariadb-10.4.11的yum源

    [root@controller1:/root]# vim /etc/yum.repos.d/mariadb.repo
    [mariadb]
    name = MariaDB
    baseurl = http://mirror.netinch.com/pub/mariadb//mariadb-10.4.11/yum/centos7-amd64/
    gpgcheck = 0
    enabled = 1
    [root@controller1:/root]# yum makecache
    [root@controller2:/root]# 
    cat > /etc/yum.repos.d/mariadb.repo << EOF
    [mariadb]
    name = MariaDB
    baseurl = http://mirror.netinch.com/pub/mariadb//mariadb-10.4.11/yum/centos7-amd64/
    gpgcheck = 0
    enabled = 1
    EOF
    [root@controller2:/root]# yum makecache
    [root@controller2:/root]# scp /etc/yum.repos.d/mariadb.repo controller3:/etc/yum.repos.d/
    [root@controller3:/root]# yum makecache

    2.1.2 控制节点yum安装mariadb软件包并开启服务

    [root@controller1:/root]# yum -y install MariaDB-server MariaDB-client galera-4 rsync xinetd wget ntpdate
    [root@controller1:/root]# systemctl enable mariadb && systemctl start mariadb
    [root@controller1:/root]# systemctl status mariadb
    [root@controller2:/root]# yum -y install MariaDB-server MariaDB-client galera-4 rsync xinetd wget ntpdate
    [root@controller2:/root]# systemctl enable mariadb && systemctl start mariadb
    [root@controller2:/root]# systemctl status mariadb
    [root@controller3:/root]# yum -y install MariaDB-server MariaDB-client galera-4 rsync xinetd wget ntpdate
    [root@controller3:/root]# systemctl enable mariadb && systemctl start mariadb
    [root@controller3:/root]# systemctl status mariadb
    
     

    2.1.3 控制节点数据库安全设置、登陆数据库设置密码并授权

    [root@controller1:/root]# mysql_secure_installation
    注:Disallow root login remotely? [Y/n] n
    密码:123456
    [root@controller1:/root]# mysql
    MariaDB [(none)]> SET password=PASSWORD('123456');
    //密码设置过的可以省略
    Query OK, 0 rows affected (0.002 sec)
    
    MariaDB [(none)]> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
    Query OK, 0 rows affected (0.002 sec)
    
    MariaDB [(none)]> grant all privileges on *.* to 'mysql'@'%' identified by '123456' with grant option;
    Query OK, 0 rows affected (0.008 sec)
    
    MariaDB [(none)]> grant all privileges on *.* to 'root'@'localhost' identified by '123456' with grant option;
    Query OK, 0 rows affected (0.002 sec)
    
    MariaDB [(none)]> grant all privileges on *.* to 'mysql'@'localhost' identified by '123456' with grant option;
    Query OK, 0 rows affected (0.008 sec)
    
    MariaDB [(none)]> flush privileges;
    Query OK, 0 rows affected (0.001 sec)
    
    MariaDB [(none)]> exit
    Bye
    
    
    [root@controller2:/root]# mysql_secure_installation
    注:Disallow root login remotely? [Y/n] n
    密码:123456
    [root@controller2:/root]# mysql
    MariaDB [(none)]> SET password=PASSWORD('123456');
    //密码设置过的可以省略
    Query OK, 0 rows affected (0.012 sec)
    
    MariaDB [(none)]> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
    Query OK, 0 rows affected (0.008 sec)
    
    MariaDB [(none)]> grant all privileges on *.* to 'mysql'@'%' identified by '123456' with grant option;
    Query OK, 0 rows affected (0.008 sec)
    
    MariaDB [(none)]> grant all privileges on *.* to 'root'@'localhost' identified by '123456' with grant option;
    Query OK, 0 rows affected (0.002 sec)
    
    MariaDB [(none)]> grant all privileges on *.* to 'mysql'@'localhost' identified by '123456' with grant option;
    Query OK, 0 rows affected (0.008 sec)
    
    MariaDB [(none)]> flush privileges;
    Query OK, 0 rows affected (0.001 sec)
    
    MariaDB [(none)]> exit
    Bye
    
    [root@controller3:/root]# mysql_secure_installation
    注:Disallow root login remotely? [Y/n] n
    密码:123456
    [root@controller3:/root]# mysql
    MariaDB [(none)]> SET password=PASSWORD('123456');
    //密码设置过的可以省略
    Query OK, 0 rows affected (0.009 sec)
    
    MariaDB [(none)]> grant all privileges on *.* to 'root'@'localhost' identified by '123456' with grant option;
    Query OK, 0 rows affected (0.002 sec)
    
    MariaDB [(none)]> grant all privileges on *.* to 'mysql'@'localhost' identified by '123456' with grant option;
    Query OK, 0 rows affected (0.008 sec)
    
    MariaDB [(none)]> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
    Query OK, 0 rows affected (0.016 sec)
    
    MariaDB [(none)]> grant all privileges on *.* to 'mysql'@'%' identified by '123456' with grant option;
    Query OK, 0 rows affected (0.008 sec)
    
    MariaDB [(none)]> flush privileges;
    Query OK, 0 rows affected (0.001 sec)
    
    MariaDB [(none)]> exit
    Bye
    
     

    2.1.4 配置MariaDB Galeria 集群 (控制节点全修改配置文件/etc/my.cnf.d/server.cnf)

    [root@controller1:/root]# vim /etc/my.cnf.d/server.cnf
    [server]
    # this is only for the mysqld standalone daemon
    [mysqld]
    #
    # * Galera-related settings
    #
    [galera]
    # Mandatory settings
    ##wsrep_on=ON #开启全同步复制模式
    wsrep_on=ON
    wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so
    wsrep_cluster_address="gcomm://192.168.110.121,192.168.110.122,192.168.110.123"
    binlog_format=row
    default_storage_engine=InnoDB
    innodb_autoinc_lock_mode=2
    ##innodb_autoinc_lock_mode=2 #主键自增模式修改为交叉模式
    ##wsrep_slave_threads=8 #开启并行复制线程,根据CPU核数设置
    #
    # Allow server to accept connections on all interfaces.
    #
    bind-address=192.168.110.121
    #
    # Optional setting
    #wsrep_slave_threads=1
    #innodb_flush_log_at_trx_commit=0 #事务提交每隔1秒刷盘 
    ##wsrep_certify_nonPK=ON #为没有显式申明主键的表生成一个用于certificationtest的主键,默认为ON
    ##query_cache_size=0 #关闭查询缓存 
    ##wsrep_provider_options="gcache.size=4G" #同步复制缓冲池
    wsrep_provider_options="gcache.size=1G"
    wsrep_cluster_name=MariaDB-Galera-Cluster
    wsrep_node_name=controller2
    wsrep_node_address=192.168.110.121
    wsrep_sst_method=rsync
    ##innodb_buffer_pool_size=2G
    # this is only for embedded server
    [embedded]
    # This group is only read by MariaDB servers, not by MySQL.
    # If you use the same .cnf file for MySQL and MariaDB,
    # you can put MariaDB-only options here
    [mariadb]
    # This group is only read by MariaDB-10.4 servers.
    # If you use the same .cnf file for MariaDB of different versions,
    # use this group for options that older servers don't understand
    [mariadb-10.4]
    
    [root@controller2:/root]# vim /etc/my.cnf.d/server.cnf
    [server]
    # this is only for the mysqld standalone daemon
    [mysqld]
    #
    # * Galera-related settings
    #
    [galera]
    # Mandatory settings
    wsrep_on=ON
    wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so
    wsrep_cluster_address="gcomm://192.168.110.122,192.168.110.121,192.168.110.123"
    binlog_format=row
    default_storage_engine=InnoDB
    innodb_autoinc_lock_mode=2
    #
    # Allow server to accept connections on all interfaces.
    #
    bind-address=192.168.110.122
    #
    # Optional setting
    #wsrep_slave_threads=1
    #innodb_flush_log_at_trx_commit=0
    wsrep_provider_options="gcache.size=1G"
    wsrep_cluster_name=MariaDB-Galera-Cluster
    wsrep_node_name=controller1
    wsrep_node_address=192.168.110.122
    wsrep_sst_method=rsync
    # this is only for embedded server
    [embedded]
    # This group is only read by MariaDB servers, not by MySQL.
    # If you use the same .cnf file for MySQL and MariaDB,
    # you can put MariaDB-only options here
    [mariadb]
    # This group is only read by MariaDB-10.4 servers.
    # If you use the same .cnf file for MariaDB of different versions,
    # use this group for options that older servers don't understand
    [mariadb-10.4]
    
    [root@controller3:/root]# vim /etc/my.cnf.d/server.cnf
    [server]
    
    # this is only for the mysqld standalone daemon
    [mysqld]
    
    #
    # * Galera-related settings
    #
    [galera]
    # Mandatory settings
    wsrep_on=ON
    wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so
    wsrep_cluster_address="gcomm://192.168.110.123,192.168.110.122,192.168.110.121"
    binlog_format=row
    default_storage_engine=InnoDB
    innodb_autoinc_lock_mode=2
    #
    # Allow server to accept connections on all interfaces.
    #
    bind-address=192.168.110.123
    #
    # Optional setting
    #wsrep_slave_threads=1
    #innodb_flush_log_at_trx_commit=0
    wsrep_provider_options="gcache.size=1G"
    wsrep_cluster_name=MariaDB-Galera-Cluster
    wsrep_node_name=controller3
    wsrep_node_address=192.168.110.123
    wsrep_sst_method=rsync
    # this is only for embedded server
    [embedded]
    
    # This group is only read by MariaDB servers, not by MySQL.
    # If you use the same .cnf file for MySQL and MariaDB,
    # you can put MariaDB-only options here
    [mariadb]
    
    # This group is only read by MariaDB-10.4 servers.
    # If you use the same .cnf file for MariaDB of different versions,
    # use this group for options that older servers don't understand
    [mariadb-10.4]

    2.1.5 控制节点停止mariadb.service

    [root@controller1:/root]# systemctl daemon-reload
    [root@controller1:/root]# systemctl stop mariadb.service
    [root@controller2:/root]# systemctl daemon-reload
    [root@controller2:/root]# systemctl stop mariadb.service
    [root@controller3:/root]# systemctl daemon-reload
    [root@controller3:/root]# systemctl stop mariadb.service

    2.1.6 启动初始化集群

    [root@controller1:/root]# mysqld_safe --defaults-file=/etc/my.cnf.d/server.cnf --user=mysql --wsrep-new-cluster &
    [root@controller2:/root]# systemctl start mariadb
    [root@controller2:/root]# systemctl status mariadb
    [root@controller2:/root]# systemctl enable mariadb
    [root@controller3:/root]# systemctl start mariadb
    [root@controller3:/root]# systemctl status mariadb
    [root@controller3:/root]# systemctl enable mariadb

    注:两个节点启动成功后,在重新启动第一个节点:(删除第一个节点数据)

    [root@controller1:/root]# pkill -9 mysql
    [1]+ Killed mysqld_safe --defaults-file=/etc/my.cnf.d/server.cnf --user=mysql --wsrep-new-cluster
    [root@controller1:/root]# rm -rf /var/lib/mysql/*
    [root@controller1:/root]# systemctl start mariadb.service
    [root@controller1:/root]# systemctl enable mariadb.service
    Created symlink from /etc/systemd/system/mysql.service to /usr/lib/systemd/system/mariadb.service.
    Created symlink from /etc/systemd/system/mysqld.service to /usr/lib/systemd/system/mariadb.service.
    Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
    [root@controller1:/root]# systemctl status mariadb.service

    注意:每次在第一台集群上,需要使用下面的命令来启动:
    galera_new_cluster


    2.2 登录数据库,查看集群状态

    [root@controller1:/root]# mysql -uroot -p"123456"
    Welcome to the MariaDB monitor. Commands end with ; or \g.
    Your MariaDB connection id is 13
    Server version: 10.4.11-MariaDB MariaDB Server
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    MariaDB [(none)]> show databases;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | mysql |
    | performance_schema |
    +--------------------+
    3 rows in set (0.002 sec)
    
    MariaDB [(none)]> show status like 'wsrep_cluster_size';
    +--------------------+-------+
    | Variable_name | Value |
    +--------------------+-------+
    | wsrep_cluster_size | 3 |
    +--------------------+-------+
    1 row in set (0.002 sec)
    
    MariaDB [(none)]> show status like 'wsrep%';
    +-------------------------------+----------------------------------------------------
    | Variable_name | Value 
    +-------------------------------+----------------------------------------------------
    | wsrep_local_state_uuid | a2b7231d-383a-11ea-b086-83d5778583b5 
    | wsrep_protocol_version | 10 
    | wsrep_last_committed | 5 
    | wsrep_replicated | 0 
    | wsrep_replicated_bytes | 0 
    | wsrep_repl_keys | 0 
    | wsrep_repl_keys_bytes | 0 
    | wsrep_repl_data_bytes | 0 
    | wsrep_repl_other_bytes | 0 
    | wsrep_received | 3 
    | wsrep_received_bytes | 256 
    | wsrep_local_commits | 0 
    | wsrep_local_cert_failures | 0 
    | wsrep_local_replays | 0 
    | wsrep_local_send_queue | 0 
    | wsrep_local_send_queue_max | 1 
    | wsrep_local_send_queue_min | 0 
    | wsrep_local_send_queue_avg | 0 
    | wsrep_local_recv_queue | 0 
    | wsrep_local_recv_queue_max | 1 
    | wsrep_local_recv_queue_min | 0 
    | wsrep_local_recv_queue_avg | 0 
    | wsrep_local_cached_downto | 5 
    | wsrep_flow_control_paused_ns | 0 
    | wsrep_flow_control_paused | 0 
    | wsrep_flow_control_sent | 0 
    | wsrep_flow_control_recv | 0 
    | wsrep_cert_deps_distance | 0 
    | wsrep_apply_oooe | 0 
    | wsrep_apply_oool | 0 
    | wsrep_apply_window | 0 
    | wsrep_commit_oooe | 0 
    | wsrep_commit_oool | 0 
    | wsrep_commit_window | 0 
    | wsrep_local_state | 4 
    | wsrep_local_state_comment | Synced 
    | wsrep_cert_index_size | 0 
    | wsrep_causal_reads | 0 
    | wsrep_cert_interval | 0 
    | wsrep_open_transactions | 0 
    | wsrep_open_connections | 0 
    | wsrep_incoming_addresses | AUTO,AUTO,AUTO 
    | wsrep_cluster_weight | 3 
    | wsrep_desync_count | 0 
    | wsrep_evs_delayed | 
    | wsrep_evs_evict_list | 
    | wsrep_evs_repl_latency | 0/0/0/0/0 
    | wsrep_evs_state | OPERATIONAL 
    | wsrep_gcomm_uuid | d5a23bb7-383a-11ea-b735-86c7a20615b4 
    | wsrep_applier_thread_count | 1 
    | wsrep_cluster_capabilities | 
    | wsrep_cluster_conf_id | 18446744073709551615 
    | wsrep_cluster_size | 3 
    | wsrep_cluster_state_uuid | a2b7231d-383a-11ea-b086-83d5778583b5 
    | wsrep_cluster_status | Primary 
    | wsrep_connected | ON 
    | wsrep_local_bf_aborts | 0 
    | wsrep_local_index | 0 
    | wsrep_provider_capabilities | :MULTI_MASTER:CERTIFICATION:PARALLEL_APPLYING:TRX_REPLAY:ISOLATION:PAUSE:CAUSAL_READS:INCREMENTAL_WRITESET:UNORDERED:PREORDERED:STREAMING:NBO: |
    | wsrep_provider_name | Galera 
    | wsrep_provider_vendor | Codership Oy <info@codership.com> 
    | wsrep_provider_version | 26.4.3(r4535) 
    | wsrep_ready | ON 
    | wsrep_rollbacker_thread_count | 1 
    | wsrep_thread_count | 2 +-------------------------------+---------------------------------------------
    65 rows in set (0.002 sec)
    MariaDB [(none)]> exit
    Bye

    [root@controller1:/var/lib/mysql]# cat grastate.dat gvwstate.dat 

    # GALERA saved state
    version: 2.1
    uuid: ab30c1f7-32df-11eb-8729-57b1b825e677
    seqno: -1
    safe_to_bootstrap: 0
    my_uuid: fbebf07d-3901-11eb-bfa1-7e24330b874e
    #vwbeg
    view_id: 3 1804691c-32e0-11eb-8d84-9f6bddac679d 5
    bootstrap: 0
    member: 1804691c-32e0-11eb-8d84-9f6bddac679d 0
    member: fbebf07d-3901-11eb-bfa1-7e24330b874e 0
    member: b0bfcaa8-32df-11eb-b15e-12d2e6a72f24 0
    #vwend

    [root@controller2:/var/lib/mysql]# cat grastate.dat gvwstate.dat

    # GALERA saved state
    version: 2.1
    uuid: ab30c1f7-32df-11eb-8729-57b1b825e677
    seqno: -1
    safe_to_bootstrap: 0
    my_uuid: d5a23bb7-383a-11ea-b735-86c7a20615b4
    #vwbeg
    view_id: 3 1804691c-32e0-11eb-8d84-9f6bddac679d 5
    bootstrap: 0
    member: 1804691c-32e0-11eb-8d84-9f6bddac679d 0
    member: fbebf07d-3901-11eb-bfa1-7e24330b874e 0
    member: b0bfcaa8-32df-11eb-b15e-12d2e6a72f24 0
    #vwend

    [root@controller3:/var/lib/mysql]# cat grastate.dat gvwstate.dat

    # GALERA saved state
    version: 2.1
    uuid: ab30c1f7-32df-11eb-8729-57b1b825e677
    seqno: -1
    safe_to_bootstrap: 0
    my_uuid: 1804691c-32e0-11eb-8d84-9f6bddac679d
    #vwbeg
    view_id: 3 1804691c-32e0-11eb-8d84-9f6bddac679d 5
    bootstrap: 0
    member: 1804691c-32e0-11eb-8d84-9f6bddac679d 0
    member: fbebf07d-3901-11eb-bfa1-7e24330b874e 0
    member: b0bfcaa8-32df-11eb-b15e-12d2e6a72f24 0
    #vwend

    2.3 每个控制节点/usr/bin 目录下面编辑心跳检测clustercheck脚本

    [root@controller1:/root]# cd /usr/bin/
    [root@controller1:/usr/bin]# wget https://raw.githubusercontent.com/olafz/percona-clustercheck/master/clustercheck
    [root@controller1:/usr/bin]# chmod +x /usr/bin/clustercheck
    [root@controller1:/usr/bin]# ls -ld /usr/bin/clustercheck
    -rwxr-xr-x. 1 root root 3882 Jul 10 16:18 /usr/bin/clustercheck
    [root@controller2:/root]# cd /usr/bin/
    [root@controller2:/usr/bin]# wget https://raw.githubusercontent.com/olafz/percona-clustercheck/master/clustercheck
    [root@controller2:/usr/bin]# chmod +x /usr/bin/clustercheck
    [root@controller2:/usr/bin]# ls -ld /usr/bin/clustercheck
    -rwxr-xr-x. 1 root root 3882 Jul 10 16:19 /usr/bin/clustercheck
    [root@controller3:/root]# cd /usr/bin/
    [root@controller3:/usr/bin]# wget https://raw.githubusercontent.com/olafz/percona-clustercheck/master/clustercheck
    [root@controller3:/usr/bin]# chmod +x /usr/bin/clustercheck
    [root@controller3:/usr/bin]# ls -ld /usr/bin/clustercheck
    -rwxr-xr-x. 1 root root 3882 Jul 10 16:20 /usr/bin/clustercheck
  • 相关阅读:
    X oracle 12c new feature: Automatic Report Capturing Feature
    X 搭建Postgresql configure: error: readline library not found
    X windows上利用vmvare搭建共享存储搭建rac
    洛谷P1397 [NOI2013]矩阵游戏
    BSOJ 6289【NOIP2018模拟赛】黄昏
    BSOJ 4282 秀秀的照片
    BSOJ 5185【11.08题目】暴力破解
    BSOJ 5100 简单的区间
    VUE 项目自适应屏幕和浏览器
    yarn npm区别
  • 原文地址:https://www.cnblogs.com/tartarush/p/14306712.html
Copyright © 2020-2023  润新知