本指南介绍如何使用 pg_dump 和 pg_restore 在
启用了透明数据加密
(TDE) 的集群与未加密的集群之间迁移数据。
系统支持两种迁移方向(从 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 服务器。
将转储文件恢复到未加密的数据库服务器。
/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