Categories
程式開發

實操:從Oracle到GaussDB的數據遷移

本文由 dbaplus 社群授權轉載。

一、背景

最近某省運營商O域核心業務系統的數據庫計劃從Oracle遷移至GaussDB,數據庫服務器也從SUN小型機轉到華為TaishanARM服務器。本人有幸參與其中,主要負責Oracle到GaussDB的數據遷移環節。數據遷移前期使用Datasync工具進行導數測試,但由於導數效率無法滿足生產系統的停機要求,而華為這個時候正好推出新的遷移工具—SDR,於是利用SDR進行了一輪新的遷移測試。

1、環境信息

1)硬件配置信息

目標庫Taishan服務器硬件配置信息如下所示:

實操:從Oracle到GaussDB的數據遷移 1

源庫Sun小機硬件配置如下所示:

實操:從Oracle到GaussDB的數據遷移 2

2)軟件配置信息

Categories
程式開發

左耳朵耗子:二十年前編程環境和氛圍與現在有什麼不一樣?

昨天,覃超老師在極客時間部落裡問了我一個問題:“現在編程環境和氛圍與二十年前比主要變化是什麼?”

我還是把20年前的編程情況跟大家說一下,大家自己對比對比。

左耳朵耗子:二十年前編程環境和氛圍與現在有什麼不一樣? 31

20年前,能夠找到一家連上互聯網的公司是一件很不容易的事。大多數公司的辦公電腦都無法訪問互聯網。所以,寫程序時需要在桌面上摞一堆書和手冊。然後就是看MSDN和Unix下的man。記得有Google時候,大家奔走相告,說用Google找到技術問題的解決方案太容易了,一查就中!所以,到一個能上網的公司工作是頭等大事。

20年前,在家上網需要撥號,56.6Kbps的電話傳輸是你上網能得到的最大速度,一小時15元左右。電腦主流配置:奔騰133MHz,32M內存,2G硬盤,價格8000元左右。筆記本電腦,Thinkpad,需要2萬4以上。至於說程序員的月薪,大城市3000-5000元左右,小城市1000元左右。

20年前,主要的編程語言是C語言,用C寫所有端,包括前端。那個時候的程序員都需要了解很多的底層知識和基本數據結構。因為用C寫代碼基本上就意味著要重新發明一切(那時候,絕大多數程序員並不能寫出泛型的代碼,也不會分離控制邏輯和業務邏輯,而可用的框架和類庫不夠,所以,因為業務邏輯的侵入,需要重新發明各種輪子。)

20年前,Java剛剛開始,但應用不多,面向對像剛剛開始流行,Web編程剛剛開始(主要是PHP/ASP,IE3.0有Netscape),基本沒有JavaScript什麼事,主要是後端生成HTML。 Windows大行其道,Delphi/VB/PowerBuilder這樣的快速出GUI的編程IDE非常流行。…

Categories
程式開發

谷歌開放Google Glass Enterprise Edition 2 直接購買渠道,專為企業和開發人員設計

谷歌已經不再限制第三方經銷商直接向開發人員銷售第二代谷歌智能眼鏡產品Glass Enterprise Edition 2,該決定的目標在於促進基於Google Glass Enterprise Edition的專用企業應用開發。

在這次官宣之前,想要使用Glass Enterprise Edition …

Categories
程式開發

AI發現超級抗生素,可殺死多種致病細菌,對人體細胞毒性低

近日,由麻省理工學院合成生物專家吉姆·柯林斯(Jim Collins)領導的研究團隊發現了一種開創性的機器學習方法,該方法首次在沒有使用人類任何先前假設的情況下,短短幾天從超過1億個分子的庫中篩選出強大的新型抗生素。目前,該成果已經登上全球自然科學研究領域最著名期刊之一《細胞(Cell)》2月20日的封面。

AI發現超級抗生素,可殺死多種致病細菌

根據MIT的最新消息,麻省理工學院合成生物專家吉姆·柯林斯(Jim Collins)領導的研究團隊研發出了一種開創性的機器學習方法。

該方法可以在沒有使用人類任何假設的情況下,短短幾天從超過1億個分子的庫中篩選出強大的新型抗生素。其中一種抗生素可殺死多種世界上最麻煩的致病細菌,包括結核病和被認為無法治癒的菌株,該方法還可用於治療癌症、神經衰退性疾病等其他類型的藥物。

AI發現超級抗生素,可殺死多種致病細菌,對人體細胞毒性低 32

在實驗中,專家們讓模型預測哪種分子能有效抑制大腸桿菌,並僅展示看起來與常規抗生素不同的分子。從產生的結果中,研究人員選擇了大約100個進行物理測試的候選分子。通過這種方法,研究人員找到了一種正在研究用於糖尿病治療的分子,已經被證明是一種有效的抗生素。

