问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

XtraDB存储引擎的应用

发布网友 发布时间:2022-04-08 07:13

我来回答

2个回答

懂视网 时间:2022-04-08 11:34

部署xtradb cluster时,建议使用3台及以上服务器。原因有二:

  1、默认情况下,如果一个同伴死去或者两个节点之间的通信不稳定,两个节点都将不接受查询。当然这个可以通过添加忽略仲裁来解决:

set globalwsrep_provider_options=”pc.ignore_quorum=true”;

 

  2、当宕掉的那台启动时,会进行同步,负责提供数据的节点角色变为Donor, Donor会有一定的时间无法写入。断开情况如下:

    Mysqldump 适合小库

    Rsync      复制时间内断开,速度快

    XtraBackup 短时间内断开,速度略慢


节点信息

node #1

hostname:percona1

IP:192.168.70.71

 

node #2

hostname:percona2

IP:192.168.70.72

 

node #3

hostname:percona3

IP:192.168.70.73

 

前提条件:

三个节点都安装了centos系统

   防火墙放通了端口:3306,4444,4567和4568

   关闭selinux

 

安装percona xtradb集群

先安装percona官方源

yum installhttp://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

安装epel源,以便安装依赖包socat

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

安装xtradb

yum installPercona-XtraDB-Cluster-56

 

官网安装参考地址:

https://www.percona.com/doc/percona-xtradb-cluster/5.6/installation/yum_repo.html

 

配置节点

官网参考地址:

https://www.percona.com/doc/percona-xtradb-cluster/5.6/howtos/virt_sandbox.html

 

配置第一个节点

第一个节点的/etc/my.cnf配置内容如下:

[mysqld]

 

datadir=/var/lib/mysql

user=mysql

 

# Path to Galeralibrary

wsrep_provider=/usr/lib64/libgalera_smm.so

 

# Clusterconnection URL contains the IPs of node#1, node#2 and node#3

wsrep_cluster_address=gcomm://192.168.70.71,192.168.70.72,192.168.70.73

 

# In order forGalera to work correctly binlog format should be ROW

binlog_format=ROW

 

# MyISAM storageengine has only experimental support

default_storage_engine=InnoDB

 

# This changeshow InnoDB autoincrement locks are managed and is a requirement for Galera

innodb_autoinc_lock_mode=2

 

# Node #1address

wsrep_node_address=192.168.70.71

 

# SST method

wsrep_sst_method=xtrabackup-v2

 

# Cluster name

wsrep_cluster_name=my_centos_cluster

 

# Authenticationfor SST method

wsrep_sst_auth="sstuser:s3cret"

 

在此之后,第一个节点可以启动以下命令:

[root@percona1 ~]#/etc/init.d/mysql bootstrap-pxc

如果在centos7上运行本教程,系统服务如下:

[root@percona1 ~]#  systemctl start mysql@bootstrap.service

 

此命令将启动集群初步wsrep_cluster_address设置为gcomm://。这样的集群将自举以防后面的节点或MySQL重新开始,这不需要改变该配置文件。

 

第一个节点启动后,集群状态检测:

mysql> show status like ‘wsrep%‘;

+----------------------------+--------------------------------------+

| Variable_name              |Value                                |

+----------------------------+--------------------------------------+

| wsrep_local_state_uuid     | c2883338-834d-11e2-0800-03c9c68e41ec |

...

| wsrep_local_state          | 4                                    |

| wsrep_local_state_comment  | Synced                               |

...

| wsrep_cluster_size         | 1                                    |

| wsrep_cluster_status       | Primary                              |

| wsrep_connected            |ON                                   |

...

| wsrep_ready                |ON                                   |

+----------------------------+--------------------------------------+

40 rows in set (0.01 sec)

该输出显示集群已成功自举

 

 

修改root密码,以及删除空用户

UPDATE mysql.user SET password=PASSWORD("Passw0rd")where user=‘root‘;

delete from mysql.user whereuser=‘‘;

FLUSH PRIVILEGES;

 

 

为了使xtrabackup成功建立快照,需要给新用户建立适当的权限。

mysql@percona1> CREATE USER‘sstuser‘@‘localhost‘ IDENTIFIED BY ‘s3cret‘;

