问题标签 [mysql-cluster]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
10983 浏览

mysql - MySQL Active-Active 集群是否可以与 DRBD 一起使用?

我们将 MySQL 5.6 InnoDB 引擎用于我们的数据库目的。目前我们只有一个实例,但是随着我们的应用程序的增长,我们希望我们的数据库处于集群模式。现在我们到目前为止所做的:

我们尝试了 MySQL NDB cluster 7.3.1(实验室版):但我们仍然面临外键问题,而且它似乎不可靠。所以我们尝试了下一个选项。

我们使用 DRBD、pacemaker 和 corosync 尝试了 mysql 主动/被动集群:在两个节点上一切正常。

现在我们想做 Mysql 主动-主动集群,即使在很多谷歌之后我也找不到任何关于它的信息,我们可以用 DRBD 来做,还是有其他方法来做。

请帮忙 !!!!!

0 投票
2 回答
12226 浏览

mysql - MySQL Cluster ERROR 1296 (HY000): 从 NDBCLUSTER 得到错误 157 'Unknown error code'

今天我的数据中心发生了一个断路器故障,导致我的服务器断电。我正在运行一个 4 节点 MySQL 集群。我重新启动了集群,首先是管理节点,然后是数据节点,然后在数据节点运行后,我启动了 SQL 节点。然后我用 ndb_mgm -e SHOW 检查了集群。在我尝试运行查询之前,一切似乎都很好。我得到了这个错误,

错误 1296 (HY000):从 NDBCLUSTER 收到错误 157“未知错误代码”

我检查了 MySQL 日志,没有发现任何错误。然后我尝试完全关闭并重新启动 MySQL 集群并检查关闭和启动之间的配置。一切似乎都结束了。然后我使用 NDBCLUSTER 引擎在另一个数据库上运行查询。查询成功。我试过搜索谷歌,但似乎没有人有任何帮助的答案。我检查了配置,确保 ndbd 正在数据节点上运行,等等。除了这个之外,其他数据库似乎工作正常。我有数据库的备份,但如果可能的话,我最好恢复数据库。

如果有人有任何建议或想法,将不胜感激。

提前致谢。

0 投票
1 回答
5415 浏览

mysql - MySQL Cluster Error: Lock wait timeout exceeded

I was trying to load a ~200G file into MySQL cluster having 4 data nodes, and my DDL for the target table is like this:

after few minutes of loading, I received following error:

and I found some records loaded into the target table. what should I do to overcome this issue?

some of the variables values which might be helpful:

0 投票
0 回答
933 浏览

mysql - 从 mysqldump 备份导入时出现 Mysql 错误 1192

我们正在尝试通过使用 Mysqldump 进行备份然后使用 mysql 将其还原来克隆同一实例上的 Mysql Cluster (ClusterDB) 数据库,如下所示:

但是,在恢复时会引发错误:

第 112 行的错误 1192 (HY000):无法执行给定的命令,因为您有活动的锁定表或活动事务

任何帮助..?谢谢。

0 投票
2 回答
846 浏览

mysql - mysql集群中有2个datanode且RF为1时相同的节点组

我按照教程进行操作,效果很好。这是我show在 ndb_mgm 客户端中编辑时得到的。

没关系。

然后我在managemant节点的config.ini中更改了NoOfReplicas=1,并重启了所有节点。

现在我希望根据这个2 个节点组。

[number_of_node_groups] = number_of_data_nodes / NoOfReplicas

但是我仍然show在 ndb_mgm 客户端中得到相同的命令输出。

我做错什么了吗?请指教。

提前致谢。

0 投票
0 回答
152 浏览

mysql - 基于磁盘的 mysql 集群中的 INITIAL_SIZE 和 AUTO_EXTEND

我正在尝试创建链接中记录的基于磁盘的表。但是,并不清楚在和中选择INITIAL_SIZE字段的大小。从阅读中,我了解到基于事务的操作是必要的。 用于定义提交日志大小。LOG FILE GROUPTABLESPACELOG FILE GROUPINITIAL_SIZE

