将数据迁移到启用 TDE 的集群以及从启用 TDE 的集群迁移数据

选择文档版本:

本指南介绍如何使用 pg_dump 和 pg_restore 在 启用了透明数据加密 (TDE) 的集群与未加密的集群之间迁移数据。

系统支持两种迁移方向(从 TDE 到未加密,以及从未加密到 TDE),并且使用标准 PostgreSQL 逻辑备份工具。

使用 pg_dump 进行逻辑迁移会在源端即时解码加密的数据,并将其转储为未加密的 SQL 语句。恢复数据时,目标集群会根据自己的加密设置写入数据。 如果启用了 TDE,目标集群会对数据进行加密;如果停用了 TDE,则会以纯文本形式写入数据。

准备工作

将启用了 TDE 的数据库迁移到停用了 TDE 的数据库

  1. 将数据库从启用了 TDE 的数据库服务器转储到主机上的文件。

    /usr/lib/postgresql/18/bin/pg_dump -U postgres -d DATABASE_NAME > /tmp/decrypted_dump.sql
    
  2. 按照使用 RPM 安装 AlloyDB Omni 中的说明 启动停用了 TDE 的 AlloyDB Omni 服务器。

  3. 将转储文件恢复到未加密的数据库服务器。

    /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 的数据库

  1. 使用 pg_dump 从未加密的数据库服务器转储数据库。

    /usr/lib/postgresql/18/bin/pg_dump -U postgres -d DATABASE_NAME > /tmp/src_plaintext_dump.sql
    
  2. 按照 创建启用了 TDE 的集群中的说明启动启用了 TDE 的 AlloyDB Omni 服务器。

  3. 恢复到启用了 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
    

后续步骤