Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将本地MySQL数据库与云数据库同步_Mysql_Database_Synchronization_Cloud_Local - Fatal编程技术网

将本地MySQL数据库与云数据库同步

将本地MySQL数据库与云数据库同步,mysql,database,synchronization,cloud,local,Mysql,Database,Synchronization,Cloud,Local,我有两个数据库,一个在伦敦,一个在都柏林。如何在云数据库中获得数据的完整视图?假设数据库结构允许我使用多个位置,这样就不会发生冲突 编辑:数据库中的所有更改都在本地完成。例如:假设我在都柏林有一个传感器,将数据转储到都柏林数据库,在伦敦有另一个传感器,将收集的数据转储到伦敦数据库。如何在云数据库中获取此数据的联合视图?我想从管理界面查询云数据库,而不是其他数据库。您可以在“云”数据库中定义表:对这些表的任何查询都将通过MySQL客户端协议从“云”服务器传输到相关的伦敦/都柏林服务器(请注意,数

我有两个数据库,一个在伦敦,一个在都柏林。如何在云数据库中获得数据的完整视图?假设数据库结构允许我使用多个位置,这样就不会发生冲突

编辑:数据库中的所有更改都在本地完成。例如:假设我在都柏林有一个传感器,将数据转储到都柏林数据库,在伦敦有另一个传感器,将收集的数据转储到伦敦数据库。如何在云数据库中获取此数据的联合视图?我想从管理界面查询云数据库,而不是其他数据库。

您可以在“云”数据库中定义表:对这些表的任何查询都将通过MySQL客户端协议从“云”服务器传输到相关的伦敦/都柏林服务器(请注意,数据不会复制到“云”服务器,因此它不提供任何形式的备份服务):

然后,您可以定义一个由这些联合表的组成部分组成的。然而不幸的是,
UNION
视图既不可插入也不可更新,因此如果需要提交对数据的任何更改,则必须对基础(联合)表进行操作:


您可以在云服务器中设置MariaDB,并将伦敦和都柏林服务器作为主服务器。MariaDB中提供了多主机复制。我假设主机有不同的数据库名称

计划A:Galera集群(如MariaDB中所示),包括3台服务器


计划B:“多源复制”,其中两台物理服务器是主服务器,云服务器是从服务器。同样,这需要一个新的方法。(参见DBHash的答案。)

Presto在这里也很有用

您可以在云计算机上部署presto,使用mysql连接器连接到不同的地理数据库,创建不同的目录模式

编写查询以合并来自两个数据库的结果。比如:

select * from dublin.A
union all
select * from london.A

每个数据库位置有两个Web服务。webservices定期查询各个数据库,并将数据插入云数据库

它是否必须在表定义中具有前缀?@zinking:当你的应用程序代码只能使用
视图时,这有关系吗?听起来你必须有两个稍微不同的表创建脚本。定制的解决方案总是有效的。然而,他认为可能会有一个脱离自我的解决方案。
CREATE VIEW combined AS
  SELECT * FROM london_table
UNION ALL
  SELECT * FROM dublin_table;
select * from dublin.A
union all
select * from london.A