问题标签 [federated-storage-engine]

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 投票
0 回答
355 浏览

mysql - MariaDB 联合 FederatedX

我有一个问题想知道我应该选择的最佳解决方案是什么。

我在同一个千兆网络上的不同机器上有两个 MariaDB 数据库,都在 centos 7 上运行 MariaDB 10.1.8

一个是 Web 数据库,另一个是 FreeRadius 数据库。

Web 数据库大约 8GB,使用工作台我可以看到每秒大约 18 次 InnoDB 写入。Web 数据库机器是 50GB 磁盘,8Gb Ram,4xCPU 在 PRTG 上,Web 数据库选择传感器延迟大约 140ms-203ms

Radius 数据库大约 20GB,使用工作台我可以看到每秒大约 28 次 InnoDB 写入。Radius 数据库机器是 100GB 磁盘,16GB 内存,6xCPU 在 PRTG 上,Web 数据库选择传感器延迟大约 140ms-300ms

我认为 Radius 数据库通常比 Web 数据库更常用。

现在的问题是我需要创建一个用户每天访问的表。

我需要这个表由 2 个数据库共享,并且能够从两台机器插入数据。

有时网络服务器会先插入,有时是半径服务器会插入它们。Radius Server 将在该表上执行大部分插入操作。这是我需要填充的表

所以我创建的是半径服务器上的触发器,用于在访问时插入(重复密钥更新)。这很完美。

现在的问题是我需要 FEDERATEDX 这个表能够从半径服务器和 Web 服务器插入并与来自 Web 服务器的其他表连接。

插入将主要从 Radius 完成,使用连接进行统计选择将主要从 Web 完成。

因此,根据所有这些信息,最好在 Radius Server 上创建 Visit 表,并以其他方式在 Web Server 上联合它。

如果您需要更多信息,请与我们联系。

多谢 !。

0 投票
0 回答
88 浏览

mysql - 伪装成mysql服务器

对于一个项目,我们正在与几个外部合作伙伴合作。对于这个项目,我们需要访问他们的 MySQL 数据库。问题是,他们做不到。他们的数据库托管在托管环境中,在那里他们没有太多的配置可能性。他们不想让我们访问他们的所有数据。所以他们提出的解决方案是联合存储引擎。

我们现在为他们数据库的每个表都有一个表。问题是,我们获得的数据量是巨大的,未来甚至会增加。这意味着在我们的数据库上执行了很多插入操作。我们的最佳解决方案是拦截所有传入的 MySQL 流量,对其进行处理,然后将其批量存储。我们还考虑过使用 redis 之类的东西来存储数据。

此外,我们计划从不同的合作伙伴那里获得更多数据。他们可能会以不同的方式为我们提供数据。因此,使用 redis 可以让我们将所有数据集中在一个地方。

将数据存储在 mysql 数据库中后将数据复制到 redis 不是一种选择。我们只是无法处理那么多插入,我们需要尽可能快的数据。

TL;DR 有没有办法伪装成 MySQL 服务器,这样我们就可以直接处理通过联合存储引擎接收到的数据?


我们还考虑将黑洞引擎与我们这边的二进制日志结合使用。所以传入的数据只会写入二进制日志,不会存储在数据库中。但是性能仍然会受到磁盘 I/O 的限制。

0 投票
1 回答
2865 浏览

mysql - 如何将联合引擎安装到我的 mariadb?

我知道很多帖子都提到 xampp 中的 mariadb 已经包含联邦引擎,但不幸的是,联邦引擎尚未安装在我的 mariadb 中,如下表所示。

我也尝试按照此处的指南运行此命令INSTALL PLUGIN federated SONAME 'ha_federatedx.so';,但出现错误ERROR 1126 (HY000): Can't open shared library 'D:\xampp\mysql\lib\plugin\ha_federatedx.so.dll' (errno: 2, The specified module could not be found.。谁能告诉我如何在不重新安装 xampp 的情况下安装联合引擎?我的数据库版本是mysql Ver 15.1 Distrib 10.1.10-MariaDB, for Win32 (AMD64)

0 投票
1 回答
69 浏览

mysql - 无法使用联合引擎 mysql 在 ipv6 上连接远程服务器

我们如何使用不同 ipv6 服务器上的联合引擎 mysql 表之一连接到具有 ipv6 地址的远程 mysql 服务器。如果是,我想知道格式。

