本指南說明如何使用 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