此外,該分子對多種病原體顯示出抑制生長的特性,包括艱難梭菌菌株、鮑曼不動桿菌和結核分枝桿菌。其中,世界衛生組織已將鮑曼不動桿菌定為最需要優先處理新抗生素的病原體之一。

這項研究的合著者、麻省理工學院AI研究人員瑞吉娜·巴爾齊萊(Regina Barzilay)表示,該算法無需對藥物的工作原理和化學基團進行任何標記,就可以預測分子功能。 …

Categories
程式開發

防止老好人“破壞”體系,績效 271 是在幫助中層

TGO 鯤鵬會發起全新的雲上私享會,聚焦垂直話題,以 Zoom 視頻的方式,通過 3 小時的討論,結交朋友、分享經驗、收穫真知。 2020 年 2 月

Categories
程式開發

WIRED為三大雲提供商做了環保考核:谷歌和微軟能拿B,AWS卻只能拿C

“數據就是新的石油”,這個比喻可能已經過時了,但是這兩者確實有很多相似之處,例如都會環境有著嚴重影響。根據美國能源部的數據,數據中心的用電量約占美國所有用電量的2%。這意味著每次Netflix狂歡、PUBG賽事和電子郵箱的發送等都伴隨著碳排放。

對於個體而言,碳排放的數量可以忽略,但是對於企業而言,這個數字就變得很大了,甚至足以破壞環境。如何用最綠色的方法來存放雲中數據,減少碳排放,是擺在雲計算企業面前的一道難題。

根據有關數據顯示,作為雲計算領域的三大提供商,Amazon Web ServicesGoogle

Categories
程式開發

央行數研所課題組:目前不建議基於區塊鏈改造傳統支付系統

習近平總書記強調“把區塊鏈作為核心技術自主創新重要突破口”,為我國數字經濟發展和產業創新實踐提出了新的要求。近幾年,區塊鏈憑藉其獨有的信任傳遞機制,逐漸成為金融科技領域的熱門技術,有助於業務數據可信共享,加速參與主體多方協作,實現監管穿透管理,蘊含著加速我國數字化轉型、激發數字經濟發展的潛力。為落實習近平總書記的指示精神,人民銀行數字貨幣研究所(以下簡稱“數研所”)強化對區塊鏈技術的基礎研究和標準研製,先後推動數字票據交易平台和人民銀行貿易金融區塊鏈平台建成落地,搶占先發優勢,取得了積極進展。同時,為堅決打贏三大攻堅戰,對防範區塊鏈可能引發的資產泡沫、惡意炒作、代幣融資等亂象及其衍生的金融風險進行了深入調查和研究,並提出了促進區塊鏈產業健康有序發展的思考建議。

區塊鏈的技術特點

區塊鍊是一種新型的分佈式數據庫,也稱為分佈式賬本。區塊鏈技術利用塊鍊式結構驗證與存儲數據,採用共識算法生成和更新數據,借助密碼學保證數據和權屬安全,並通過可編程腳本代碼實現數據的協同計算。

區塊鏈技術的主要優勢

一是業務數據可信化。與傳統分佈式數據庫有所不同,區塊鏈引入了“人人記賬”的理念,每個參與主體都有權記賬,大家各自保存最新賬本和所有歷史記錄。這種數據高度冗餘的存儲方式,可提升不互信主體之間的信息透明度,實現賬本數據不可篡改和全程留痕,進而促進多方信息共享和協同操作。在實際業務中,通過業務數據上鍊,可實現紙質單據的電子化和電子信息的可信化,降低多主體之間不信任的摩擦成本,解決傳統業務方式耗費大量人力物力進行單據、票據真實性審核的問題,也便於金融機構實施風險管控。

二是參與主體對等化。當跨部門共建信息化系統時,最大的難題在於集中存儲的數據由哪個機構或部門管理。區塊鏈的統一分佈式賬本技術,天然解決了“業務主權”問題,有效實現了每一個參與主體的身份對等、權力對等、責任對等、利益對等,並在所有參與主體之間實現數據的實時同步更新,使合作更加方便快捷,合作方的積極性得以提升。

三是監管手段多維化。監管部門可在區塊鏈平台上增加監管節點,及時獲取監管數據,並靈活定制金融監管的統計口徑、監管數據顆粒度等,實現快速分析。同時,採用智能合約等可編程腳本,增加相應的監管規則,監管重點從金融機構的合規審查和風險管控,逐步上升至對系統性風險的識別監控,實現事前、事中、事後全過程的監管體系,有效防范金融風險,維護金融穩定。…

Categories
程式開發

Kafka集群突破百萬partition的技術探索

前言

