附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱開始使用 Oracle Cloud Infrastructure Free Tier 。
- 其使用 Oracle Cloud Infrastructure 證明資料、租用戶以及區間的範例值。完成實驗室時,請將這些值替代為雲端環境特定的值。
使用 OCI Object Storage 和 Rclone 使用 PostgreSQL 移轉至 Oracle Cloud Infrastructure Database
簡介
Oracle Cloud Infrastructure Database with PostgreSQL (OCI Database with PostgreSQL) 是一項完全託管的服務,可減少打補丁、備份和儲存管理等例行任務所花費的時間。其主要功能包括資料庫最佳化的儲存架構,可將 SQL 交易處理引擎與儲存層分離、多個複本提升使用者活動、跨區域備份複本,以及與開放原始碼 PostgreSQL 資料庫完全相容。
注意:支援 PostgreSQL 版本 14 和 15 (截至 2025 年 6 月)。
OCI Object Storage 為任何類型的資料提供可擴展、持久且低成本的儲存。本教學課程將用於儲存 PostgreSQL 傾印檔。
Rclone 是一個開放原始碼的命令行程式,用於管理或傳輸雲端儲存體上的檔案。
在本教學課程中,我們將探討如何使用 PostgreSQL,有效地將資料從內部部署 PostgreSQL 資料庫移轉至 OCI 資料庫。我們將運用符合成本效益的 OCI Object Storage 和 Rclone,利用 pg_dump
和 pg_restore
公用程式進行快速的多段上傳和掛載功能。
目標
-
使用
pg_dump
匯出 PostgreSQL 資料庫。 -
使用 rclone 將匯出的資料檔複製到 OCI 物件儲存。
-
使用 rclone 將 OCI Object Storage 掛載至 OCI Compute。
-
使用
pg_restore
直接從 OCI Object Storage 匯入資料。
必備條件
-
存取 OCI 帳戶。若要註冊免費帳戶,請參閱開始使用 Oracle Cloud Infrastructure Free Tier 。
-
具有公用和專用子網路的 VCN,請確定私有子網路的 OCI 安全清單中已開啟
5432
連接埠。 -
公用子網路中的 OCI Compute 執行處理,可作為堡壘主機和公用程式節點,並已安裝 Rclone 和 PostgreSQL 從屬端工具 (本教學課程中稱為堡壘主機,請勿與 OCI 堡壘主機服務混用)
-
本教學課程以 Oracle Linux 8 為基礎,其他作業系統可能會有不同的指令。
-
已在專用子網路中佈建 OCI 資料庫與 PostgreSQL。如需詳細資訊,請參閱使用 PostgreSQL 部署 OCI 資料庫。
-
已安裝 PostgreSQL 從屬端工具的本機 PostgreSQL 內部部署執行處理。
注意:OCI Always Free Tier 中未提供 PostgreSQL 的 OCI 資料庫。
工作 1:建立 OCI API 金鑰使用者證明資料
-
登入 OCI 主控台,按一下設定檔功能表
,然後選取我的設定檔。
-
在資源中,按一下 API 金鑰。
-
按一下 API 金鑰清單左上方的新增 API 金鑰。
-
按一下下載私密金鑰,然後將該金鑰儲存至您的
.oci
目錄。在大多數情況下,您不需要下載公開金鑰。 -
按一下新增。
就會新增金鑰,並顯示組態檔預覽。檔案程式碼片段包括建立組態檔所需的必要參數和值。
user
:新增金鑰組之使用者的 Oracle Cloud Identifier (OCID)。fingerprint
:剛才新增之金鑰的指紋。tenancy
:您租用戶的 OCID。region
: OCI 主控台中目前選取的區域。key_file
:您下載之私密金鑰檔案的路徑。您必須將這個值更新成您在檔案系統上儲存私密金鑰檔案所在位置的路徑。
如需詳細資訊,請參閱必要的金鑰和 OCID 。
工作 2:使用 pg_dump
匯出 PostgreSQL 資料
在您的內部部署主機中,使用 pg_dump
匯出 PostgreSQL 資料庫。
pg_dump -U your_username -h your_host -p your_port -F c -f /path/to/output.dump your-database-name
-U your_username
:資料庫使用者名稱。-h your_host
:執行資料庫的主機 (例如,localhost
)。-p your_port
:連接埠號碼 (預設為5432
)。-F c
:輸出的格式 (c 適用於自訂,透過pg_restore
可彈性回復)。-f /path/to/output.dump
:將儲存傾印的檔案路徑。
your-database-name:您要傾印的資料庫名稱。
工作 3:使用 Rclone 安裝、設定及傳輸資料
-
在您的內部部署主機中,安裝 rclone。
sudo -v ; curl https://rclone.org/install.sh | sudo bash
-
執行下列指令以配置 rclone。
rclone config
如需設定 OCI 物件儲存連線的詳細資訊,請參閱 Rclone 文件。使用選項 2: OCI 使用者和 API 金鑰進行認證 (在任務 1 中建立)。
-
使用 rclone 多重部分上傳,將匯出的資料庫複製到 OCI 物件儲存的儲存桶。舉例而言:
rclone --progress --oos-no-check-bucket --fast-list --no-traverse --transfers 8 --oos-chunk-size 10M --oos-upload-concurrency 10 --checkers 10 copy <source> <dest>
命令與輸出範例:
rclone --progress --oos-no-check-bucket --fast-list --no-traverse --transfers 8 --oos-chunk-size 10M --oos-upload-concurrency 10 --checkers 10 copy output.dump OCI:bucket_db-dump Transferred: 4.500 KiB / 4.500 KiB, 100%, 0 B/s, ETA - Transferred: 1 / 1, 100% Elapsed time: 0.0s
如需詳細資訊,請參閱使用 Rclone 將資料複製到 Oracle Cloud,以在 Oracle Analytics Cloud 中建立洞察分析。
工作 4:使用 Rclone 掛載 OCI 物件儲存
-
在您的 OCI Compute 堡壘主機中,安裝 PostgreSQL 工具。
dnf install postgresql
OCI Database with PostgreSQL 支援版本 14 和版本 15,因此請相應地安裝 PostgreSQL 工具。
sudo dnf module reset postgresql sudo dnf module enable postgresql:15 sudo dnf install postgresql
-
在堡壘主機中安裝並設定 rclone - 重複工作 3 - 步驟 2。
-
以在任務 3 中複製的資料掛載儲存桶。例如,
/mnt/oci
。rclone mount OCI:bucket_db-dump /mnt/oci --vfs-cache-mode full --log-file /home/opc/rclone.log --config ~/.config/rclone/rclone.conf --log-level DEBUG --daemon --attr-timeout 1s
-
檢查已掛載 OCI 物件儲存上的檔案。
ls /mnt/oci
工作 5:使用 pg_restore
回復 OCI 資料庫與 PostgreSQL
使用已掛載的檔案系統,在背景以協助程式處理作業的形式,以平行工作以 PostgreSQL 資料庫來回復您的 OCI 資料庫。
nohup pg_restore -d test -h <OCI PostgreSQL hostname or IP> -p 5432 -U <dbuser> -v -c -j 10 -F c /mnt/oci/output.dump >import.log 2>&1
執行 pg_restore 之前,目標資料庫 (此範例中的 test) 必須已經存在。事先建立資料庫:
createdb -U postgres -h localhost -p 5432 test
您也可以新增 – verbose 以取得進度詳細資料,或 – clean 以在重新建立物件之前刪除物件。
作業 6:驗證回復的資料庫
使用 psql
,以 PostgreSQL 登入 OCI 資料庫並驗證已還原資料的完整性。
psql -h <OCI PostgreSQL hostname or IP> -p 5432 -U <dbuser> -d test
現在,您可以使用 SQL select 敘述句來驗證表格中的資料列數目。
相關連結
確認
- 作者 - Sylwester Dec (OCI 開源資料黑帶)
其他學習資源
在 docs.oracle.com/learn 上探索其他實驗室,或在 Oracle Learning YouTube 頻道上存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Migrate to Oracle Cloud Infrastructure Database with PostgreSQL using OCI Object Storage and Rclone
G37268-01
Copyright ©2025, Oracle and/or its affiliates.