譯者介紹

楊志洪,dbaplus社羣聯合發起人,新炬網絡首席佈道師,對數據庫、數據管理有深入研究,合譯《Oracle核心技術》《Oracle Exadata專家手冊》。

原作者:Rajesh Saluja,美國財稅軟件公司Intuit數據架構師,主導了Intuit數據庫從本地的Oracle遷移到Amazon Aurora Postgres的全過程。

首先,本項目的目標是將本地的Oracle數據庫遷移到雲上的Amazon Aurora數據庫。

原則:

一、Amazon Aurora數據庫的優勢

相同硬件環境下,Amazon Aurora的吞吐量是標準MySQL的5倍,標準PostgreSQL的3倍。

這一性能與商業數據庫旗鼓相當,而成本只有後者的十分之一。可以跨3個可用區(AZ:Availability Zone)建最多15個低延遲的只讀副本,來擴展讀應用的能力和性能。

Amazon Aurora提供超過4個9的可用性標準(注:一年可非計劃停機52.6分鐘)。在跨3個可用區內每份數據有6個副本,因此Aurora有容錯及自愈功能。

Aurora持續備份數據到Amazon S3上,當發生物理存儲損壞或者實例故障時能夠進行透明恢復,恢復通常在30秒內完成。

Amazon Aurora爲數據庫提供了多個級別的安全。包括用Amazon VPC進行網絡隔離,通過AMS祕鑰管理服務進行數據加密,通過SSL進行加密數據傳輸。

一個加密了的Amazon Aurora數據庫實例,底層存儲的數據是加密了的,自動備份、快照及集羣中的副本也是加密的。

Amazon Aurora由 Amazon RDS(Amazon關係數據庫服務)全面管理。你不必再擔心數據庫的日常管理,比如硬件預置、軟件補丁、安裝、配置及備份。

Aurora會持續地監控數據,並自動將其備份數據庫到Amazon S3,因此可以實現精細的時間點恢復策略。可以用Amazon CLoudWatch、增強監控功能監控數據庫性能,還可以用Performance Insights幫助快速檢測性能問題。

二、Amazon Aurora體系結構

當我們創建一個Amazon Aurora實例時,首先創建了一個數據庫集羣。一個數據庫集羣由一個或多個數據庫實例組成,集羣中的集羣卷(cluster volume)管理所有實例的數據。

Aurora集羣卷是一個虛擬的數據庫存儲卷,橫跨多個可用區,每個可用區有數據庫集羣數據的一個副本。

一個Aurora數據庫集羣由兩種類型的數據庫實例組成,主實例(Primary instance)和副本實例(Aurora Repilca):

三、分支的選擇:MySQL和Postgres的區別

挑選合適的數據庫技術是非常重要的,應用需求、可用性、安全需求決定了哪種技術更滿足需要。下表羅列了MySQL和Postgres的關鍵區別(針對從Oracle遷移過來,選誰更合適這一需求):

四、最終選擇及採取策略

Postgres成爲了最終的贏家,因爲應用不能遵循MySQL的規則。MySQL要求,如果表有Primary key或者unique key,那麼分區表的分區列必須包含在唯一鍵或者主鍵裏。另外,interval分區特性也是個考慮點,能降低運營成本。

遷移策略

整個遷移流程基本如下圖所示(從RDS Oracle到Aurora Postgres都是在雲上完成):

回退策略

整個遷移應該說作者寫得還是有點簡單了,AWS有更詳細的文檔,在遷移三步走的playbook裏:

它對Oracle一些重要的特性與Postgres做了較詳細的對比(異構數據庫間的遷移都可以參考下):

SQL&PL/SQL方面:

表和索引方面:

數據庫對象方面:

數據庫管理方面:

我們可以看到除了交換分區和UTL_file是不支持的,其他大部分Oracle功能Aurora Postgres都滿足。其實這是很正常的,PostgreSQL是對Oracle兼容性最好的開源RDBMS。

