本指南說明如何使用 pg_dump 和 pg_restore,在已啟用透明資料加密 (TDE) 的叢集和未加密的叢集之間遷移資料。
兩種遷移方向 (從 TDE 遷移至非加密,以及反向遷移) 均支援,並使用標準 PostgreSQL 邏輯備份工具。
使用 pg_dump 進行邏輯遷移時,系統會即時解碼來源端的加密資料,並將其轉儲為未加密的 SQL 陳述式。還原資料時,目的地叢集會根據本身的加密設定寫入資料。如果啟用 TDE,目標叢集會加密資料;如果停用 TDE,目標叢集會以純文字寫入資料。
事前準備
- 確認已安裝 AlloyDB Omni。詳情請參閱「使用 RPM 安裝 AlloyDB Omni」。
- 如要遷移至已啟用 TDE 的資料庫伺服器,請確認您已設定金鑰管理供應商。詳情請參閱「建立啟用 TDE 的叢集」。
將已啟用 TDE 的資料庫遷移至已停用 TDE 的資料庫
將啟用 TDE 的資料庫伺服器中的資料庫傾印至主機上的檔案。
/usr/lib/postgresql/18/bin/pg_dump -U postgres -d DATABASE_NAME > /tmp/decrypted_dump.sql按照「使用 RPM 安裝 AlloyDB Omni」一文中的說明,啟動已停用 TDE 的 AlloyDB Omni 伺服器。
將 dump 檔案還原至未加密的資料庫伺服器。
/usr/lib/postgresql/18/bin/psql -U postgres -c "CREATE DATABASE DATABASE_NAME" /usr/lib/postgresql/18/bin/psql -U postgres -d DATABASE_NAME < /tmp/decrypted_dump.sql
將已停用 TDE 的資料庫遷移至已啟用 TDE 的資料庫
使用
pg_dump從未加密的資料庫伺服器傾印資料庫。/usr/lib/postgresql/18/bin/pg_dump -U postgres -d DATABASE_NAME > /tmp/src_plaintext_dump.sql按照「建立啟用 TDE 的叢集」一文中的操作說明,啟動啟用 TDE 的 AlloyDB Omni 伺服器。
還原至已啟用 TDE 的資料庫伺服器。資料寫入時會以透明方式加密。
/usr/lib/postgresql/18/bin/psql -U postgres -c "CREATE DATABASE DATABASE_NAME" /usr/lib/postgresql/18/bin/psql -U postgres -d DATABASE_NAME < /tmp/src_plaintext_dump.sql