本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
現代化SQL伺服器資料庫
概觀
如果您正在邁向現代化舊版資料庫,以實現可擴展性、效能和成本最佳化,您可能面臨伺服器等商業資料庫的挑戰SQL。商業資料庫昂貴、鎖定客戶並提供懲罰性授權條款。本節提供從SQL伺服器遷移和現代化至開放原始碼資料庫的選項的高階概觀,以及為工作負載選擇最佳選項的相關資訊。
您可以將SQL伺服器資料庫重構為 Amazon Aurora PostgreSQL 等開放原始碼資料庫,以節省 Windows 和SQL伺服器授權成本。Aurora 等雲端原生現代資料庫結合了開放原始碼資料庫的彈性和低成本,以及商業資料庫的強大企業級功能。如果您有可變工作負載或多租戶工作負載,您也可以遷移至 Aurora 無伺服器 V2。視工作負載特性而定,這可將成本降低 90%。此外, AWS 還提供 Babelfish for Aurora Postgre SQL
資料庫產品
從 Windows 上的 SQL Server 遷移至開放原始碼資料庫,例如 Amazon Aurora、Amazon RDS for My 或 Amazon RDS for PostgreSQLSQL,可以大幅節省成本,而不會影響效能或功能。考慮下列各項:
-
從 Amazon 上的 SQL Server Enterprise 版本切換EC2到 Amazon RDS for PostgreSQL 或 Amazon RDS for MySQL 可以節省高達 80% 的成本。
-
從 Amazon 上的 SQL Server Enterprise 版本切換EC2到 Amazon Aurora Postgre SQL-Compatible Edition 或 Amazon Aurora My SQL-Compatible Edition 可以節省高達 70% 的成本。
對於傳統資料庫工作負載,Amazon RDS for PostgreSQL 和 Amazon RDS for MySQL 地址要求,並為關聯式資料庫提供符合成本效益的解決方案。Aurora 新增了許多先前僅限於昂貴商業廠商的可用性和效能功能。Aurora 中的彈性功能是額外的成本。不過,相較於其他商業廠商的類似功能,Aurora 的彈性成本仍然比相同類型功能的商業軟體費用便宜。Aurora 架構經過最佳化,相較於標準 MySQL 和 PostgreSQL 部署,可大幅改善效能。
由於 Aurora 與開放原始碼 PostgreSQL 和我的SQL資料庫相容,因此具有可攜性的額外優勢。無論最佳選項是 Amazon RDS for Postgre SQL、Amazon RDS for My SQL或 Aurora,都是為了了解業務需求,並將必要的功能映射到最佳選項。
Amazon RDS和 Aurora 比較
下表摘要說明 Amazon RDS和 Amazon Aurora 之間的主要差異。
類別 | Amazon RDS for PostgreSQL 或 Amazon RDS for MySQL | Aurora PostgreSQL 或 Aurora MySQL |
---|---|---|
效能 | 良好的效能 | 效能提升 3 倍 |
容錯移轉 | 通常為 60–120 秒* | 通常為 30 秒 |
可擴展性 | 最多 5 個僅供讀取複本 以秒為單位的延遲 |
最多 15 個僅供讀取複本 以毫秒為單位的延遲 |
儲存 | 高達 64 TB | 高達 128 TB |
儲存 HA | 具有一或兩個待命的多可用區,每個待命區都有資料庫複本 | 預設 3 個可用區域 6 個資料複本 |
備份 | 每日快照和日誌備份 | 連續、非同步備份至 Amazon S3 |
Aurora 的創新 | NA | 100 GB 快速資料庫複製 |
自動擴展僅供讀取複本 | ||
查詢計劃管理 | ||
Aurora Serverless | ||
具有全域資料庫的跨區域複本 | ||
叢集快取管理** | ||
平行查詢 | ||
資料庫活動串流 |
*大型交易可能會增加容錯移轉時間
**在 Aurora Postgre 中提供SQL
下表顯示本節中涵蓋的不同資料庫服務的估計每月成本。
資料庫服務 | USD 每月成本* | AWS Pricing Calculator (需要 AWS 帳戶) |
---|---|---|
Amazon RDS for SQL Server Enterprise 版 | 3,750 美元 | 估算 |
Amazon RDS for SQL Server Standard 版 | 2,318 美元 | 估算 |
SQL Amazon 上的 Server Enterprise 版本 EC2 | 2,835 美元 | 估算 |
SQL Amazon 上的 Server Standard 版本 EC2 | 1,345 美元 | 估算 |
Amazon RDS for PostgreSQL | 742 美元 | 估算 |
Amazon RDS for MySQL | 712 美元 | 估算 |
Aurora PostgreSQL | 1,032 美元 | 估算 |
Aurora MySQL | 1,031 美元 | 估算 |
* 儲存體價格包含在執行個體定價中。成本以 us-east-1
區域為基礎。輸送量 和 IOPS是假設。計算適用於 r6i.2xlarge 和 r6g.2xlarge 執行個體。
成本最佳化建議
異質資料庫遷移通常需要將資料庫結構描述從來源轉換為目標資料庫引擎,並將資料從來源遷移至目標資料庫。遷移的第一步是評估並將SQL伺服器結構描述和程式碼物件轉換為目標資料庫引擎。
您可以使用 AWS Schema Conversion Tool (AWS SCT) 來評估資料庫與各種目標開放原始碼資料庫選項的相容性SQL,例如 Amazon RDS for MySQL 或 Amazon RDS for Postgre SQL、Aurora My 和 Postgre SQL。您也可以使用 Babelfish Compass 工具來評估與 Babelfish for Aurora Postgre 的相容性SQL。這使得 AWS SCT 和 Compass 功能強大的工具在決定遷移策略之前,先了解涉及的前期工作。如果您決定繼續, 會將結構描述所需的變更 AWS SCT 自動化。Babelfish Compass 背後的核心理念是允許SQL資料庫移至 Aurora,而不需要或很少修改。Compass 將評估現有的SQL資料庫,以確定是否可以完成此操作。如此一來,在將資料從SQL伺服器遷移到 Aurora 之前,就會知道結果。
AWS SCT 會自動轉換和遷移資料庫結構描述和程式碼至目標資料庫引擎。您可以使用 Babelfish for Aurora PostgreSQL 將資料庫和應用程式從SQL伺服器遷移至 Aurora PostgreSQL,而不需要或最少的結構描述變更。這可以加速遷移。
遷移結構描述後,您可以使用 AWS DMS 遷移資料。 AWS DMS 可以執行完整資料載入並複寫變更,以執行遷移,並縮短停機時間。
本節會更詳細地探索下列工具:
-
AWS Schema Conversion Tool
-
Babelfish for Aurora PostgreSQL
-
Babelfish Compass
-
AWS Database Migration Service
AWS Schema Conversion Tool
您可以使用 AWS SCT 來評估現有的SQL伺服器資料庫,並評估與 Amazon RDS或 Aurora 的相容性。為了簡化遷移程序,您也可以使用 AWS SCT 將結構描述從一個資料庫引擎轉換為異質資料庫遷移中的另一個引擎。您可以使用 AWS SCT 來評估您的應用程式,並轉換內嵌應用程式程式碼,用於撰寫 C#、C++、Java 和其他語言的應用程式。如需詳細資訊,請參閱 文件中的 AWS SCT SQL使用 轉換應用程式 AWS SCT。
AWS SCT 是支援許多資料庫來源 的免費 AWS 工具。若要使用 AWS SCT,請將它指向來源資料庫,然後執行評估。然後, AWS SCT
下表顯示 AWS SCT 產生的範例執行摘要,以顯示將資料庫變更為不同目標平台所涉及的複雜性。
目標平台 |
自動或最小變更 |
複雜動作 |
|||||
儲存物件 |
程式碼物件 |
轉換動作 |
儲存物件 |
程式碼物件 |
|||
Amazon RDS for MySQL |
60 (98%) |
8 (35%) |
42 |
1 (2%) |
1 |
15 (65%) |
56 |
Amazon Aurora My SQL-Compatible Edition |
60 (98%) |
8 (35%) |
42 |
1 (2%) |
1 |
15 (65%) |
56 |
Amazon RDS for PostgreSQL |
60 (98%) |
12 (52%) |
54 |
1 (2%) |
1 |
11 (48%) |
26 |
Amazon Aurora Postgre SQL- 相容版本 |
60 (98%) |
12 (52%) |
54 |
1 (2%) |
1 |
11 (48%) |
26 |
Amazon RDS for MariaDB |
60 (98%) |
7 (30%) |
42 |
1 (2%) |
1 |
16 (70%) |
58 |
Amazon Redshift |
61 (100%) |
9 (39%) |
124 |
0 (0%) |
0 |
14 (61%) |
25 |
AWS Glue |
0 (0%) |
17 (100%) |
0 |
0 (0%) |
0 |
0 (0%) |
0 |
Babelfish |
59 (97%) |
10 (45%) |
20 |
2 (3%) |
2 |
12 (55%) |
30 |
AWS SCT 報告也提供無法自動轉換的結構描述元素詳細資訊。您可以參考AWS 遷移手冊
Babelfish for Aurora PostgreSQL
Babelfish for Aurora PostgreSQL 延伸了 Aurora PostgreSQL,能夠接受來自SQL伺服器用戶端的資料庫連線。Babelfish 可讓原始為SQL伺服器建置的應用程式直接與 Aurora Postgre 搭配使用SQL,幾乎不需要變更程式碼,也不需要變更資料庫驅動程式。Babelfish 將 Aurora PostgreSQL 轉換為雙語,以便 Aurora PostgreSQL 可以使用 T-SQL 和 PL/pgSQL 語言。Babelfish 會將從SQL伺服器遷移到 Aurora Postgre 的努力降至最低SQL。這可加速遷移、將風險降至最低,並大幅降低遷移成本。您可以繼續使用 T SQL後遷移,但也可以選擇使用 PostgreSQL 原生工具
下圖說明使用 T-SQL 的應用程式如何連線至SQL伺服器中的預設連接埠 1433,並使用 Babelfish 翻譯程式與 Aurora PostgreSQL 資料庫通訊,而使用 PL/pgSQL 的應用程式可以使用 Aurora PostgreSQL 中的預設連接埠 5432 直接並同時連線至 Aurora Postgre 資料庫SQL。
Babelfish 不支援某些 SQL Server T-SQL 功能。因此,Amazon 提供評估工具來 line-by-line分析您的SQL陳述式,並判斷 Babelfish 是否不支援其中任何陳述式。
Babelfish 評估有兩個選項。 AWS SCT 可以評估您的SQL伺服器資料庫與 Babelfish 的相容性。另一個選項是 Babelfish Compass 工具,這是建議的解決方案,因為 Compass 工具會與 Babelfish for Aurora Postgre 的新版本更新SQL。
Babelfish Compass
Babelfish Compass
評估和變更完成後,您可以使用 SSMS或 sqlcmd 等SQL伺服器原生工具,將結構描述遷移至 Aurora PostgreSQL。如需指示,請參閱 AWS 資料庫部落格上的使用 Babelfish 文章從SQL伺服器遷移至 Amazon Aurora
AWS Database Migration Service
遷移結構描述後,您可以使用 AWS Database Migration Service (AWS DMS) 將資料遷移至 AWS ,並將停機時間降至最低。 AWS DMS 不僅會執行完整的資料載入,還會在來源系統啟動和執行時,將變更從來源複寫至目的地。在來源和目標資料庫都同步後,切換活動可能會發生,其中應用程式指向完成遷移的目標資料庫。 AWS DMS 目前, 只會針對 Aurora PostgreSQL 目標使用 Babelfish 執行完整資料載入,且不會複寫變更。如需詳細資訊,請參閱 AWS DMS 文件中使用 Babelfish 作為 的目標 AWS Database Migration Service。
AWS DMS 可以同時執行同質 (跨同一資料庫引擎) 和異質 (跨不同資料庫引擎) 遷移。 AWS DMS 支援許多來源和目的地資料庫引擎。如需詳細資訊,請參閱 AWS 資料庫部落格中的使用文章將SQL伺服器資料庫遷移至 Amazon RDS for SQL Server AWS DMS