公司業務,想要搭建一個醫院的ODS伺服器:将醫院不同廠家的不同資料庫版本資料庫類型整到一台伺服器中,最初想要是同步資料庫原生同步機制,最理想的是sqlserver釋出訂閱,但是後來發現釋出訂閱不能釋出無主鍵表,是以有了接下來的ODS方案研究
搭建ODS實作資料庫同步
開始的時候使用sqlserver本身的釋出訂閱機制,但是後來,發現他不能訂閱沒有主鍵的表,而醫院資料庫中沒有主鍵的表還挺多的,所有這裡需要找到解決不能同步無主鍵表同步的問題,或者是另一個資料庫同步機制
我這裡提供三個解決方案:
一:kettle+釋出訂閱
Kettle不是基于日志,所有如果無主鍵表很大,速度上會有問題,100萬資料,1min,一張表
二:AlwaysOn(2012才有)
搭建起來很麻煩,且2012才有
三:日志傳送
https://docs.microsoft.com/zh-cn/sql/database-engine/log-shipping/about-log-shipping-sql-server?view=sql-server-2017
http://www.cnblogs.com/chenmh/p/3671030.html
https://www.cnblogs.com/maximo/p/5455041.html
這裡配置共享檔案時報的不能通路指定共享檔案夾的問,弄得很久,對照第三個連結穩穩的沒問題:可悲的是備份庫不可讀
四:鏡像
副本不能用
五:Beedup(賣license)
基于日志,完美,但收費,5萬一家客戶
、
六:Golden gate(賣license)
https://www.oracle.com/technetwork/cn/articles/datawarehouse/oracle-sqlserver-goldengate-1396114-zhs.html
基于日志,完美,但收費,10萬一家客戶
七:阿裡開源otter (mysql,Oracle)
https://github.com/alibaba/otter/wiki/Introduction
mysql -> mysql/oracle. (目前開源版本隻支援mysql增量,目标庫可以是mysql或者oracle,取決于canal的功能)
Shareplex replication
基于資料庫日志,收費
不虛度光陰,享受生命裡的每一天!