帶你輕松遷移數(shù)據(jù)庫到亞馬遜云科技
原創(chuàng)如今,企業(yè)上云離不開數(shù)據(jù)庫上云。然而,云上有很多數(shù)據(jù)庫類型,企業(yè)該如何選擇?將數(shù)據(jù)庫遷移到云端,該有哪些步驟呢?不同的業(yè)務場景下,企業(yè)該如何選擇?本文將介紹 亞馬遜云科技 各種常用數(shù)據(jù)庫特性,以及如何滿足客戶不同業(yè)務需求,并列舉數(shù)據(jù)庫遷移案例為大家演示如何輕松便捷地把數(shù)據(jù)庫遷移上云。
一、亞馬遜云科技 數(shù)據(jù)庫概覽
在這個互聯(lián)網(wǎng)極其發(fā)達的時代,我們每個人會接收以及生產(chǎn)各式各樣的信息,數(shù)據(jù)的重要性已經(jīng)滲透到每個角落,成為每個行業(yè)發(fā)展和變革的必要元素。我們?nèi)粘J褂玫氖謾C應用,比如微信、支付寶、微博等,里面的數(shù)據(jù)都是需要數(shù)據(jù)庫來進行存儲,不同的應用會使用不同類別的數(shù)據(jù)庫,甚至同一個應用可能同時使用多種數(shù)據(jù)庫。
應用離開了數(shù)據(jù)庫就像魚兒離開了水,由此可見數(shù)據(jù)庫在當今互聯(lián)網(wǎng)的重要性。我們甚至可以說當今世界最寶貴的資源不再是石油,而是數(shù)據(jù)。隨著業(yè)務的快速發(fā)展,全球化業(yè)務新興需求增加,本地傳統(tǒng)數(shù)據(jù)庫已經(jīng)無法為快速發(fā)展的業(yè)務提供支持,我們需要探索一種新的方式,把本地數(shù)據(jù)庫遷移到云中,利用云中數(shù)據(jù)庫的優(yōu)勢來解決本地數(shù)據(jù)庫中遇到的瓶頸問題。
我對各家云廠商數(shù)據(jù)庫種類做了一個比較,發(fā)現(xiàn) 亞馬遜云科技 為用戶提供的數(shù)據(jù)庫種類最為豐富,幾乎把所有數(shù)據(jù)庫相關的應用場景都捕捉到了。下面通過一個列表,來瀏覽一下 亞馬遜云科技的數(shù)據(jù)庫種類,其中關系型數(shù)據(jù)庫最為豐富,也是目前應用使用最多的數(shù)據(jù)庫。
圖片來源于亞馬遜云科技全球網(wǎng)站截圖
以上這些數(shù)據(jù)庫由 亞馬遜云科技 完全托管,用戶不用去管理底層硬件系統(tǒng)升級維護等相關工作,這也是推薦使用全托管數(shù)據(jù)庫而非自建數(shù)據(jù)庫的原因。為了方便客戶數(shù)據(jù)庫遷移上云,亞馬遜云科技還為客戶提供了非常方便的遷移工具 DMS,幫助用戶輕松經(jīng)濟高效的完成遷移任務。
那么面對這么多種類的數(shù)據(jù)庫,尤其是一些新型數(shù)據(jù)庫,我們從來沒有使用過,我們該如何選擇?我們需要從業(yè)務場景為出發(fā)點來分析使用哪種數(shù)據(jù)庫,下面我對 亞馬遜云科技數(shù)據(jù)庫的使用場景做個簡單的介紹,也讓大家對 亞馬遜云科技各種數(shù)據(jù)庫的應用場景有一個大致了解。
數(shù)據(jù)庫種類 |
應用場景 |
---|---|
關系數(shù)據(jù)(RDS) |
傳統(tǒng)應用程序、ERP、CRM 、電子商務 |
鍵值數(shù)據(jù)(DynamoDB) |
高流量 Web 應用、電子商務系統(tǒng)、游戲應用程序、微服務 |
寬列數(shù)據(jù)(Keyspaces) |
用于設備維護、隊列管理和路線優(yōu)化的大規(guī)模工業(yè)應用程序 |
文檔數(shù)據(jù)(DocumentDB) |
內(nèi)容管理、目錄、用戶配置文件、移動和 Web 應用程序 |
內(nèi)存數(shù)據(jù)(ElasticCache) |
緩存、會話管理、游戲排行榜、地理空間應用程序 |
圖數(shù)據(jù)(Neptune) |
欺詐檢測、社交網(wǎng)絡、推薦引擎、知識圖譜 |
時序數(shù)據(jù)(Timestream) |
IoT 應用、開發(fā)運營和工業(yè)遙測 |
分類賬數(shù)據(jù)(QLDB) |
系統(tǒng)記錄、供應鏈、注冊、銀行事務 |
初步了解 亞馬遜云科技各項數(shù)據(jù)庫的應用場景之后,我們詳細介紹 亞馬遜云科技各項數(shù)據(jù)庫特性,以及 亞馬遜云科技數(shù)據(jù)庫如何滿足用戶在各種業(yè)務場景下面的需求。
數(shù)據(jù)庫家族
關系型數(shù)據(jù)庫
關系型數(shù)據(jù)庫是起源非常早的數(shù)據(jù)庫,也是目前各種應用使用最多的數(shù)據(jù)庫。我們使用各種應用都需要注冊用戶,這些用戶數(shù)據(jù)存放在關系型數(shù)據(jù)庫里面;你在電商網(wǎng)站下了一個訂單,訂單也是存放在關系型數(shù)據(jù)庫里面;我們訪問的網(wǎng)站,其后臺數(shù)據(jù)也是存放在關系型數(shù)據(jù)庫里面。所以說關系型數(shù)據(jù)庫無所不在。
說到 亞馬遜云科技的關系型數(shù)據(jù)庫,那不得不說一下 Amazon Aurora,Aurora 是 亞馬遜云科技 專為云而打造的云原生數(shù)據(jù)庫,它兼容 MySQL 和 PostgreSQL,它可以支撐我們各種關系型數(shù)據(jù)庫的應用場景,性能好、易擴展、安全、便于管理,Aurora 如此好用,也依托于它下面的一些特性:
- 性價比:吞吐量為標準 MySQL 的五倍,標準 PostgreSQL 的三倍,成本只有商業(yè)數(shù)據(jù)庫的十分之一。
- 擴展性:基于共享存儲,主從復制延遲很低,可跨三個可用區(qū)擴展至最多 15 個只讀副本。
- 可用性與持久性:具有容錯能力的自我修復存儲;跨三個可用區(qū)建立六個數(shù)據(jù)副本;持續(xù)備份至 S3。
- 安全性:VPC 網(wǎng)絡隔離、靜態(tài)/傳輸數(shù)據(jù)加密、滿足大多數(shù)地區(qū)合規(guī)性要求。
- 全球數(shù)據(jù)庫:數(shù)據(jù)庫跨越多個 亞馬遜云科技地區(qū)同步復制,將數(shù)據(jù)庫置于用戶端,可以實現(xiàn)低延遲(典型延遲小于 1 秒)的本地讀取和跨區(qū)域災難恢復。
- 無服務器:可以根據(jù)工作負載自動擴容縮容,無需關心底層硬件擴展,適合業(yè)務波動的應用。
Aurora 具有很多傳統(tǒng)數(shù)據(jù)庫不具有的特性,這樣讓 Aurora 成為關系型數(shù)據(jù)庫的首選。不過如果你不想更換數(shù)據(jù)庫類型,把本地現(xiàn)有的數(shù)據(jù)庫遷移到云中,亞馬遜云科技還為用戶提供 MySQL、MariaDB、PostgreSQL、SQL Server、Oracle 等關系型數(shù)據(jù)庫,客戶可選擇相同的數(shù)據(jù)庫引擎進行遷移。并且這些數(shù)據(jù)庫依托于 亞馬遜云科技強大的基礎設施和管理,同樣安全穩(wěn)定。
如果 Aurora 非常吸引你,而你現(xiàn)在用的是 SQL Server 或者 Oracle,那該怎么辦?不用擔心,亞馬遜云科技為客戶提供了 Schema Conversion Tool、DMS這2個服務,可以幫助客戶評估并且轉(zhuǎn)換數(shù)據(jù)庫對象,非常便捷地將本地數(shù)據(jù)庫遷移到 Aurora。
鍵值數(shù)據(jù)庫
互聯(lián)網(wǎng)發(fā)展到今天,數(shù)據(jù)表越來越大,有的應用要求寫得快、讀的快等需求。關系型數(shù)據(jù)庫已經(jīng)無法滿足我們的需求,因此 NoSQL 數(shù)據(jù)庫也就誕生了。我們把一些不需要關系查詢,要求讀寫快的應用數(shù)據(jù)放置在 NoSQL 數(shù)據(jù)庫里面來解決性能問題。
考慮到客戶的需求,亞馬遜云科技也為客戶提供了自研的 NoSQL 數(shù)據(jù)庫 Amazon DynamoDB,它支持鍵值存儲,也支持文檔存儲,特別以鍵值存儲為核心,面對海量數(shù)據(jù),性能非常強悍。因其由 亞馬遜云科技完全托管,所以也是無服務器架構(gòu)中的重要一員。
- 擴展性:可自動縱向擴展和縮減表,以針對容量做出調(diào)整并保持性能,提供任意級別的請求流量。
- 高性能:對于一般的請求,DynamoDB 在個位數(shù)毫秒內(nèi)可以完成,而且處理請求的速度不會隨著數(shù)據(jù)量的增加而減慢。
- 分布式:無中心化架構(gòu),一個表上的數(shù)據(jù)可以分布到幾百臺機器上。
我也在 亞馬遜云科技官方渠道了解到,匯量科技是一家廣告公司,他們也大量使用了 亞馬遜云科技的服務,尤其是對廣告點擊的數(shù)據(jù),正是采用了 DynamoDB 數(shù)據(jù)存儲,可以支撐 2019 年日均廣告請求量 600 億次,峰值高達 1000 億次。如此巨大的請求量,放在關系型數(shù)據(jù)庫將無法支撐,由此可見 DynamoDB 在這種應用場景性能多么強悍。
文檔數(shù)據(jù)庫
JSON 數(shù)據(jù)無數(shù)不在,它是一種非常靈活的格式,你可以很方便地修改一條數(shù)據(jù)的 Schema。它是一種輕量級的數(shù)據(jù)交換格式,目前使用最廣泛的 API 標準 RESTfull API,它的輸出標準也是 JSON。使用 JSON 進行數(shù)據(jù)建模最符合人類語言的邏輯。以上這些使用場景,我們都需要一種文檔數(shù)據(jù)庫來存儲 JSON 數(shù)據(jù),它既不是關系型數(shù)據(jù)庫,也不是鍵值數(shù)據(jù)庫。
哪些應用場景會用到文檔數(shù)據(jù)庫呢?因為 JSON 數(shù)據(jù)的靈活,文檔數(shù)據(jù)已經(jīng)滲透到各個領域,比如在游戲中,存儲用戶信息,裝備積分等;在物流中,存儲訂單信息,訂單狀態(tài);在社交中,存儲用戶信息以及用戶發(fā)表的朋友圈信息;在視頻直播中,存儲用戶信息和禮物信息等。
為了滿足客戶這些使用場景,亞馬遜云科技為客戶提供了 DocumentDB 數(shù)據(jù)庫,見名知意,它是一個云原生的文檔數(shù)據(jù)庫,與 MongoDB 兼容,你可以把現(xiàn)有的 MongoDB 數(shù)據(jù)庫通過 DMS 或 mongodump/mongorestore 等原生方式遷移上 亞馬遜云科技。
DocumentDB 擴展性很強,水平擴展在分鐘級別,最多可以擴展到 15 個讀副本;垂直擴展也在分鐘級,最高擴展至 768 GiB 內(nèi)存;存儲可以自動擴展,最高支持 64TB。這些特性都是我們在自建數(shù)據(jù)庫很難實現(xiàn)的。
內(nèi)存數(shù)據(jù)庫
如今的應用越做越大,很多都已經(jīng)開始進行分布式或者微服務架構(gòu),這時候就需要一個存儲庫來儲存用戶的會話信息,不然用戶可能處于頻繁的登陸狀態(tài);還有應用要求提升數(shù)據(jù)查詢速度,這就需要給數(shù)據(jù)庫添加緩存層等。以上這些應用場景都會需要內(nèi)存數(shù)據(jù)庫。
那么 亞馬遜云科技 同樣在云中為客戶提供了完全托管的內(nèi)存數(shù)據(jù)庫 Amazon ElastiCache,客戶可以把一些熱數(shù)據(jù)、會話數(shù)據(jù)、消息數(shù)據(jù)、排行數(shù)據(jù)等存放在其中,以加速數(shù)據(jù)的存取速度。它支持兩種存儲引擎,Memcached 和 Redis。
- 極致性能:能夠支持要求最嚴苛且需要亞毫秒級響應時間的應用程序。
- 輕松擴展:通過使用 亞馬遜云科技管理控制臺或者簡單的 API,用戶可以根據(jù)應用需要添加或刪除緩存集群中的節(jié)點。
- 安全性:支持 Amazon VPC,可以進行網(wǎng)絡隔離。通過安全組來管理集群的訪問權限。
- 高可用:可將 2 到 6 個節(jié)點歸入一個具有副本的集群,如果一個節(jié)點出于任何原因發(fā)生故障,您不會丟失所有數(shù)據(jù)。
圖數(shù)據(jù)庫
關系型數(shù)據(jù)庫有了,鍵值和內(nèi)存數(shù)據(jù)庫也有了,已經(jīng)基本滿足大部分應用的日常需求,對于 亞馬遜云科技來說,這還不夠。用戶還會面臨性能和schema變更不易的問題,因此 亞馬遜云科技推出了圖數(shù)據(jù)庫 Neptune。
使用圖形數(shù)據(jù)庫處理社交網(wǎng)絡數(shù)據(jù)非常高效,Amazon Neptune 可以快速輕松地處理大量的用戶配置文件和交互,從而構(gòu)建社交網(wǎng)絡應用程序。
時序數(shù)據(jù)庫
顧名思義,時序數(shù)據(jù)庫是和時間相關的數(shù)據(jù)庫。因為很多對數(shù)據(jù)的查新都是以時間段為基礎的, 適用于 IoT 和運營應用程序。因此 亞馬遜云科技為用戶提供了 Amazon Timestream,專門處理時序數(shù)據(jù),目前還處于注冊預覽版。
分類賬數(shù)據(jù)庫
分類賬數(shù)據(jù)庫的使用場景也很好理解,最適合的場景是“記賬本”。“賬本”是不能被更改的,每一筆記錄都不能被改動,被忠實的記錄下來,以備查詢。Amazon Quantum Ledger Database 就應運而生了。
這聽起來和“區(qū)塊鏈”有點關系,不過 QLDB 是有中心的,而“區(qū)塊鏈”是去中心化的,那么你可能會問,亞馬遜云科技有沒有去中心化的數(shù)據(jù)庫,回答是有的,那就是 Amazon Managed Blockchain。我們很難去想 亞馬遜云科技到底不存在什么數(shù)據(jù)庫,用戶需要的它有,用戶用不到的它也有,可以說達到了“應有盡有”的程度。
遷移工具
介紹了這么多的數(shù)據(jù)庫,以及各種數(shù)據(jù)庫的使用場景和特性,幾乎滿足日常應用的所有需求,那我們肯定是想知道如何使用這些數(shù)據(jù)庫,以及如何把目前本地自建的數(shù)據(jù)庫遷移到云中。下面我們將介紹 亞馬遜云科技為客戶提供的遷移神器 Amazon Database Migration Service,以及 DMS 如何幫助客戶便捷高效地把數(shù)據(jù)遷移到云中的數(shù)據(jù)庫。
同樣 DMS 也是完全托管的,這讓我們把主要精力放在遷移任務上面來。DMS 支持多種數(shù)據(jù)庫作為遷移的源,也支持多種數(shù)據(jù)庫作為遷移的目標,從下面的表格可以詳細了解支持哪些數(shù)據(jù)庫:
數(shù)據(jù)遷移的源 |
數(shù)據(jù)遷移的目標 |
---|---|
Oracle、SQL Server、MySQL、MariaDB、PostgreSQL、SAP ASE、MongoDB、DB2 LUW、Azure SQL、Amazon RDS、S3 |
Oracle、SQL Server、MySQL、MariaDB、PostgreSQL、SAP ASE、Amazon RDS、Amazon Redshift、Amazon S3、Amazon DynamoDB、Amazon Elasticsearch Service、Amazon Kinesis Data Streams、Amazon DocumentDB、Amazon Neptune、Apache Kafka |
我們可以從表格中看到各種數(shù)據(jù)庫引擎,Amazon DMS 支持同構(gòu)數(shù)據(jù)庫遷移,如 MySQL 遷移到 MySQL,也支持異構(gòu)數(shù)據(jù)遷移,如 Oracle 到 MySQL,在進行異構(gòu)數(shù)據(jù)庫遷移的過程,亞馬遜云科技還為用戶提供一款工具 Amazon Schema Conversion Tool,可以使用 Amazon SCT 將源數(shù)據(jù)庫架構(gòu)和大部分對象自動轉(zhuǎn)換為與目標數(shù)據(jù)庫兼容的格式。
對 DMS 的總結(jié),可以簡單概括為下面幾個小特性:
- 簡單易用
- 最少停機時間
- 持續(xù)數(shù)據(jù)復制
- 多數(shù)據(jù)源支持
- 運行可靠
Amazon DMS 可以成為復制和遷移數(shù)據(jù)庫的最佳工具,它可以幫助用戶將數(shù)據(jù)庫工作負載遷移到 亞馬遜云科技并更改數(shù)據(jù)庫引擎,同時最大程度地減少停機時間。根據(jù) 亞馬遜云科技的說明,使用 Amazon DMS 已經(jīng)進行了 20,000 個數(shù)據(jù)庫到 亞馬遜云科技的遷移。由于使用該產(chǎn)品獲得了如此廣泛的成功,因此沒有理由不將數(shù)據(jù)庫遷移到 亞馬遜云科技 ,那么下面就開始我們的數(shù)據(jù)庫遷移之旅吧。
遷移方式
所有的數(shù)據(jù)庫都有自己的備份還原工具,使用這些工具我們可以方便的進行數(shù)據(jù)離線遷移,但是會造成較長的停機時間,主要看數(shù)據(jù)量的大小。如果需要最小的停機時間,那 DMS 是最佳選擇。下面大致列舉了各種遷移方式對業(yè)務的一個影響程度,可以根據(jù)自己的實際情況進行選擇。
因素 |
離線(轉(zhuǎn)儲) |
混合 |
在線(DMS) |
---|---|---|---|
復雜度 |
非常簡單 |
復雜 |
中等 |
速度 |
快 |
中等 |
慢 |
停機時間 |
高 |
中 |
低 |
二、云上數(shù)據(jù)庫遷移實踐
遷移解決方案
我們在本地數(shù)據(jù)中心有各式各樣的自建數(shù)據(jù)庫,如果對數(shù)據(jù)庫遷移上云,我們該如何選擇云中的數(shù)據(jù)庫呢,我下面簡單整理了一個列表,針對不同的場景,我們可以選擇對應的解決方案。
- 現(xiàn)有應用程序
- MySQL ---> Amazon Aurora for MySQL,RDS for MySQL
- PostgreSQL ---> Amazon Aurora for PostgreSQL,RDS for PostgreSQL
- MariaDB ---> Amazon Aurora for MySQL,RDS for MariaDB
- Oracle ---> 利用 Amazon SCT 檢測復雜性因素 ---> Amazon Aurora,RDS for Oracle
- SQL Server ---> 利用 Amazon SCT 檢測復雜性因素 ---> Amazon Aurora,RDS for SQL Server
- MongoDB ---> DocumentDB
- 新的應用程序
- 如果不需要關系類功能 ---> Amazon DynamoDB
- 如果需要關系類功能 ---> Amazon Aurora
- 內(nèi)存存儲/緩存
- Redis ---> Amazon ElasticCache
- Memcached ---> Amazon ElasticCache
- 時序數(shù)據(jù)
- Amazon Timestream(注冊預覽版)
- 跟蹤各應用程序變更、加密可驗證性,具備中央可信權威
- Amazon Quantum Ledger Database
遷移須知
數(shù)據(jù)庫是任何應用程序的主要組件之一,因此我們必須謹慎地進行遷移。您需要知道數(shù)據(jù)庫的大小,數(shù)據(jù)庫內(nèi)部表的大小以及數(shù)據(jù)庫模式。
使用 Amazon DMS 將數(shù)據(jù)遷移到亞馬遜云科技 很簡單。首先在 亞馬遜云科技 環(huán)境中創(chuàng)建復制實例,然后 Amazon DMS 連接源數(shù)據(jù)庫端點和目標數(shù)據(jù)庫端點。遷移開始時,Amazon DMS 會創(chuàng)建表,加載數(shù)據(jù)并同步數(shù)據(jù)庫。整個復制任務都由復制實例承擔,建議創(chuàng)建配置比較大的復制實例。
使用 Amazon DMS 執(zhí)行遷移的總體流程如下:
- 創(chuàng)建目標數(shù)據(jù)庫。
- 復制架構(gòu)。
- 創(chuàng)建 Amazon DMS 復制實例。
- 定義源數(shù)據(jù)庫和目標數(shù)據(jù)庫的終端節(jié)點。
- 創(chuàng)建并執(zhí)行遷移任務。
將 MySQL 數(shù)據(jù)遷移到 Aurora MySQL
這個案例是一個同構(gòu)數(shù)據(jù)庫遷移,相對來說比較簡單,遷移的方案有三種,可以直接使用mysqldump導出數(shù)據(jù),然后再導入到 Aurora,適合數(shù)據(jù)量不大的數(shù)據(jù)庫,另外一種是直接把數(shù)據(jù)庫的源文件復制到 S3 存儲桶,可以使用 Xtrabackup 備份數(shù)據(jù)庫然后傳到 S3 中,然后用這些文件還原到 Aurora 數(shù)據(jù)庫,適合比較大量的數(shù)據(jù),不過這兩種數(shù)據(jù)庫都是離線傳輸,需要停機遷移。
針對實時在線遷移數(shù)據(jù)庫,我們需要用到 Amazon DMS,下面我將演示如何從一臺 MySQL 數(shù)據(jù)庫,實時遷移數(shù)據(jù)到 Aurora,對于源數(shù)據(jù)庫,我們可以使用 Amazon RDS,或者在 EC2 上面的自建數(shù)據(jù)庫,或是其他云廠商的 MySQL 數(shù)據(jù)庫,下面我選擇使用在 EC2 上面自建的數(shù)據(jù)來進行演示,所以操作均在 Amazon us-east-1 區(qū)域。
1、配置源數(shù)據(jù)庫
源數(shù)據(jù)庫我們已經(jīng)有了,你可以創(chuàng)建一個只讀權限的臨時賬戶用于數(shù)據(jù)遷移,我們這里就直接用具有讀寫權限的賬戶演示。
2、創(chuàng)建 Aurora 數(shù)據(jù)庫
首先我們在 亞馬遜云科技控制臺中創(chuàng)建一個 Aurora MySQL 數(shù)據(jù)庫作為我們的目標數(shù)據(jù)庫,因為不是主要介紹創(chuàng)建數(shù)據(jù)庫,所以創(chuàng)建過程這里不再演示,創(chuàng)建完成之后,需要記錄下數(shù)據(jù)庫地址,賬戶密碼,當然為了安全,你也可以單獨創(chuàng)建一個用于遷移的臨時賬戶。
3、創(chuàng)建復制實例
Amazon DMS 復制實例執(zhí)行源和目標之間的實際數(shù)據(jù)遷移。復制實例負責整個數(shù)據(jù)的遷移,對更改的數(shù)據(jù)進行緩存,所以說大一點的實例性能更好,縮短遷移時間。打開 Amazon DMS 控制臺,選擇創(chuàng)建復制實例,注意網(wǎng)絡方面的限制,需要復制實例可以連接到兩個數(shù)據(jù)庫。
圖片來源于亞馬遜云科技全球網(wǎng)站截圖
4、創(chuàng)建 MySQL 終端節(jié)點
在 Amazon DMS 控制臺中,在導航窗格中選擇 Endpoints (終端節(jié)點)。
圖片來源于亞馬遜云科技全球網(wǎng)站截圖
5、創(chuàng)建 Aurora 終端節(jié)點
目標終端節(jié)點會更簡單一寫,因為是 Amazon RDS,我們可以直接勾選。
圖片來源于亞馬遜云科技全球網(wǎng)站截圖
6、創(chuàng)建遷移任務
遷移任務中的遷移類型我們選擇復制現(xiàn)有數(shù)據(jù)以及持續(xù)復制變更的數(shù)據(jù),記得源數(shù)據(jù)庫開啟 binlog 日志。
在表映射選項里面,選擇告知 DMS 應該遷移哪些表,遷移過程中還可以對表名進行一些轉(zhuǎn)換,我們這里就選擇完全復制整個數(shù)據(jù)庫。
圖片來源于亞馬遜云科技全球網(wǎng)站截圖
7、監(jiān)控遷移任務
再等待一段時間之后,我們可以在任務詳情里面看到數(shù)據(jù)遷移完成,并且目標數(shù)據(jù)庫數(shù)據(jù)檢查沒有問題。
圖片來源于亞馬遜云科技全球網(wǎng)站截圖
我們可以看到,通過 DMS 僅僅需要簡單幾步就可以把數(shù)據(jù)庫遷移到亞馬遜云科技,并且源數(shù)據(jù)庫變更數(shù)據(jù)會實時的更新到目標數(shù)據(jù)庫中。
將 SQL Server 數(shù)據(jù)庫遷移到 Aurora MySQL
這個案例是一個異構(gòu)數(shù)據(jù)庫遷移,我們會用到 Amazon SCT 進行 Schema 轉(zhuǎn)換,Amazon DMS 支持從 RDS 遷移到 RDS,所以這次的源數(shù)據(jù)庫 SQL Server 是 Amazon RDS for SQL Server(Enterprise Edition)。
Schema 轉(zhuǎn)換
1、在本地計算機安裝 Amazon SCT
需要在自己的電腦上面安裝 Amazon SCT 工具,以及連接 SQL Server 的 JDBC 驅(qū)動和 Aurora MySQL 的 JDBC 驅(qū)動。
驅(qū)動下載地址參照官方文檔 https://docs.aws.amazon.com/zh_cn/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.JDBCDrivers
然后啟動 SCT,配置一下剛剛下載的 JDBC 驅(qū)動。
圖片來源于亞馬遜云科技全球網(wǎng)站截圖
2、創(chuàng)建遷移項目
打開 Amazon SCT,選擇創(chuàng)建一個新項目,選擇源和目標數(shù)據(jù)引擎。
圖片來源于亞馬遜云科技全球網(wǎng)站截圖
分別連接 SQL Server 和 Amazon Aurora 數(shù)據(jù)庫。
圖片來源于亞馬遜云科技全球網(wǎng)站截圖
勾選我們要遷移的數(shù)據(jù)庫,右鍵選擇 Create report。
圖片來源于亞馬遜云科技全球網(wǎng)站截圖
查看報告,看看有沒有問題,如果沒有問題,我們就可以直接進行轉(zhuǎn)換了。
圖片來源于亞馬遜云科技全球網(wǎng)站截圖
我這邊遇到一個存儲過程 MySQL 不支持,我這邊忽略掉,比較懂數(shù)據(jù)庫的人員可以進行修正。
圖片來源于亞馬遜云科技全球網(wǎng)站截圖
3、Schema 轉(zhuǎn)換
問題處理掉之后,我們就可以進行 Schema 轉(zhuǎn)換了,和前面一樣,右鍵數(shù)據(jù)庫,選擇 Convert schema。
圖片來源于亞馬遜云科技全球網(wǎng)站截圖
執(zhí)行之后,很快我們在目標數(shù)據(jù)庫看到了轉(zhuǎn)換的 Schema。
圖片來源于亞馬遜云科技全球網(wǎng)站截圖
數(shù)據(jù)遷移
對于 SQL Server 的數(shù)據(jù)遷移方式,我們選擇一次性遷移,不進行持續(xù)復制,持續(xù)復制配置過程稍微復雜一些,需要對源數(shù)據(jù)庫進行一些配置,需要持續(xù)復制的用戶,可以參照 亞馬遜云科技官方文檔配置。
1、創(chuàng)建復制實例
打開 DMS 控制臺,創(chuàng)建復制實例,同樣注意網(wǎng)絡情況,復制實例需要鏈接源和目標數(shù)據(jù)庫。
圖片來源于亞馬遜云科技全球網(wǎng)站截圖
2、創(chuàng)建 Amazon DMS 源和目標終端節(jié)點
創(chuàng)建完終端節(jié)點之后,首先運行一下測試,可以連接成功即可。
圖片來源于亞馬遜云科技全球網(wǎng)站截圖
圖片來源于亞馬遜云科技全球網(wǎng)站截圖
3、創(chuàng)建遷移任務
可以按照我下面的表格選擇來配置遷移任務。
Parameter |
Value |
---|---|
Task identifier |
AuroraMigrationTask |
Replication instance |
replication-server |
Source database endpoint |
sqlserver |
Target database endpoint |
dst-mysql-instance-1 |
Migration type |
Migrate existing data |
Start task on create |
Checked |
Target table preparation mode |
Do nothing |
Include LOB columns in replication |
Limited LOB mode |
Max LOB size (KB) |
32 |
Enable validation |
Unchecked |
Enable CloudWatch logs |
Checked |
在表映射方面,我們可以這樣設定,就不進行表名的轉(zhuǎn)換了,然后創(chuàng)建任務即可。
圖片來源于亞馬遜云科技全球網(wǎng)站截圖
4、檢查目標庫數(shù)據(jù)
可以看到,遷移任務完成,數(shù)據(jù)也都轉(zhuǎn)移過來了。
圖片來源于亞馬遜云科技全球網(wǎng)站截圖
至此我們完成了異構(gòu)數(shù)據(jù)庫遷移,整個過程會比同構(gòu)數(shù)據(jù)庫遷移麻煩一些,不過整體也是比較簡單了。DMS 完全托管、按量付費、圖形界面操作,是數(shù)據(jù)庫上云的利器,推薦大家使用 DMS 對數(shù)據(jù)庫遷移上云。
三、總結(jié)
亞馬遜云科技 數(shù)據(jù)庫優(yōu)勢
在眾多的云廠商中,我們?yōu)槭裁催x擇 亞馬遜云科技 數(shù)據(jù)庫服務,亞馬遜云科技還有哪些獨特的優(yōu)勢呢?我主要總結(jié)以下幾點:
成本優(yōu)勢
使用自建數(shù)據(jù),企業(yè)首先需要支付一筆資金購買服務器,一些商業(yè)數(shù)據(jù)庫的授權,需要再次支付一筆費用。如果遷移到 亞馬遜云科技的自研數(shù)據(jù)庫,客戶不必再支付高昂的商業(yè)數(shù)據(jù)庫授權,也不必再去花費大量資金去購買服務器,在云中,客戶只需要按量付費,因此很多企業(yè)由于把數(shù)據(jù)庫遷移到 亞馬遜云科技而節(jié)省巨大費用支出。
從最近的 亞馬遜云科技公告中,看到 亞馬遜云科技幫助三星把數(shù)據(jù)從商業(yè)數(shù)據(jù)庫 Oracle 遷移到了 Aurora,為三星每月的數(shù)據(jù)庫成本降低了 44%,并讓三星的數(shù)據(jù)庫運行更加穩(wěn)定。
完全托管
以上所說的幾種數(shù)據(jù)庫都是 亞馬遜云科技完全托管的數(shù)據(jù)庫,完全托管意味著零運維。首先客戶不需要去維護硬件的生命周期、系統(tǒng)的補丁更新、高可用的部署、備份等。如果需要對數(shù)據(jù)庫擴展,也只需點幾下鼠標而已,非讓方便,讓 DBA 從復雜的數(shù)據(jù)庫運維中解脫出來,專注于數(shù)據(jù)庫性能調(diào)優(yōu)。
全球優(yōu)勢
過去我們需要借助非常復雜的技術手段,花費大量的成本、甚至犧牲一定的可用性,才能實現(xiàn)快速、穩(wěn)定、安全的跨區(qū)域的數(shù)據(jù)復制,現(xiàn)在只要在 亞馬遜云科技中輕輕點幾下鼠標即可完成。
亞馬遜云科技現(xiàn)已在全球 24 個地理區(qū)域內(nèi)運營著 77 個可用區(qū),180個邊緣站點等,為 亞馬遜云科技相應全球數(shù)據(jù)庫提供了基礎保障。依托于 亞馬遜云科技強大的基礎設施,目前已經(jīng)有三款數(shù)據(jù)庫支持全球同步,延遲通常不超過 1 秒,可以滿足目前大部分應用的需求。
對于關系型數(shù)據(jù)庫的全球同步需求,Amazon Aurora Global Database 能夠允許用戶輕松實現(xiàn)跨區(qū)域的數(shù)據(jù)庫部署,讓用戶輕松在區(qū)域之間復制數(shù)據(jù)和解決更新沖突,從而更加專注于應用程序的業(yè)務邏輯。
亞馬遜云科技還提供了 Amazon DynamoDB Global Tables。它基于 DynamoDB 的全球覆蓋范圍構(gòu)建,具有多區(qū)域、多主表的特性,可讓全局分布式應用程序?qū)崿F(xiàn)快速的本地讀寫性能,為用戶提供一個完全托管的、多區(qū)域、多主的 Key-Value 類型數(shù)據(jù)庫。
針對緩存數(shù)據(jù)庫,在眾多組織都在利用 Redis 為全球用戶提供低延遲訪問的背景下,亞馬遜云科技為更好滿足客戶的需求,亞馬遜云科技 推出了 Amazon ElastiCache Global Datastore for Redis 全球緩存數(shù)據(jù)庫,為用戶提供數(shù)據(jù)跨區(qū)域復制,可以在一個區(qū)域?qū)懭霐?shù)據(jù),同時在其他區(qū)域讀取數(shù)據(jù),使緩存的數(shù)據(jù)更接近用戶,減少網(wǎng)絡延遲,并提高應用程序的響應能力。
心得與建議
當然,數(shù)據(jù)庫遷移是一個龐大而復雜的工程,尤其將數(shù)據(jù)庫遷移上公有云,除了數(shù)據(jù)庫知識更需要了解公有云上網(wǎng)絡,存儲,虛擬化等一系列知識。但是,我們不應該僅僅將數(shù)據(jù)庫上云看做一個復雜的任務,更應該把它當做一個優(yōu)化我們數(shù)據(jù)庫的契機,那么上云過程中有哪些注意事項和建議呢?
對于一些允許停機的應用,這部分數(shù)據(jù)我們推薦使用離線遷移,整個操作比較簡單,速度快,不容易出問題。
如果業(yè)務需要在線遷移,那么推薦使用 DMS 進行遷移,需要注意的是,在數(shù)據(jù)庫切換之前先停掉源數(shù)據(jù)庫寫入,帶數(shù)據(jù)完全同步到目標數(shù)據(jù)庫之后進行數(shù)據(jù)庫切換。
如果遷移的數(shù)據(jù)量比較大,建議選擇配置比較大的復制實例,這樣可以加速我們的復制速度。
如果您想要轉(zhuǎn)換數(shù)據(jù)庫引擎,在使用 SCT 進行 Schema 轉(zhuǎn)換的時候可能會遇到一些目標數(shù)據(jù)庫不支持的地方,請先聯(lián)系 DBA 人員,對這些地方進行更改,滿足之后再進行轉(zhuǎn)換。
亞馬遜云科技黑客松參賽秘籍重磅來襲,8月14日晚8點,亞馬遜云科技專家傳授秘籍心法!直播地址:http://live.bilibili.com/21988917
PS:亞馬遜云科技云計算社群成立啦!在這里可以幫助你快速了解亞馬遜云科技云計算最新動態(tài)、獲取相關技術資料哦~想要進群的小伙伴請掃碼回復【亞馬遜云科技】,24h內(nèi)審核進群。