Amazon在2018年將它最大的數據倉庫從Oracle遷移到了Amazon Aurora(雖然在Prime Day那天宕機了,但此後一直穩定運行,說明這個遷移還是很成功的)。在Prime Day期間,這個Aurora數據庫承載的業務每天處理超過100萬個包裹。

並且計劃要在2019年底把所有在用的Oracle數據庫都遷移到AWS自己的數據庫上,說明Aurora在架構和工程上都已經可以承載大規模應用了。對於一般規模的電商應用來說,應該是小菜一碟,intuit的實踐也說明瞭這一點。

在這篇文章的最後,有2個回覆都是在讚揚Aurora。

我們在用Aurora,非常棒!我現在看不到任何用Oracle的必要性了。

在Santa Clara參加AWS峯會上,一個客戶分享過類似的案例。他們從Oracle遷移到了AWS,節省了大量資金。更爲重要的是,響應時間從36小時縮短到30秒鐘,而且易於使用,易於管理,易於操作。超酷!AWS可能會終結正在苦苦掙扎的Oracle。

要不是實名評論,我怎麼都懷疑是廠家在自吹自擂。到官網看了下,目前使用Aurora數據庫的用戶主要在國外:

聯合國信息系統主管Mohamad Reza評價:

聯合國運營着多個擁有全球影響力的網站,需要關鍵任務型可靠性和一致的性能。即使使用Amazon Aurora最小的數據庫引擎,我們也能夠實現卓越的性能。

Amazon Aurora的全新用戶友好型監控界面讓我們能夠輕鬆診斷和解決問題。它的性能、可靠性和監控能力真正表明了Amazon Aurora是一個企業級AWS數據庫。

Wappa首席技術官Cesar Matias評價:

爲了幫助我們的客戶減少公司差旅費用,我們的平臺需要快速找到交通工具,並加快制定預算以及支付和報告流程的速度。

自從我們將Oracle數據庫遷移到Amazon Aurora以來,我們的用戶驗證流程速度提高了60%,每位用戶的報告時間縮短了75%,支付流程速度也加快了70%。我們清楚看到了應用程序的用戶增長數量和用戶滿意度評分結果。

BMC數字服務管理部總裁Nayaki Nayyar評價:

我們很高興地宣佈在AWS雲上推出Remedy ITSM。在我們支持遷移到Aurora PostgreSQL後,我們的客戶現在可以從一流的雲服務中受益,安裝時間縮短3倍,並且可以降低擁有成本。

Nielson Watch部門架構負責人Todd Lightbody評價:

通過使用Amazon Aurora PostgreSQL預覽版,我們發現Amazon Aurora PostgreSQL的性能非常好,無論是對於寫入工作負載,還是讀/寫工作負載,性能都是RDS PostgreSQL的7到11倍以上。

我們對能夠獲得預期的可擴展性和可靠性感到興奮,因此可以確信,我們將部分核心數據庫工作負載遷移到AWS後,Amazon Aurora PostgreSQL能夠滿足我們的要求。

副首席信息官John Rome評價:

ASU不斷努力提高其IT解決方案的靈活性和敏捷性,以求滿足客戶需求。我們利用Amazon Aurora將報告、提取、轉換和加載 (ETL) 時間縮短10倍以上,同時將Oracle工作負載替換爲高性能雲數據庫,以快速響應用戶請求。

考慮到今年秋季會有大量學生入學,到時系統負載會達到峯值,我們的ASU Alexa技能和ASU移動應用程序將受益於Amazon Aurora的可擴展性。

另外,新的Amazon Aurora Serverless功能能夠幫助我們減少非生產環境的成本,從而讓我們能夠靈活支持使用模式不規律的數據倉庫和ETL流程。

今年或明年你有計劃將Oracle遷移到其他數據庫麼?

參考

原文鏈接:

參考鏈接:

聲明:該文觀點僅代表作者本人,搜狐號系信息發佈平臺,搜狐僅提供信息存儲空間服務。
相關文章