如今好像是個互聯網公司好像都在談去IOE,也有人問過咱們,去IOE到底有什麼受益?咱們公司爲何要去IOE呢?固然實際狀況是由於咱們上層領導決定的,因此咱們都熱火朝天的幹起來了,就跟咱們當時爲何將已經開發的系統從MySQL數據庫改爲Oralce同樣,都是上層領導決定的。對此我只能哈哈哈了。 mysql
可是我有本身的思考,爲何咱們要去Oracle呢?對咱們到底會帶來什麼受益呢?我我的以爲對於大型互聯網公司用MySQL替代Oracle的緣由有這樣一些。 sql
由於大型互聯網公司每每存儲很是大規模的數據,數據庫的讀寫流量也每每巨大,有數以千計的各類應用都須要用到數據庫,這樣購買硬件、軟件license的成本巨大,隨着業務不斷髮展,部署規模不斷增長,咱們的成本也將持續增長,這個賬應該很簡單,沒必要細算。所以從成本考量咱們是動力去作這個改造的。 數據庫
可是我以爲規模可控範圍以內的企業級應用,而且數據價值極高的業務,好比典型的銀行,他們還依舊會選擇使用Oracle更加合適。 服務器
因爲互聯網的集中化部署和維護的特色,使得咱們開發和運維團隊的價值較高,所以大規模互聯網公司有財力聘請專門的MySQL專家技術團隊,這些專家能夠把MySQL的使用、部署、運維、原理源碼都搞得很是透徹,他們有能力搞定MySQL出現的一切問題,他們能夠針對本身公司的需求對MySQL作各類類型的定製和擴展,讓數據庫更加符合本身的需求,使用起來更加順手,與系統內部的技術體系結合得更加機密,好比雲平臺、自動化運維繫統等等。 架構
固然這還由於MySQL是開源的,結構簡單,代碼量相對少,這樣專家團隊可以更容易的駕馭MySQL。 運維
那爲何不少中小企互聯網公司也使用MySQL呢?那是由於MySQL的簡單、開源免費、開放,這符合小公司的不少特色,對於一些價值不高的數據存儲來講也沒有多大問題,並且中小互聯網公司的數據剛開始的價值都不過高,因此他們會選擇他。 異步
因此,對於從可行性角度考慮咱們是可使用MySQL做爲本身的主要數據存儲服務器的。 分佈式
咱們要改造的系統是一個核心的業務系統,它是提供實時生成的業務系統,對於系統的穩定性要求高,天天產生的數據量也較大。目前Oracle數據庫服務器的狀況是這樣的架構。 大數據
當天系統數據架構存在的問題有這些: 優化
所以諸多重要因素決定了咱們必須遷移到基於MySQL的分佈式數據架構上。
從圖中能夠看出,過渡期Oracle和MySQL兩個庫是同時共存的,兩個庫是一個互爲準備的關係,主庫的數據寫入會異步寫入到從庫上去。
上述爲改造後的數據架構的全貌,主要由這些要點。
改造以後的好處有這些。
1.物流核心的業務系統,系統的可用性不能有任何影響。
2.共有81張業務表有待遷移,工程量巨大。
3.有1張表4億數據,4張1多條數據,這些核心業務數據遷移到MySQL後須要作分庫。
4.分庫後的跨庫join,跨庫事務沒法實現的問題須要解決。
5.下游的監控報表平臺、大數據平臺的數據接入須要調整。