我在两个不同的数据库(一个是Oracle,另一个是Postgresql)之间的数据库同步上遇到了问题,这两个数据库位于两个(即两个不同的物理位置或地理位置),并且平均互联网速度约为 1Mb / s 。
这是问题所在,假设我有以下表格:
tableORC(此表实际上包含数百万行),以及
tablePG(此表实际上包含十万行)
这两个表(在不同数据库中)将具有不同的列结构,这是这些表的结构:
tableORC :
+-----------------+-------------+--+--+--+
| serial_26_chars | description | | | |
+-----------------+-------------+--+--+--+
| | | | | |
+-----------------+-------------+--+--+--+
tablePG :
+----+------+--+--+--+
| id | desc | | | |
+----+------+--+--+--+
| | | | | |
+----+------+--+--+--+
tableORC
总是会从许多应用程序/ API中获得time-series
的更改,即几乎每秒钟tableORC
上都会有CRUD操作,我的目标是保持tablePG
始终与tableORC
同步,即:
如果最初存在一个serial_26_chars
行,但随后被删除,则与id
值相同的serial_26_chars
将从{{1 }}。
如果连续tablePG
的已更新,则相应description
的{{1}}也将从desc
得到更新。< / p>
如果最初{strong}创建了一个id
行,那么与tablePG
具有相同值的serial_26_chars
将在{{1}上重新创建}。
,请考虑在一秒钟之内id
上实际上有数千个CRUD操作,我希望与serial_26_chars
的同步在互联网上花费的时间大约是一秒钟(不同服务器位置)。
供您参考,tablePG
托管在企业级服务器上,而tableORC
托管在消费级标准台式机上。
那么如何解决这个问题呢?您能建议我一些解决此类问题的方法吗?
谢谢。
答案 0 :(得分:0)
您必须在postgres服务器中实现Web服务以进行更新更改。
第一个选项:对于oracle服务器上的每个操作 第二种选择:每天一次,请查阅oracle服务器中的重做日志更改。
您可以在oracle服务器中使用Pentaho Data Integration之类的东西来查询数据。