下載網站:www.SyncNavigator.CN
客服QQ1793040
----------------------------------------------------------
關於HKROnline SyncNavigator 注冊機價格的問題

HKROnline SyncNavigator 8.4.1 非破解版 注冊機 授權激活教程

最近一直在研究數據庫同步的問題,在網上查了很多資料,也請教了很多人,找到了一種通過快照復制的方法。研究了一番后發現之前就是用的這個方法,效果不是很好,果斷放棄。經過了一番尋覓和他人指點,最后從一位熱心網友那里得知一款很好用的軟件—— SyncNavigator。
好東西就要拿出來跟大家分享,所以今天向大家介紹一下這款軟件,及其一些使用方法。下面先看看它有什么強大的功能吧!
SyncNavigator的基本功能:
自動同步數據/定時同步數據
無論是實時同步/24小時不間斷同步,還是根據計划任務(每小時/每日/每周/等)定時自動同步都能完全勝任。
完整支持 Microsoft SQL Server
完整支持 Microsoft SQL Server 2000 2005 2008 數據庫類型。並能在不同數據庫版本之間相互同步數據。
支持 MySQL 4.1 以上版本
支持 MySQL 4.1 5.0 5.1 5.4 5.5。並能在不同數據庫版本之間相互同步數據。
無人值守和故障自動恢復
當數據庫故障或網絡故障以后,無需人工干預(或操作)自動恢復同步並確保數據完全准確,可靠。
同構數據庫同步/異構數據庫同步
SQL Server to SQL Server, MySQL to MySQL, SQL Server to MySQL 等都能輕松實現。
斷點續傳和增量同步
當同步完成(或中斷)后,再次同步時能繼續上一次的位置增量同步,避免每次都需要從頭開始的問題。
分布式異構系統的實際應用場景
在現代的系統設計里面,由於科技的不斷更新,分布式算法和移動計算模型,分布式計算模型的成熟,
會產生很多系統遷移的案例, 主要是系統集成以及數據的遷移和整合。
隨着基於應用域的設計和開發(DDD)的成熟,讓微服務(Mirco-Service)架構的應運而生。
就產生了各個基於domain的細粒度的分布式系統的設計。每一個系統基於不同的應用域需求,運用了不同的架構設計實現,
和分布式存儲模型。
舉個例子,最簡單的一個購買推廣的雲平台,提供Saas的商城購買服務。
那么,在基於這種DDD的微服務(Micro-Service)架構的設計理念,
把整個Saas的架構基於不同的domain, 划分成不同的微服務系統,
比如, 財務模塊(Accounting), 社交模塊(Social), 搜索模塊(Searching), 數字安全模塊(Security),
統計報表模塊(Reporting), BI模塊(Business Intelligence)
在每一個這種模塊里面,都會基於實際的需求采用不同的分布式架構設計和分布式數據存儲。
在Social模塊,主要記錄的是用戶的關系和Profile, 這一類用GraphDB 比較合適
在搜索模塊,會使用Solr或者Elastic Search作為Indexing引擎
在財務模塊,會使用結構化存儲,以及強調數據一致性
在數字安全模塊,使用OAuth,和結構化存儲
在統計報表模塊,使用的是結構化存儲,和數據分析功能
在BI模塊,使用的是HDFS和Hadoop以及使用數據平台架構
那么,其實在這種細粒度的微服務架構里面, 在某些子系統存在着需要數據強一致或者最終一致性的要求。
那么,在分布式異構系統里面是如何做到保證數據完整性又不去損失對於高並發的支持。
首先,說幾個案例,
1. 一個對於外部智能家具系統的數據采集和分析系統里面,在對方Utilty公司用push的模式對於系統平台,定時推送數據
的情況下,在每一秒鍾有上萬次數據采集甚至10w次數據采集頻率的級別下面, n * 100000 /second , 當時,系統
采用Hibernate的樂觀鎖,或者行級鎖,是沒有辦法Scale的
解決方案,把這個系統的存儲從Mysql改為了Cassandra
評論: 在這種系統里面是不需要強調數據的完整性,所以不需要事務支持
2. 交易系統,在每秒鍾要求實時的高並發達到每秒上十萬甚至百萬級別的交易量, 要求是實時(Real-Time), 數據完整,
以及支持高吞吐(High Thought-put)和高並發(high Concurrent), 低延遲(Low Latency)
解決方案: 結合使用non-blocking和blocking算法,在JVM層面達到系統設計要求
評論: 這種系統里面需要同時支持高並發和數據完整性, 需要根據實際的應用需求設計系統
其實在CAP理論里面,論述了Consistency, Availability 以及 Partition 不可兼得
舉個例子說明,還是以A, B, C 3個人的轉賬來稱述
初始狀態 A($100) B($100) C($0)
在時間點T1 A 向 B轉賬 $100 那么系統狀態變化 ($0, $200, $0) 事件1: From A to B $100 狀態變化:[[A, -$100],[B, +$100]]
在時間點T2 B 向 C轉賬 $200 那么系統狀態變化 ($0, $0, $200) 事件2: From B to C $200 狀態變化:[[B, -$100],[C, +$100]]
在一般的並發的事務處理里面,系統一般是使用 Permisic Lock: 對於整個表,或者行級別加鎖,保證數據的一致性和完整性,
其實就是保證了這個事件序列的正確性。也就是事件1一定是發生在事件2之前的,是使用排他鎖(Mutual Lock)去完成的。
在這一個並發處理級別,是不太可能達到Scalable的。
那么,如果是基於多個數據源的,一般是采用了基於2階段提交協議(2 phase commit)的處理方式,等多方表決一致的情況下
才一致提交,這種也是基於sync的處理方式,也是不能Scale性能的。
其實,在使用了Optimize Lock的之后,犧牲了一定程度的對於事件序列的一致性要求,來提高了整個系統的並發量,和可以一定程度的Scale
這個是一種無鎖並發算法,也就是Lock-Free,在JDK里面是使用了一些並發庫API,比如putIfAbsent的API等等,比如readAndUpdate的API
來實現一樣的Lock-Free算法。
那么,在接下來,我們說,這個系統是要支持高度並發的系統設計要求。
那么,必須做到通過擴容服務器的數量,就可以簡單有效地無限擴容計算性能,那么,這個就是分布式算法。
我們再次重述一下問題,
在時間點T1 A 向 B轉賬 $100 那么系統狀態變化 ($0, $200, $0) 事件1: From A to B $100 狀態變化:[[A, -$100],[B, +$100]]
在時間點T2 B 向 C轉賬 $200 那么系統狀態變化 ($0, $0, $200) 事件2: From B to C $200 狀態變化:[[B, -$100],[C, +$100]]
那么,在分布式系統里面,缺乏全局狀態,沒有全局時鍾,
如果,事件1 發生在一個在美國的服務器,T1是當地時間 8:00 am, 隨后 事件2 發生在一個中國的服務器,T2: 當地時間 5:01pm
其實統一到UTC時間,他們只是相隔1分鍾發生的,但是在服務器上面缺乏一致的時間。所以,也無法對於事件排序,說T1 是發生在T2之前,
那么,作為用戶小A,看到的是在T1時刻,他發起轉賬,在T1.1時刻,他看到賬號里面少了100刀,
用戶小B在T1時刻是$0,但是在T1.1時刻,他可能什么都沒有看到,或者看到了100刀,取決於他的手機app讀取的是哪個分布式數據庫,
是在西雅圖的,還是在上海的,在T1時刻,數據先到了西雅圖的AWS上面,但是在上海的數據庫還沒有同步數據,因為partition的問題,
因為地域分布的問題。如果,他在美國,看到的是轉賬成功,多了$200,但是如果他在上海,是看不到這個轉賬。
下面一個問題出現了,
如果小B看不到轉賬,他是無法向小C轉賬$200, 在UI上面做了限制
如果小B看到了轉賬,他是可以向小C轉賬$200, 那么,還是partition的問題,他的轉賬對於,小C來說,或者是看到了,或者沒有看到,
就是,讀寫不一致的問題。在這種情況下,要強調數據強一致性,會損失系統的性能。那么其實,只要做到session級別的數據一致就可以了。
這個是一種最終一致的強級別。
在系統設計上面,在分布式系統,使用happened before來定義事件發生序列,
還是以這個例子,
在時間點T1 A 向 B轉賬 $100 那么系統狀態變化 ($0, $200, $0) 事件1: From A to B $100 狀態變化:[[A, -$100],[B, +$100]]
那么,A的第一個狀態V1 是$100, 第二個狀態V2 是$0 B的第一個狀態V1 是$100 第二個狀態V2 是$200
對於分布式系統的狀態保存是使用客戶端(Session at Client)保存和分布式狀態(Distributed Session)保存2種.
那么不管哪一種狀態,在session層,始終是能根據不同數據的版本去同步數據,保證了數據在Session層面的一致性。
那么,其實是數據庫保證了partition和availibity,但是在session層去保證了consistence,最終數據庫也會得到正確的數據版本更新。
這個就是在3年前大家一直使用的分布式異構系統的數據一致性實現方案。
