mariadb集群配置(主从和多主)

 

mariadb主从

主从多用于网站架构,因为主从的同步机制是异步的,数据的同步有一定延迟,也就是说有可能会造成数据的丢失,但是性能比较好,因此网站大多数用的是主从架构的数据库,读写分离必须基于主从架构来搭建

  1. mysql主从配置
  2. yum配置
  3. [mariadb]
  4. name=MariaDB
  5. baseurl=http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64/
  6. gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
  7. gpgcheck=1
  8.  
  9. 服务器1 MariaDB01 192.168.254.28
  10. 服务器2 MariaDB02 192.168.254.29
  11. 操作系统: CentOS7.3
  12. 数据库版本: MariaDB-10.3.7
  13. 主从关系: MariaDB01为主,MariaDB02为从
  14.  
  15. MariaDB01
  16. 1. 修改配置文件
  17. vi /etc/my.cnf.d/server.cnf
  18. 在[mysqld]下加入以下
  19. server-id=1
  20. log-bin=mysql-bin
  21.  
  22. 2. 重启mysql服务
  23. service mysqld restart
  24.  
  25. 3.创建主从连接帐号与授权
  26. CREATE USER 'slave'@'%' IDENTIFIED BY 'slave';
  27. GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
  28. flush privileges;
  29.  
  30. 4.show master status
  31.  
  32. MariaDB02
  33. 1. 修改配置文件
  34. vi /etc/my.cnf.d/server.cnf
    server-id=2
    2. 重启mysql服务
  35. service mysqld restart
  36.  
  37. 3.登录数据库
  38. mysql -uroot -proot4. 建立主从连接
  39. CHANGE MASTER TO MASTER_HOST='192.168.254.28', MASTER_USER='slave', MASTER_PASSWORD='slave', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1443;
  40. start slave;
  41.  
  42. 5.验证!!!
  43. create database test01
  44. use test01
  45. create table students(id int(10), name char(20), age int(10))
  46. 之后查看从节点是否有test01数据库和students
  47.  
  48. 6.查看mysql二进制log
  49. mysqlbinlog /var/lib/mysql/mysql-bin.000001
  50.  
  51. #如果出现不同步可以执行以下步骤
  52. stop slave
  53. set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
  54. start slave
  55. 或者
  56. stop slave;
  57. mysql> change master to
  58. master_host='192.168.254.28',
  59. master_user='user',
  60. master_password='pwd',
  61. master_port=3306,
  62. master_log_file='mysql-bin.000008',
  63. master_log_pos=483;
  64. start slave

mariadb galera集群(多主)