對於小業務量的業務,往往多個業務共享kafka集群,隨著業務規模的增長需要不停的增加topic或者是在原topic的基礎上擴容partition數,另外一些後來大體量的業務在試水階段也可能不會部署獨立的集群,當業務規模爆發時,需要迅速擴容擴容集群節點。在不犧牲穩定性的前提下單集群規模有限,常常會碰到業務體量變大後無法在原集群上直接進行擴容,只能讓業務創建新的集群來支撐新增的業務量,這時用戶面臨系統變更的成本,有時由於業務關聯的原因,集群分開後涉及到業務部署方案的改變,很難短時間解決。

為了快速支持業務擴容,就需要我們在不需要業務方做任何改動的前提下對集群進行擴容,大規模的集群,往往意味著更多的partition數,更多的broker節點,下面會描述當集群規模增長後主要面臨哪些方面的挑戰:

挑戰

ZK節點數

Kafka的topic在broker上是以partition為最小單位存放和進行複制的,因此集群​​需要維護每個partition的Leader信息,單個partition的多個副本都存放在哪些broker節點上,處於復制同步狀態的副本都有哪些。為了存放這些元數據,kafka集群會為每一個partition在zk集群上創建一個節點,partition的數量直接決定了zk上的節點數。

假設集群上有1萬個topic,每個topic包含100個partition,則ZK上節點數約為200多萬個,快照大小約為300MB,ZK節點數據變更,會把數據會寫在事務日誌中進行持久化存儲,當事務日誌達到一定的條目會全量寫入數據到持久化快照文件中,partition節點數擴大意味著快照文件也大,全量寫入快照與事務日誌的寫入會相互影響,從而影響客戶端的響應速度,同時zk節點重啟加載快照的時間也會變長。

Partition複製

Kafka的partition複製由獨立的複制線程負責,多個partition會共用複制線程,當單個broker上的partition增大以後,單個複制線程負責的partition數也會增多,每個partition對應一個日誌文件,當大量的partition同時有寫入時,磁盤上文件的寫入也會更分散,寫入性能變差,可能出現複製跟不上,導致ISR頻繁波動,調整復制線程的數量可以減少單個線程負責的partition數量,但是也加劇了磁盤的爭用。

Controller切換時長

Categories
程式開發

15款好用的VS Code插件

15款好用的VS Code插件 45

VS Code有個市場,提供很多插件,開發人員可以把它們安裝到文本編輯器,增強編輯器功能。在視圖菜單中,選擇擴展選項或按下shift + cmd + X即可進入市場。

善用VS Code插件,不僅節省時間,還能提高工作效率,讓你成為更好的開發人員。

1. Live

Categories
程式開發

大數據公司 LiveRamp 上雲記(三):如何在吞吐量有限的情況下處理數據複製

我們如何實現?

在系列二中,我們討論了雲MVP應該是什麼樣子的。下一個問題就是如何在一個月內不關閉公司的情況下實現它?

我們先從已知需求開始。應用程序團隊至少需要幾個月的時間來將GCP(谷歌云計算平台)和本地數據中心的內部服務隔離。因此,我們需要一個單邏輯網絡來連接兩者。對此,我們快速建立了一個雲互連來連接us-central1和本地數據中心之間的環境:

大數據公司 LiveRamp 上雲記(三):如何在吞吐量有限的情況下處理數據複製 58

為了避免將公司所有的項目都堆積在一個GCP項目下,我們使用了一個共享的VPC網絡,每個團隊都有一個單獨的子網絡。這可以加速GCP中的服務以便與本地數據中心的服務進行實時通信。同時,我們也不需要那些讓人抓狂的數據庫複製設置,因為GCP中的服務能夠與仍在本地的數據庫通信。

這個共享的邏輯網絡在遷移過程中變得非常重要。如果我們的服務網絡不能連接本地網絡,那遷移也根本不可能實現。

數據傳輸

數據傳輸給我們帶來了一個核心挑戰:如何處理從數據中心到GCP的有限出口(egress)。在本地數據中心內部,我們擁有難以置信的大帶寬,但是我們從來不需要為大量的數據出口優化基礎設施;相反,在GCP中我們被限製到了50Gbps。我們本來可以升級這個帶寬值,但我們不想花費數百萬美元來升級一個正在積極退役的數據中心。

大數據公司 LiveRamp 上雲記(三):如何在吞吐量有限的情況下處理數據複製 59

對我們數據交付的輸入和輸出端來說,50Gbps是一個合理的數字。真正的挑戰來自於數據管道的中間;管道中間的分佈式連接產生的數據量遠遠大於發送或接收的數據量。如果不留意團隊之間的遷移時間,我們的連接會很容易飽和。

關於傳輸設備的一點說明:傳輸設備不適合我們,因為我們處理的數據只有很少一部分是冷數據;如果我們需要逐步遷移基礎設施,那我們最終要移動比任何快照的數據量都要大得多的數據。此外,雲服務提供商就像毒販,例如數據入口(ingress)是免費的,但是如果你想把數據移出雲,大數據的數據出口(engress)是非常昂貴的。

為了讓遷移順利進行,我們需要這樣一項服務,它可以:…