但是,TABLESPACE如果预先定义INITIAL_SIZE.dat文件,这是否意味着 mysql 表可以具有最大INITIAL_SIZEMb 行。

注意:语法中存在AUTOEXTEND_SIZE& EXTEND_SIZECREATE TABLESPACE但是,它们目前似乎被忽略了。

如果是这样,我如何在 mysql 集群上定义动态大小的磁盘表?

0 投票
3 回答
19492 浏览

mysql - 为什么 MySQL 'insert into ... select ...' 比单独选择要慢得多?

我正在尝试将查询结果存储在临时表中以供进一步处理。

但是由于某种原因,插入需要一分钟,而单独的子选择只需要几秒钟。为什么将数据写入临时表而不是将其打印到我的 SQL 管理工具的输出中需要更长的时间???

更新 我的设置:具有 8 个 Debian Linux ndb 数据节点的 MySQL 7.3.2 集群 1 个 SQL 节点(Windows Server 2012)

我正在运行选择的表是 ndb 表。

我试图找出在使用“插入..”时执行计划是否会有所不同,但它们看起来是一样的:(抱歉格式化,stackoverflow 没有表格)

CREATE TABLE ... SELECT 也很慢。47 秒与 5 秒没有表插入/创建。

0 投票
1 回答
219 浏览

mysql - INSERT INTO ndbtable SELECT FROM 表在 MySQL 集群中使用了荒谬的内存量

如果我将 300,000 行从表(innodb 或 ndb)移动到 ndb 表中,如下所示:

ndb 在完成之前使用越来越多的数据内存。前/峰/后如下

如果我的数学是正确的,我插入 10293 - 5752 = 4541 = 142 MB,但内存峰值为 164013 - 5752 = 158261 = 4945 MB

此外,如果我将插入限制为 50,000 行,前后差异只有 3MB,则峰值为 780MB。

显然,当 ndb 不为空时,这将是一个问题……这里发生了什么?!

0 投票
1 回答
46 浏览

php - 缩放mysql插入的方法

我有一个 php-cli 脚本,可以在亚马逊服务器的 crontab 上进行 +200 万个 mysql 查询(使用索引的 1/2 选择语句,一对 varchar(25)、int(5) 列的 1/2 行插入)。脚本本身需要几个小时才能运行。我想把它缩短到 5 分钟左右。

我想知道如何扩大行插入以缩短时间?(该脚本本质上是一些 api 数据的 foreach 循环,因此我也在研究每次迭代分叉脚本的方法((作为一个单独的问题))

我一直在研究 mysql 集群,但对数据仓库等一无所知。有谁知道这是否是开始寻找的正确地方?像 Hive/Hadoop 这样的东西会更合适吗?

--edit 我在一个 ec2 微实例上作为上下文。我预计将需要迁移到更重的实例,但我想知道是否有任何类似 mysql 的替代品来替代普通的旧 mysql 守护进程可能会有所帮助

0 投票
1 回答
2341 浏览

mysql - 启动没有--initial mysql集群的数据节点

我已经设置了一个带有基于磁盘的表的集群,有 2 个数据节点、一个 mgmt 和 2 个 sql 节点。

集群工作正常......所以我只是想测试它的 HA ,所以我在 linux 提示符下使用 KILL 命令手动杀死了一个数据节点,然后我连接到 sql 节点并将一些记录插入到表中。

然后我尝试启动我用这个命令杀死的datanode

bin/ndbd 不使用任何 --initial

当我在 managmnt 节点上看到日志时,它显示以下错误并且数据节点未启动:

/Node 3:强制节点关闭已完成。在启动阶段 5 期间发生。由错误 2355 引起:“无法恢复架构(资源配置错误)。永久性错误,需要外部行动”。

但是当我使用 --initial 它启动时,它意味着从头开始(如果我们有 100G 的话,复制所有数据文件会很耗时?)

但我希望数据节点从它停止的点开始复制记录(被杀死)

我该怎么做呢?