mysql@percona1> GRANT RELOAD,LOCK TABLES, REPLICATION CLIENT ON *.* TO ‘sstuser‘@‘localhost‘;

mysql@percona1> FLUSH PRIVILEGES;

注:MySQL的root账户也可用于建立PerconaXtrabackup的SST,但建议使用不同用户做这一点。

 

配置第二个节点

第二个节点的/etc/my.cnf配置内容如下:

 

[mysqld]

 

datadir=/var/lib/mysql

user=mysql

 

# Path to Galera library

wsrep_provider=/usr/lib64/libgalera_smm.so

 

# Cluster connection URLcontains IPs of node#1, node#2 and node#3

wsrep_cluster_address=gcomm://192.168.70.71,192.168.70.72,192.168.70.73

 

# In order for Galera to workcorrectly binlog format should be ROW

binlog_format=ROW

 

# MyISAM storage engine hasonly experimental support

default_storage_engine=InnoDB

 

# This changes how InnoDBautoincrement locks are managed and is a requirement for Galera

innodb_autoinc_lock_mode=2

 

# Node #2 address

wsrep_node_address=192.168.70.72

 

# Cluster name

wsrep_cluster_name=my_centos_cluster

 

# SST method

wsrep_sst_method=xtrabackup-v2

 

#Authentication for SSTmethod

wsrep_sst_auth="sstuser:s3cret"

 

第二个节点的启动命令

/etc/init.d/mysql start

 

服务器已经启动后,它会自动接收状态快照传送。因此,第二个节点不会有空root密码了。

 

 

这是第二个节点的状态

mysql> show status like ‘wsrep%‘;

+----------------------------+--------------------------------------+

| Variable_name             | Value                               |

+----------------------------+--------------------------------------+

| wsrep_local_state_uuid    | c2883338-834d-11e2-0800-03c9c68e41ec |

...

| wsrep_local_state         | 4                                   |

| wsrep_local_state_comment | Synced                              |

...

| wsrep_cluster_size        | 2                                   |

| wsrep_cluster_status      | Primary                             |

| wsrep_connected           | ON                                  |

...

| wsrep_ready               | ON                                  |

+----------------------------+--------------------------------------+

40 rows in set (0.01 sec)

 

 

配置第三个节点

第三个节点的/etc/my.cnf配置文件

[mysqld]

 

datadir=/var/lib/mysql

user=mysql

 

# Path to Galera library

wsrep_provider=/usr/lib64/libgalera_smm.so

 

# Cluster connection URLcontains IPs of node#1, node#2 and node#3

wsrep_cluster_address=gcomm://192.168.70.71,192.168.70.72,192.168.70.73

 

# In order for Galera to workcorrectly binlog format should be ROW

binlog_format=ROW

 

# MyISAM storage engine hasonly experimental support

default_storage_engine=InnoDB

 

# This changes how InnoDBautoincrement locks are managed and is a requirement for Galera

innodb_autoinc_lock_mode=2

 

# Node #3 address

wsrep_node_address=192.168.70.73

 

# Cluster name

wsrep_cluster_name=my_centos_cluster

 

# SST method

wsrep_sst_method=xtrabackup-v2

 

#Authentication for SSTmethod

wsrep_sst_auth="sstuser:s3cret"

 

然后启动节点

/etc/init.d/mysql start

 

服务器已经启动后,它会自动接收状态快照传送。

 

集群状态查看:

mysql> show status like ‘wsrep%‘;

+----------------------------+--------------------------------------+

| Variable_name             | Value                               |

+----------------------------+--------------------------------------+

| wsrep_local_state_uuid    | c2883338-834d-11e2-0800-03c9c68e41ec |

...

| wsrep_local_state         | 4                                   |

| wsrep_local_state_comment | Synced                              |

...

| wsrep_cluster_size        | 3                                   |

| wsrep_cluster_status      | Primary                             |

| wsrep_connected           | ON                                  |

...

| wsrep_ready               | ON                                  |

+----------------------------+--------------------------------------+

40 rows in set (0.01 sec)

该输出证实了第三个节点加入集群。

 

