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