创建表使用信息(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,用户名 VARCHAR(200)NULL,controllerId VARCHAR(200)NULL,slotId VARCHAR(200)NULL,startdate DATE NULL,starttime TIME NULL,enddate DATE NULL,endtime TIME NULL)ENGINE =FEDERATED CONNECTION='mysql://username:password@ 2222:2222:f:2222::10:3306 /dbthirdeye/usageinfo';

远程服务器:2222:2222:f:2222::10:3306

我的表创建成功

现在,当我从本地服务器插入时,它会抛出以下错误

无法连接到外部数据源:无法连接到 '2607' 上的 MySQL 服务器(101“Network is unreac

我猜这是创建表时 ipv6 地址格式的问题

https://dev.mysql.com/doc/refman/8.0/en/federated-create-connection.html供参考

0 投票
1 回答
201 浏览

mysql - 如何使联合表在 MariaDB 的重启之间持久化?

我正在从 MySql 迁移到 MariaDB,并且我有几个使用联合表的数据库。MariaDB 中一切正常,但是当服务器重新启动时,所有联合表都停止工作,就好像本地 MariaDB 服务器上不存在远程服务器的条目一样。

每次重新启动后,服务器的条目都保留在mysql数据库的服务器表中。如果我尝试使用命令再次添加它们,我会收到一个错误,就好像它们存在一样。如果我尝试使用 删除它们,我会收到一个错误,就好像它们不存在一样。CREATE SERVERDROP SERVER

使它再次工作的唯一方法是手动从服务器表中删除条目DELETE FROM servers并使用命令重新创建它们CREATE SERVER。如何使这些配置持久化?

我搜索了可扩展的,但找不到任何解决方案或提及此问题。这些表在 MySql 中工作正常。日志在重启之间没有提及与 FederatedX 引擎相关的任何内容。我在 CentOS 7 上使用 MariaDB 10.3.18。

0 投票
0 回答
85 浏览

mysql - 获取联合表连接信息

我的MySQL 5.7.23 和 MariaDB 10.1 服务器上有许多联合表(如果这件事我使用的是CREATE SERVER语法)。

我可以使用查询轻松获取这些表的列表:

但是,我需要获取所有这些表的连接信息:

不是我创建的位于mysql. servers.

information_schema我在和mysql数据库中找不到它。

我只能从 table.frm 文件或使用SHOW CREATE TABLE table;仅针对一个表的查询中获取它。

有可能得到我想要的吗?

谢谢。

0 投票
0 回答
73 浏览

mariadb - 一个关于不同集群中的联邦表的问题

我在 galera 集群 1 中有一个 Mysql 服务器(节点 A),在 galera 集群 2 中有一个 Mysql 服务器(节点 B)。节点 A 和节点 B 是无关集群,因此它们具有完全不同的写入节点。

我正在尝试使用 FederatedX 引擎将节点 A 中的表与节点 B 中的表连接起来。但是在 MariaDB 的知识库中发现了这些关于 FederatedX 局限性的词。

处理程序无法知道外部数据库或表是否已更改。这样做的原因是该数据库必须像数据文件一样工作,该文件永远不会被数据库以外的任何东西写入。如果对外部数据库进行任何更改,则可能会破坏本地表中数据的完整性。

这些节点位于不同的集群中,因此必须由其他写入节点更新。但我需要弄清楚在不同节点中加入表的方法。

一些网站说联合表将使用远程服务器的数据。听起来我不必担心……但我不太确定。

所以......我的问题是......不同集群中的联合表是否可以工作?

非常感谢。

0 投票
0 回答
82 浏览

java - 如何使用 UserFederatedStorageProvider 在 keycloak 中获取组()

我创建了一个用户存储提供程序,它通过外部数据库与keycloak连接,并成功获取用户和其他相关详细信息。同样,我试图从外部存储中获取与特定用户关联的组,以将它们填充到用户组页面中,主要是在生成令牌时。

我一直在尝试使用getGroups()UserFederatedStorageProvider 中的方法来执行此操作,但它不会从keycloak的任何地方调用,甚至在生成令牌时也不会调用。我已经在本地部署了keycloak并对其进行了测试。附上我的代码片段以供参考。

我正在使用 UserStorageProviderFactory,然后在我的 UserStorageProvider 类中,我正在为用户和凭据处理上的 CRUD 实现这些。正在为组实现的一个是 UserFederatedStorageProvider。