测试复制

 

在节点2上创建数据库

mysql@percona2> CREATE DATABASE percona;

Query OK, 1row affected(0.01 sec)

 

在节点3上创建表

mysql@percona3> USE percona;

Database changed

 

mysql@percona3> CREATE TABLE example (node_id INT PRIMARY KEY, node_name VARCHAR(30));

Query OK, 0rows affected(0.05 sec)

 

在节点1上插入数据

mysql@percona1> INSERT INTO percona.example VALUES (1, ‘percona1‘);

QueryOK, 1 rowaffected (0.02 sec)

 

在第二个节点上查看数据

mysql@percona2> SELECT * FROM percona.example;

+---------+-----------+

| node_id | node_name |

+---------+-----------+

|       1 | percona1  |

+---------+-----------+

1 row in set (0.00 sec)

 

集群搭建完成


本文出自 “楊雲” 博客,谢绝转载!

Xtradb+Haproxy高可用数据库集群(一)xtradb部署篇

标签:percona xtradb cluster   sysbench   haproxy   

热心网友 时间:2022-04-08 08:42

对于高负载的MySQL应用来说,如果不需要MySQL官方技术支持的话,完全可以使用XtraDB来代替InnoDB存储引擎。此外,Percona还提供了打了补丁的MySQL版本,这些补丁对MySQL很多方面进行了改进,性能提高,增加更多监控参数等等。据说JavaEye的数据库就是使用了Percona的版本。
当前XtraDB的最新版本是1.0.4-8(release-8)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
iPhone XR电量百分比怎么设置 Django如何使用网页嵌套网页(2023年最新解答) 社保之前工作缴了 后面工作不缴。自己要怎么续上?自己缴要缴多少?每... 壁挂炉数字不亮了怎么回事了解壁挂炉数字不亮的原因及解决方法_百度知 ... 单反长镜头和短镜头什么区别 ai的剪切蒙版快捷键是什么 自学当程序员需要哪些基础 程序员,需要学什么课程 想当一名出色的程序员数学必须要很好吗 华为路由器192.168.1.1怎样设置? 成功人士创业真实励志故事有哪些 纟字旁右青什么字 绞丝旁加个飘是什么字? 左面一个绞丝旁右边一个火车票的票念什么字 绞丝旁,再加一个“甘”,这是个什么字?? 曰、纟、才、口、亻、衤、青、里、氐、夭、未、呆这些偏旁可以组成哪些字 一个绞丝旁一个票是什么字 一个钅一个青是什么成语? 左边纟旁右边青字,那是字吗?如果是怎么拼带声调 急求:绞丝旁+青怎么打出来? 纟青 怎么念 纟+青是什么字 绞丝旁加青念什么 绞丝旁加青是什么字 绞丝旁加一个青读什么 一个绞丝旁 一个青是什么字? 一个绞丝旁右边一个青色的青是什么字 如何计算有源功率因数校正电路输出电容 有源功率因数校正技术有功功率怎么算 有源功率因数校正电路simulink仿真输出电压过小是什么原因 nba2k22出生日期 会车中遇到对方来车行进有困难需借道时,应怎样做? 2k22几点开始算新的一天 会车中道路一侧有障碍,双方机动车应如何做? 文明行车,文明礼让 nba2k22什么时候最便宜 在狭窄路段会车有困难时双方车辆应如何行驶 nba2k22多久给一次代言费 手机无法登录QQ,一直显示登录超时,怎么办?谢谢! nba2k22辉煌生涯潜力 行车道路中,遇到障碍物,是有障碍一方先行,还是无障碍一方先行? nba2k22怎么出场活动 在山区道路遇对向来车时,应怎样会车? nba2k22怎么看手机信息 行车道路中遇到障碍物,是有障碍一方先行还是无障碍一方先行? 机动车在狭窄的坡路会车时,正确的会车方法是什么? NBA2K22显示不满足自创球员 会车的时候 为什么是有障碍物的一方 让无障碍的一方 不符合常理啊 nba2k22怎么去财务办公室拿钱 在会车时,遇有障碍物只能单车通行时,应按右侧通行的规定,让前方无障碍的车辆先行。属于 答