我从未涉足 MySQL 集群,想知道它如何使我受益。什么时候使用它最好,它是否有性能优势?
仅考虑性能,MySQL Cluster 能否击败自定义数据分片 MySQL 解决方案?分片 = 水平分区
当我提到分片时,我正在考虑在应用层进行分片,例如,在独立的 MySQL 实例之间均匀分布记录。对于两台服务器,它可能是 (key mod 2)。
从 MySQL 5.1 开始,数据不再需要完全在内存中。
我读过索引列(我认为整个索引结构)必须仍在内存中(MySQL High Availability,2010,第 533 页,“MySQL Cluster 将所有索引列保留在主内存中”)。
鉴于此,如果没有足够的内存(即,一个巨大的数据库(> 100GB 或 1TB),在具有低内存配置的服务器上运行(例如,2 个数据节点,每个节点具有 1GB 的 RAM))会发生什么情况?
我正在评估 MySQL Cluster 作为 InnoDB 架构的可能替代品。到目前为止,我已经用 10s MB 的数据对其进行了测试,发现 MySQL Cluster 比 InnoDB 慢;但是,有人告诉我 MySQL Cluster 的扩展性要好得多。
需要多少数据才能显示 MySQL 集群与 InnoDB 模式的性能优势?或者,是否有更好的方式来展示 MySQL Cluster 的优点?
编辑
也许重要的一点是:我的集群目前是一个有 4 台机器的异构集群。在每台机器上,我都给了等量的数据和索引内存;分别为 4GB、2GB、2GB 和 1GB。这些机器运行 i7 并通过千兆局域网连接。NumOfReplicas 设置为 2。
编辑
此应用程序是一个使用率较低的分析数据库,它大约有 3 个表 >= 200M 行和 5 个表 <= 10K 行。当我们使用它时,运行我们的聚合函数需要 15 秒。我的老板让我研究 MySQL Cluster,看看我们是否可以提高性能,因为我们认为聚合函数可以很好地并行运行。
我有一个 mysql 集群,有 4 个 api 节点、2 个管理节点和 4 个数据节点。今天,我在尝试连接数据库时遇到问题,所有查询都挂在“打开表”状态。检查日志后,我在日志上发现了这些错误:
Api节点错误:
2015-08-20 19:44:14 15540 [Note] NDB Schema dist: Data node: 5 failed, subscriber bitmask 00
2015-08-20 19:44:14 15540 [Note] NDB Schema dist: Data node: 6 failed, subscriber bitmask 00
2015-08-20 19:44:14 15540 [Note] NDB Schema dist: Data node: 7 failed, subscriber bitmask 00
2015-08-20 19:44:14 15540 [Note] NDB Schema dist: Data node: 8 failed, subscriber bitmask 00
2015-08-20 19:44:14 15540 [Note] NDB Schema dist: cluster failure at epoch 3313124/17.
2015-08-20 …
Run Code Online (Sandbox Code Playgroud) 我有三台要在其上安装 Galera 集群的服务器,我按照此链接进行安装和配置。但是当我想启动第一台服务器时,我收到了这个错误:
root@node107:/home/debian# service mysql start --wsrep-new-clusterping
Job for mysql.service failed. See 'systemctl status mysql.service' and 'journalctl -xn' for details.
Run Code Online (Sandbox Code Playgroud)
和 :
root@node107:/home/debian# journalctl -xn
-- Logs begin at Tue 2016-03-01 19:02:04 IRST, end at Tue 2016-03-01 19:39:32 IRST. --
Mar 01 19:39:31 node107 mysqld[5102]: 160301 19:39:31 [ERROR] WSREP: gcs/src/gcs.cpp:gcs_open():1379: Failed to open channel 'test_cluster' at 'gcomm://192.168.120.107,192.168.120.111,192.168.120.11
Mar 01 19:39:31 node107 mysqld[5102]: 160301 19:39:31 [ERROR] WSREP: gcs connect failed: Connection timed out
Mar 01 19:39:31 node107 mysqld[5102]: …
Run Code Online (Sandbox Code Playgroud) 我有一个将增长超过 250GB 的数据库,所有数据都在 NDB 引擎(2 个数据节点)中,没有其他用于数据存储的 mysql 引擎。
MySQL Cluster NDB 数据库备份的最佳方法或计划是什么。
MySQL Enterprise Backup(MySQL Cluster CGE 的一部分)或任何其他工具是否为 NDB 进行备份?
像我这样的初学者可以轻松完成这些 NDB 备份还是需要专业技能?
亲切的问候,