使用 Arcion 將資料從 Oracle 移轉至 Azure Cosmos DB for Apache Cassandra 帳戶
適用於: Cassandra
Azure Cosmos DB 中的 API for Cassandra 已成為 Oracle 上所執行企業工作負載的絕佳選擇,原因如下:
更好的可擴縮性和可用性:其可消除單一失敗點,讓應用程式有更好的可擴縮性和可用性。
可大幅節省成本:您可以使用 Azure Cosmos DB 來節省成本,其包括 VM、頻寬和任何適用 Oracle 授權的成本。 此外,您也不需要管理資料中心、伺服器、SSD 儲存體、網路和電力的成本。
沒有管理和監視方面的額外負荷:作為完全受控的雲端服務,Azure Cosmos DB 去除了必須管理和監視龐大設定的額外負荷。
如要將資料庫工作負載從某個平台移轉至另一個平台,有多種方式。 Arcion 是一款安全且可靠的工具,可執行從其他資料庫至 Azure Cosmos DB 的零停機移轉。 本文描述使用 Arcion 將資料從 Oracle 資料庫移轉至 Azure Cosmos DB for Apache Cassandra 所需的步驟。
注意
來自 Arcion 的服務目前為搶鮮版 (Beta)。 如需詳細資訊,請透過 Arcion 支援連絡他們
使用 Arcion 執行移轉的優點
Arcion 的移轉解決方案是遵循逐步執行方法,以移轉複雜的作業工作負載。 以下是 Arcion 零停機時間移轉計劃的一些重要層面:
提供將商務邏輯 (資料表、索引、檢視) 從 Oracle 資料庫自動移轉至 Azure Cosmos DB。 您不需要手動建立結構描述。
Arcion 提供大量以及平行的資料庫複寫。 並可讓來源和目標平台在移轉期間,使用名為異動資料擷取 (CDC) 的技術,進行同步處理。 透過 CDC 的使用,Arcion 將持續從源資料庫提取 (Oracle) 的異動資料流,並將其套用至目的地資料庫 (Azure Cosmos DB)。
就算系統中的硬體或軟體失敗時,Arcion 仍可容錯,並且保證只會交付一次資料。
其會使用安全性方法 (如 TLS/SSL 和加密等) 保護傳輸期間的資料。
它提供的服務可將 PL/SQL 中撰寫的複雜商務邏輯,轉換成 Azure Cosmos DB 中的對等商務邏輯。
移轉資料的步驟
本節描述設定 Arcion 的必須步驟,以將資料從 Oracle 資料庫移轉至 Azure Cosmos DB。
在您計畫安裝 Arcion replicant 的電腦上,新增安全性憑證。 Arcion replicant 需要此憑證,才可建立具有指定 Azure Cosmos DB 帳戶的 TLS 連線。 您可以透過下列步驟新增憑證:
wget https://cacert.omniroot.com/bc2025.crt mv bc2025.crt bc2025.cer keytool -keystore $JAVA_HOME/lib/security/cacerts -importcert -alias bc2025ca -file bc2025.cer
您可以在 Arcion 網站上要求示範,以取得 Arcion 安裝與二進位檔案。 或者,您也可以傳送電子郵件給小組。
從 CLI 終端機,設定來源資料庫設定。 使用
vi conf/conn/oracle.yml
命令開啟設定檔,並新增 Oracle 節點、連接埠號碼、使用者名稱、密碼,以及任何其他必要詳細資料的 IP 位址清單,且以逗號分隔。 下列程式碼會顯示一個設定檔範例:type: ORACLE host: localhost port: 53546 service-name: IO username: '<Username of your Oracle database>' password: '<Password of your Oracle database>' conn-cnt: 30 use-ssl: false
在填寫完設定詳細資料後,請儲存並關閉檔案。
您可以選擇性地設定來源資料庫篩選檔案。 篩選檔案會指定要移轉的結構描述或資料表。 使用
vi filter/oracle_filter.yml
命令開啟設定檔,並輸入下列設定詳細資料:allow: - schema: “io_arcion” Types: [TABLE]
在填寫完資料庫篩選詳細資料後,請儲存並關閉檔案。
接下來,您將設定目的地資料庫設定。 在您定義設定之前,請建立 Azure Cosmos DB for Apache Cassandra 帳戶。 從您的資料中選擇正確的分割區索引鍵,然後建立 Keyspace 和資料表,儲存移轉的資料。
在移轉資料之前,請將容器輸送量增加至所需數量,好讓您的應用程式可以快速地移轉。 例如,您可以將輸送量增加到 100000 RU。 在開始移轉之前,先調整輸送量,可協助您縮短移轉資料的時間。
當您完成移轉之後,您必須降低輸送量。 根據每項作業所需的儲存資料量與 RU 數目,您可以估計資料移轉後所需的輸送量。 若要深入了解估計所需 RU 的方法,請參閱在容器和資料庫上佈建輸送量,以及使用 Azure Cosmos DB 容量規劃預估 RU/秒文章。
從 [連接字串] 窗格中,取得 Azure Cosmos DB 帳戶的 [連絡人、連接埠、使用者名稱] 和 [主要密碼]。 您將會在設定檔中使用這些值。
從 CLI 終端機,設定來源資料庫設定。 使用
vi conf/conn/cosmosdb.yml
命令開啟設定檔,並新增主機 URI、連接埠號碼、使用者名稱、密碼及其他必要參數的逗號分隔清單。 以下是設定檔內容的範例:type: COSMOSDB host: `<Azure Cosmos DB account’s Contact point>` port: 10350 username: 'arciondemo' password: `<Your Azure Cosmos DB account’s primary password>' max-connections: 30 use-ssl: false
接下來會使用 Arcion 遷移資料。 您可以在完整或快照模式中執行 Arcion replicant:
完整模式 - 在此模式中,replicant 會在移轉之後繼續執行,並會在來源 Oracle 系統上接聽任何變更。 如果偵測到任何變更,則會將其即時複寫至目標 Azure Cosmos DB 帳戶。
快照模式 - 在此模式中,您可以執行結構描述與單次資料複寫。 此選項並不支援即時複寫。
使用上述兩種模式,可不需停機,即可執行移轉。
若要遷移資料,請從 Arcion replicant 的 CLI 終端機執行下列命令:
./bin/replicant full conf/conn/oracle.yaml conf/conn/cosmosdb.yaml --filter filter/oracle_filter.yaml --replace-existing
Replicant UI 會顯示複寫進度。 一旦結構描述移轉與快照集作業完成之後,進度會顯示為 100%。 在完成移轉之後,您可以驗證目標 Azure Cosmos DB 資料庫上的資料。
因為您已使用完整模式進行移轉,因此您可以執行下述作業,如在來源 Oracle 資料庫上插入、更新或刪除資料等。 您稍後可以驗證其是否會在目標 Azure Cosmos DB 資料庫上即時複寫。 在移轉之後,請務必減少針對您 Azure Cosmos DB 容器所設定的輸送量。
您可以隨時停止 replicant,並使用 --resume 參數將它重新啟動。 複寫會從停止的時間點繼續,因此不會影響資料的一致性。 下列命令顯示如何使用 resume 參數。
./bin/replicant full conf/conn/oracle.yaml conf/conn/cosmosdb.yaml --filter filter/oracle_filter.yaml --replace-existing --resume
若要深入了解資料遷移至目的地,與即時移轉的詳細資訊,請參閱 Arcion replicant 示範。