下載網站:www.SyncNavigator.CN
客服QQ1793040
----------------------------------------------------------git
關於HKROnline SyncNavigator 註冊機價格的問題redis
HKROnline SyncNavigator 8.4.1 非破解版 註冊機 受權激活教程
算法
最近一直在研究數據庫同步的問題,在網上查了不少資料,也請教了不少人,找到了一種經過快照複製的方法。研究了一番後發現以前就是用的這個方法,效果不是很好,果斷放棄。通過了一番尋覓和他人指點,最後從一位熱心網友那裏得知一款很好用的軟件—— SyncNavigator。sql
好東西就要拿出來跟你們分享,因此今天向你們介紹一下這款軟件,及其一些使用方法。下面先看看它有什麼強大的功能吧!數據庫
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 等都能輕鬆實現。
斷點續傳和增量同步
當同步完成(或中斷)後,再次同步時能繼續上一次的位置增量同步,避免每次都須要從頭開始的問題。
你們好!我是網易數據運維工程師杜明友,你們能夠叫我老杜。首先介紹一下網易雲,是網易集團旗下雲計算和大數據品牌,本文要深刻分析的案例是網易雲旗下的即時通信雲平臺業務,開發者經過集成客戶端SDK和雲端OPEN API,便可快速實現強大的IM功能,做爲PaaS服務模式的網易雲信全面支持Android、iOS、Web、PC等多平臺。還提供了高級通信功能,包括實時音視頻、互動直播、教學白板、專線電話、短信、專屬雲在內的獨家功能以及更多其餘服務。網易雲信知足包括遊戲、協同辦公、在線醫療、在線客服、在線教育、娛樂、諮詢、生活服務、物流、旅遊、金融等各行業各類產品的即時通信服務需求。客戶案例有順豐、寶寶樹、挖財網、網易雲音樂、網易雲課堂等等。分佈式數據庫架構介紹
做爲時下最火爆的IM雲服務,網易雲無時不刻不在爲百萬商家億級終端用戶提供便捷的即時通訊服務。商家產品爆款、用戶活躍交流都在考驗着咱們的業務系統。如何保障系統的穩定運行,支撐更大的併發,提供真正的可擴展的IM雲服務一直是咱們很是關注的一個問題。
做爲互聯網的一支老牌勁旅,咱們在大併發海量互聯網系統構建方面也有着很是深厚的積累與經驗。在數據庫選擇上咱們使用了網易私有云中的分佈式數據庫服務(雲DDB)
其架構圖以下
雲DDB主要包括五個組件: NLB、SQL Proxy、DBN、Master、SYSDB
DBN與SYSDB使用的是網易私有云RDS,其它組件則部署在使用雲主機上,雲DDB服務的核心組件SQL Proxy以及DBN都是可擴展的,而且高可用的。
DDB處理邏輯簡單來講就是應用請求經過NLB轉發到具體SQL Proxy上,SQL Proxy解析SQL生成執行計劃,下發請求至底層節點,收到DBN數據後作必定的處理返回給客戶端。
高可用分佈式DB服務構建指南
網易IM雲服務目標是支持彈性擴展、消息必達,那就須要在保證高吞吐、高性能的同時,那就須要數據的高可用性:簡單而言就是數據存儲服務要高可用而且數據不丟失。
由於關係型數據庫發展幾十年在穩定性方面對比其餘數據存儲方案來講存在很是大的優點,基於此,業務不少對數據一致性的場景都是直接依賴於DB。
好比爲了保證消息準確到達,發送方的消息須要先持久化到DB,再發送到接收方,接收方收到以後更新爲已接收狀態,所以對數據庫是重度依賴。
對關係型數據庫來講高性能高可用跟數據不丟失又每每是魚跟熊掌的關係,要保證數據徹底不丟失的話,數據必然是要同時寫入到主庫與從庫纔算完成,此時若是從機異常,數據寫入將失敗,這將致使數據庫服務不可用,相信不多有人能接受。
因此一般在數據一致性與服務可用性上會作必定的妥協,即正常狀況下表現爲主從強一致性模式,異常狀況下則退化爲異步模式。這在MySQL裏面咱們稱之爲Semi sync複製,Oracle 複製(DataGuard) 裏面則爲最大保護模式。
在保證數據服務高性高吞吐的狀況下儘可能避免數據丟失,咱們對網易雲DDB底層DBN作了以下設置:
第2點裏的VSR,這個是網易MySQL分支InnoSQL的一個特性,InnoSQL在官方半同步複製(semi sync)基礎上作了部分改進,改善了主庫宕機時主從數據不一致問題,實現機制如圖所示:
簡單來講,MySQL5.5版本中官方semi sync是在binlog與redo都寫完後再將binlog傳輸到從庫,而vsr則是在binlog寫完後與redo log寫以前傳輸binlog,這樣作的好處是能夠避免事務日誌提交後主庫宕機恢復後數據幻讀問題。(在官方MySQL5.7中這個問題獲得解決,見rpl_semi_sync_master_wait_point參數解釋)
固然這樣作也有缺點,事務須要等待數據傳輸到從庫後再返還,確定會增長必定的延遲時間,針對這個問題,優化方法就是第三點開啓group commit。開啓後多個事務的binlog一次性提交到磁盤跟傳輸至從庫,這樣能夠減小磁盤fsync次數並提高吞吐量。
如下是sync_group (vsr+group commit) 與原生semi sync、 sync(vsr) 、async(不開啓semi sync) 之間性能對比圖,能夠看到 vsr + group commit性能與異步複製幾無差異:
同時爲了從庫及時同步數據,咱們在從庫上打開並行複製,主庫上事務並行提交從庫上也能夠並行恢復,這樣大併發寫入下從庫沒有基本延時。
隨着業務的暴漲,數據量規模及QPS也暴漲幾百倍,通過屢次擴容後,爲了提高DDB性能及容量,咱們將IM雲底層DBN節點從RDS遷移到物理機,而且使用大量的SSD做爲底層存儲。遷出RDS後DDB底層節點便再也不擁有高可用這一特性,爲此咱們本身開發了一套DDB底層節點監控與切換工具DDB Monitor,此時DB高可用架構圖變成
DDB Monitor可用於執行平常數據庫擴容切換、故障切換、狀態監控等工做
故障切換模式下會定時(幾秒) 作以下事情:
在判斷MySQL主從什麼時候能夠切換方面,與其它開源工具可能有些不一樣,須要知足如下狀況纔可能觸發故障切換:
其中條件1與條件2 須要知足至少1者。 4中表示若是對主從一致性要求很高須要知足上次檢測vsr(semi sync)正常才能切換,而若是能夠容忍必定的數據丟失那麼能夠設置檢測上次主從同步binlog差值在指定範圍內便可切換。
故障切換後,SQL Proxy收到Master消息會從新創建到正確DBN的鏈接,主庫宕機狀況下基本能夠在秒級別完成切換。
固然除了上面這些說的這些部署上保障高可用外以外,增強數據庫設計與監控也是保障數據庫穩定運行很是重要的一環。
數據庫設計方面的措施主要有:
數據庫監控方面咱們主要作了以下如下幾個方面:
一套DDB內一般包含幾百個維度的指標監控及幾十個維度的報警項
多機房高可用實踐
在過往的運維經歷中,咱們遇到過機櫃掉電、機房大面積故障等事情,這種狀況的發生會嚴重影響產品可用性。因此對於雲信等重要產品,單機房高可用顯然沒法知足業務追求
多機房是個很是複雜的工程,不只須要在部署上有多機房部署,在應用層面也須要支持多機房架構,雖然咱們在產品發展初期就開始了多機房高可用建設,但到目前咱們並無徹底作到自動化故障切換
這裏介紹下咱們作的工做也是拍磚引玉,但願你們提出寶貴意見
咱們多機房高可用主要作到的工做
最後數據庫高可用架構圖:
人工切換始終會存在必定的延時,不過咱們運維部強大的運維協做工具Stone支持移動端執行服務器命令,能夠隨時隨地執行切換操做:
以上就是我這次分享的所有內容,感謝你們的參與,謝謝你們
QA環節
Q1:有什麼好的方案能在保證業務不中斷的狀況下實現跨機房大數據庫遷移,在這過程當中又如何保證數據的實時性呢?
A1: 數據庫的實時性 能夠有專線網絡 + DB複製 來保障, 不終端服務實現跨機房的話 就須要系統相關的全部組件都支持跨機房高可用,而且須要實現自動化切換。補充一點, 跨機房服務部終端,會犧牲必定的數據一致性。我:
Q2:請問大家都有哪些本身研發的模塊開源呢?很想學習下
A2:網易InnoSQL是開源的,另外redis複製遷移工具 redis-migration也是開源的
Q3:關係型數據庫MySQL很流行,可是也有不足,咱們最近在考慮有沒有替換的方案。可否將它和其餘的對比一下?大家是怎樣作的選擇?
A3:首先我以爲最好是選擇你最熟悉的,能搞定的數據庫。GitLab數據丟失事故 我認爲很大的緣由是由於他們的工程師對postgresql 不是很懂。 另外MySQL發展其實很是快的,5.7 有不少很是好的特性,不少東西都借鑑了Oracle。
Q4:大家有什麼開源的跨機房數據實時同步工具嗎。
A4:咱們網易內部有一套本身開發的數據複製工具DTS, 目前尚未開源, 緩存複製工具備開源 是 redis-migration。git 上你們能夠搜一下
Q5:大家的數據訪問高峯是何時呢?仍是說一直比較平緩?還有,有沒有大規模遷移數據庫的經歷,能夠講一講嗎?
A5:業務確定有高峯低估的,通常晚上黃金時段是高峯期,凌晨是低谷。數據遷移的話其實作好工具後,數據大小量沒有太大的差異,數據量大的話 須要作限流。
Q6:從技術上選擇MySQL和PG有什麼區別?選擇他們的時候大家是選了最熟悉的仍是作了技術選型的調研?
A6:咱們選擇了最熟悉而且最適合咱們的。PG跟MySQL都很是優秀,性能上也差很少。
Q7:能不能講講上次大規模故障的事情?多長時間內完成恢復?有哪些措施?數據如何備份?
A7: 故障恢復一般須要作好預案, 好比當你沒法作到自動化切換的時候,就須要有一套切換的腳本,另外故障切換後一般須要作好必定的限流,不能切完再掛。 數據備份方面:咱們一套數據庫備份系統, 數據庫的備份會備份到存儲服務上
Q8:大家的採用分佈式數據庫與單節點數據庫能徹底兼容嗎?
A8:大部分都能兼容,少數極端的case不兼容
Q9:大家線上業務單表數據量能去到多少?是如何對這些表進行優化?
A9:通常咱們都會分表, 一張大表可能有幾十到幾百張字表,百億級表不少的,好比咱們的消息表。 表優化: 1 將歷史數據遷移到離線數據庫 2 精確好字段長度 3 儘可能以primary key 或者聯合索引去訪問表
Q10:爲何不在sql proxy層使用mycat?最近使用了mycat感受還不錯
A10:SQL Proxy跟咱們DDB各組件是集成在一塊兒的, DDB是2006年開始研發的,比市面上任何一款分庫分表工具都悠久,咱們對比過SQL Proxy跟mycat, 各有優缺點。