galera集群多用于关键性业务,因为galera集群为了数据的一致性,采用的是同步的机制,这就使galera牺牲了一部分性能来换取数据一致性。

  1. 实战Mariadb10.310.3自带galera软件) galera Cluster集群架构
  2. Mariadb galera Cluster安装:
  3. 操作系统:Centos7.3版本
  4. 集群数量:3个节点
  5. 主机信息:
  6. 192.168.153.142 node1 selinux=disabled firewalld关闭
  7. 192.168.153.143 node2 selinux=disabled firewalld关闭
  8. 192.168.153.144 node3 selinux=disabled firewalld关闭
  9.  
  10. 搭建步骤
  11. 1.主机之间互相解析:三台节点都要执行
  12. vim /etc/hosts
  13. 192.168.153.142 node1
  14. 192.168.153.143 node2
  15. 192.168.153.144 node3
  16.  
  17. 2.安装软件包
  18. 第一种方法:(yum install -y MariaDB-server MariaDB-client galera
  19. 配置yum安装源和配置mariadb galera安装源
  20. yum源配置挂iso
  21. 设置mariadbyum源并安装(所有节点都要)
  22. 修改yum源文件
  23. vi /etc/yum.repos.d/mariadb.repo
  24. [mariadb]
  25. name = MariaDB
  26. baseurl = http://yum.mariadb.org/10.3.5/centos74-amd64
  27. gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
  28. gpgcheck=1
  29. enabled=0
  30. 安装galera软件时需要解决它的依赖包:boost-program-options.x86_64 (直接yum源安装即可)
  31.  
  32. 3.mariadb初始化 (三个节点都需要执行)
  33. 安装完成后会提示需要对mariadb进行初始化(设置密码)
  34. systemctl start mariadb
  35. mysql_secure_installation (按提示设置mysql密码)
  36. systemctl stop mariadb
  37.  
  38. 4.配置galera
  39. 主节点配置文件server.cnf
  40. vim /etc/my.cnf.d/server.cnf
  41. [galera]
  42. wsrep_on=ON
  43. wsrep_provider=/usr/lib64/galera/libgalera_smm.so #galera的库文件的地址
  44. wsrep_cluster_address="gcomm://192.168.153.142,192.168.153.143,192.168.153.144" #各节点的ip
  45. wsrep_node_name=node1         #节点主机名  
  46. wsrep_node_address=192.168.153.142 #节点ip
  47. binlog_format=row          #二进制日志设置为行模式
  48. default_storage_engine=InnoDB    #使用的默认引擎
  49. innodb_autoinc_lock_mode=2     #性能最好
  50. wsrep_slave_threads=1 #并行复制线程数
  51. innodb_flush_log_at_trx_commit=0 #0.log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行。该模式下在事务提交的时候,不会主动触发写入磁盘的操作。
  52.                      #1:每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去,该模式为系统默认。
  53.                      #2:每次事务提交时MySQL都会把log buffer的数据写入log file,但是flush(刷到磁盘)操作并不会同时进行。该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作
  54. innodb_buffer_pool_size=120M #设置缓存池大小
  55. wsrep_sst_method=rsync #远程同步
  56. wsrep_causal_reads=ON         #避免各个节点的数据不一致,这种情况需要等待全同步复制
  57. 将此文件复制到mariadb-2mariadb-3,注意要把 wsrep_node_name wsrep_node_address 改成相应节点的 hostname ip
  58.  
  59. 5.启动集群服务:
  60. 启动 MariaDB Galera Cluster 服务:
    (第一次启动要用初始化:mysqld_safe --wsrep_cluster_address=gcomm://192.168.254.24,192.168.254.27,192.168.254.36 >/dev/null &)
  61. [root@node1 ~]# /bin/galera_new_cluster
  62. 剩余两节点启动方式为:
  63. [root@node1 ~]# systemctl start mariadb
  64. 查看集群状态:(集群服务使用了45673306端口))
  65. [root@node1 ~]# netstat -tulpn | grep -e 4567 -e 3306
  66. tcp 0 0 0.0.0.0:4567 0.0.0.0: LISTEN 3557/mysqld
  67. tcp6 0 0 :::3306 ::: LISTEN 3557/mysqld
  68.  
  69. 6.验证集群状态:
  70. node1上执行:
  71. [root@node1 ~]# mysql -uroot -p ##进入数据库
  72. 查看是否启用galera插件
  73. 连接mariadb,查看是否启用galera插件
  74. MariaDB [(none)]> show status like "wsrep_ready";
  75. +---------------+-------+
  76. | Variable_name | Value |
  77. +---------------+-------+
  78. | wsrep_ready | ON |
  79. +---------------+-------+
  80. 1 row in set (0.004 sec)
  81. 目前集群机器数
  82. MariaDB [(none)]> show status like "wsrep_cluster_size";
  83. +--------------------+-------+
  84. | Variable_name | Value |
  85. +--------------------+-------+
  86. | wsrep_cluster_size | 3 |
  87. +--------------------+-------+
  88. 1 row in set (0.001 sec)
  89. 查看集群状态
  90. MariaDB [(none)]> show status like "wsrep%";
  91. +------------------------------+----------------------------------------------------------------+
  92. | Variable_name | Value |
  93. +------------------------------+----------------------------------------------------------------+
  94. | wsrep_apply_oooe | 0.000000 |
  95. | wsrep_apply_oool | 0.000000 |
  96. | wsrep_apply_window | 1.000000 |
  97. | wsrep_causal_reads | 14 |
  98. | wsrep_cert_deps_distance | 1.200000 |
  99. | wsrep_cert_index_size | 3 |
  100. | wsrep_cert_interval | 0.000000 |
  101. | wsrep_cluster_conf_id | 22 |
  102. | wsrep_cluster_size | 3 | ##集群成员
  103. | wsrep_cluster_state_uuid | b8ecf355-233a-11e8-825e-bb38179b0eb4 | ##UUID 集群唯一标记
  104. | wsrep_cluster_status | Primary | ##主服务器
  105. | wsrep_commit_oooe | 0.000000 |
  106. | wsrep_commit_oool | 0.000000 |
  107. | wsrep_commit_window | 1.000000 |
  108. | wsrep_connected | ON | ##当前是否连接中
  109. | wsrep_desync_count | 0 |
  110. | wsrep_evs_delayed | |
  111. | wsrep_evs_evict_list | |
  112. | wsrep_evs_repl_latency | 0/0/0/0/0 |
  113. | wsrep_evs_state | OPERATIONAL |
  114. | wsrep_flow_control_paused | 0.000000 |
  115. | wsrep_flow_control_paused_ns | 0 |
  116. | wsrep_flow_control_recv | 0 |
  117. | wsrep_flow_control_sent | 0 |
  118. | wsrep_gcomm_uuid | 0eba3aff-2341-11e8-b45a-f277db2349d5 |
  119. | wsrep_incoming_addresses | 192.168.153.142:3306,192.168.153.143:3306,192.168.153.144:3306 | ##连接中的数据库
  120. | wsrep_last_committed | 9 | ##sql 提交记录
  121. | wsrep_local_bf_aborts | 0 | ##从执行事务过程被本地中断
  122. | wsrep_local_cached_downto | 5 |
  123. | wsrep_local_cert_failures | 0 | ##本地失败事务
  124. | wsrep_local_commits | 4 | ##本地执行的sql
  125. | wsrep_local_index | 0 |
  126. | wsrep_local_recv_queue | 0 |
  127. | wsrep_local_recv_queue_avg | 0.057143 |
  128. | wsrep_local_recv_queue_max | 2 |
  129. | wsrep_local_recv_queue_min | 0 |
  130. | wsrep_local_replays | 0 |
  131. | wsrep_local_send_queue | 0 | ##本地发出的队列
  132. | wsrep_local_send_queue_avg | 0.000000 | ##队列平均时间间隔
  133. | wsrep_local_send_queue_max | 1 |
  134. | wsrep_local_send_queue_min | 0 |
  135. | wsrep_local_state | 4 |
  136. | wsrep_local_state_comment | Synced |
  137. | wsrep_local_state_uuid | b8ecf355-233a-11e8-825e-bb38179b0eb4 | ##集群ID
  138. | wsrep_protocol_version | 8 |
  139. | wsrep_provider_name | Galera |
  140. | wsrep_provider_vendor | Codership Oy <info@codership.com> |
  141. | wsrep_provider_version | 25.3.23(r3789) |
  142. | wsrep_ready | ON | ##插件是否应用中
  143. | wsrep_received | 35 | ##数据复制接收次数
  144. | wsrep_received_bytes | 5050 |
  145. | wsrep_repl_data_bytes | 1022 |
  146. | wsrep_repl_keys | 14 |
  147. | wsrep_repl_keys_bytes | 232 |
  148. | wsrep_repl_other_bytes | 0 |
  149. | wsrep_replicated | 5 | ##随着复制发出的次数
  150. | wsrep_replicated_bytes | 1600 | ##数据复制发出的字节数
  151. | wsrep_thread_count | 2 |
  152. +------------------------------+----------------------------------------------------------------+
  153. 58 rows in set (0.003 sec)
  154. 查看连接的主机
  155. MariaDB [(none)]> show status like "wsrep_incoming_addresses";
  156. +--------------------------+----------------------------------------------------------------+
  157. | Variable_name | Value |
  158. +--------------------------+----------------------------------------------------------------+
  159. | wsrep_incoming_addresses | 192.168.153.142:3306,192.168.153.143:3306,192.168.153.144:3306 |
  160. +--------------------------+----------------------------------------------------------------+
  161. 1 row in set (0.002 sec)
  162.  
  163. 7.测试集群mariad数据是否同步
  164. MariaDB [(none)]> create database lizk;
  165. Query OK, 1 row affected (0.010 sec)
  166.  
  167. MariaDB [(none)]> show databases;
  168. +--------------------+
  169. | Database |
  170. +--------------------+
  171. | china |
  172. | hello |
  173. | hi |
  174. | information_schema |
  175. | lizk |
  176. | mysql |
  177. | performance_schema |
  178. | test |
  179. +--------------------+
  180. 8 rows in set (0.001 sec)
  181. 在其他两个节点上可以查看lizk库已经同步。
  182.  
  183. 注意:
  184. 如果galera_new_cluster 报错
  185. vim /var/lib/mysql/grastate.dat
  186. safe_to_bootstrap更改为1
  187. # GALERA saved state
  188. version: 2.1
  189. uuid: a393feef-f639-11e8-9b89-4e75f9b8fb0f
  190. seqno: -1
  191. safe_to_bootstrap: 1

mariadb 数据库集群配置的更多相关文章

  1. MariaDB——数据库集群

    Mariadb数据库集群 mariadb主从 主从多用于网站架构,因为主从的同步机制是异步的,数据的同步有一定的延迟性,也就是说可能会导致数据丢失,但是性能比较好,因此网站大多数 用的是主从架构的数据 ...

  2. mariadb数据库集群

    1.主从架构: 每个从节点需要一个dump线程连接主节点 异步:效率高,安全性低,有延迟 同步:效率低,安全性高,无延迟 主:可读可写,(dump thread) 从:可读不可写 (sql threa ...

  3. HBase数据库集群配置

    0,HBase简介 HBase是Apache Hadoop中的一个子项目,是一个HBase是一个开源的.分布式的.多版本的.面向列的.非关系(NoSQL)的.可伸缩性分布式数据存储模型,Hbase依托 ...

  4. HBase数据库集群配置【转】

    https://www.cnblogs.com/ejiyuan/p/5591613.html HBase简介 HBase是Apache Hadoop中的一个子项目,是一个HBase是一个开源的.分布式 ...

  5. 构建 MariaDB Galera Cluster 分布式数据库集群(一)

    MariaDB Galera Cluster 介绍 简介 MariaDB集群是MariaDB同步多主机集群,仅支持XtraDB(详见本文结尾注释)/InnoDB存储引擎(虽然有对MyISAM实验支持 ...

  6. mariadb集群配置(主从和多主)

    mariadb主从 主从多用于网站架构,因为主从的同步机制是异步的,数据的同步有一定延迟,也就是说有可能会造成数据的丢失,但是性能比较好,因此网站大多数用的是主从架构的数据库,读写分离必须基于主从架构 ...

  7. MariaDB集群配置(主从和多主)

    1.mariadb主从 主从多用于网站架构,因为主从的同步机制是异步的,数据的同步有一定延迟,也就是说有可能会造成数据的丢失,但是性能比较好,因此网站大多数用的是主从架构的数据库,读写分离必须基于主从 ...

  8. MySQL数据库集群进行正确配置步骤

    MySQL数据库集群进行正确配置步骤 2010-06-09 10:47 arrowcat 博客园 字号:T | T 我们今天是要和大家一起分享的是对MySQL数据库集群进行正确配置,我前两天在相关网站 ...

  9. mycat数据库集群系列之mycat读写分离安装配置

    最近在梳理数据库集群的相关操作,现在花点时间整理一下关于mysql数据库集群的操作总结,恰好你又在看这一块,供一份参考.本次系列终结大概包括以下内容:多数据库安装.mycat部署安装.数据库之读写分离 ...

随机推荐

  1. IP-master

    http://www.igotaobao.cn/IP-master/

  2. webstorm激活码2020--定期更新

    2020年8月22日更新 一般错误关闭软件重填即可,key is invalid 错误需要恢复破解或者重装,才能使用 V8AF5QDT5R-eyJsaWNlbnNlSWQiOiJWOEFGNVFEVD ...

  3. Latex — 写作编译过程中遇到问题记录与总结

    最近在训练的时候,又开始用Latex进行写作.碰到了很多问题,将问题进行记录与总结. 一.输出中文的问题 由于写作的时候用的是中文,而之前用的是英文,故碰到的第一个问题就是中文的问题.我之前下的是Wi ...

  4. Flink启动脚本改造--制作适用于CDH的Flink parcel包

    #!/usr/bin/env bash ################################################################################ ...

  5. 7. Jackson用树模型处理JSON是必备技能,不信你看

    每棵大树,都曾只是一粒种子.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众号[BA ...

  6. CF1271C Shawarma Tent 题解

    通过分析样例可以发现,离学校越近的地点经过的路线也会越多,因此我们只要考虑学校周围的八个点即可.而且可以发现,对于一个点,路线会经过这个点的节点是确定的.因此在输入的时候可以统计学校周围八个节点被经过 ...

  7. 也谈基于Web的含工作流项目的一般开发流程

    项目包含的通用模块代码等我有时间一并剥离贡献出来(基于WebSocket的通知引擎,工作流整合模块,自定义表单,基于RBAC权限设计),最近太忙了,Web项目有一段时间没碰,有点生疏的感觉,主要在忙G ...

  8. oracle impdp 数据迁移 至RDS 亚马逊云

    背景: 公司年底打算将aws rds11.2.0.4 oracle 数据库升级到19c,所以需要进行升级测试,所以需要我把线上的库数据迁移到一台测试的rds oracle 亚马逊云的数据库中,然后升级 ...

  9. 03.AOF持久化机制配置与工作流程

    一.AOF持久化的配置 配置文件redis.conf,AOF持久化默认是关闭的,默认是打开RDB持久化 appendonly yes     二.工作流程: 打开AOF持久化机制之后,redis每次接 ...

  10. 力扣Leetcode 33. 搜索旋转排序数组

    33. 搜索旋转排序数组 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 搜索一个给定的目标值, ...