MariaDB Federated FederatedX

时间:2018-03-03 21:57:13

标签: mysql mariadb federated-storage-engine

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

我在同一千兆网络上的不同机器上有两个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 Ram,6xCPU 在PRTG上,Web数据库选择传感器延迟大约140ms-300ms

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

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

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

有时Web服务器将首先插入,有时将是将插入它们的radius服务器。 Radius Server将执行该表上的大多数插入操作。 这是我需要填充的表格

CREATE TABLE `visitas` (
  `idUsuario` int(10) unsigned NOT NULL,
  `idInstalacion` int(10) unsigned NOT NULL,
  `fVisita` date DEFAULT NULL,
  `tAcceso` varchar(25) DEFAULT NULL,
  `nUpdates`  int(10) unsigned NOT NULL,
  UNIQUE KEY `Visitas` (`idUsuario`,`idInstalacion`,`fVisita`),
  KEY `idUsuario` (`idUsuario`),
  KEY `idInstalacion` (`idInstalacion`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

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

DELIMITER $$;
create TRIGGER UpdateVisitas AFTER INSERT ON radacct
FOR EACH ROW 
BEGIN
    INSERT into visitas (
       select u.department as idUsuario,u.company as idInstalacion,DATE(r.acctstarttime) as fVisita,'Radius' as tAcceso,0 as nUpdates    from radacct r,userinfo u where r.username=u.username  and r.radacctid=NEW.radacctid     
    ) ON DUPLICATE KEY UPDATE visitas.tAcceso='Radius',nUpdates=(1+nUpdates) ;
END$$

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

插入将主要来自Radius,并且选择带有连接的统计数据将主要来自Web。

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

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

非常感谢!

0 个答案:

没有答案