迁移概览

本页面简要介绍了将数据迁入和迁出 AlloyDB for PostgreSQL 的方法。

正在导入数据

您可以通过以下两种方法将数据迁移到 AlloyDB 中:

  • 手动导入包含您数据的文件。

  • 使用 Google Cloud Database Migration Service 将整个活跃 PostgreSQL 实例的内容迁移到新的 AlloyDB 集群中。

从文件导入归档数据

AlloyDB 可让您从 Cloud Storage 存储桶中的文件导入数据。AlloyDB 支持多种数据导入文件格式,包括:

  • CSV,每个文件包含一个表的内容,使用 psql 加载。

  • DMP,整个 PostgreSQL 数据库的二进制归档文件,使用 pg_restore 导入。

  • SQL,PostgreSQL 数据库的纯文本重构内容,使用 psql 进行处理。

使用 Database Migration Service 迁移活跃实例

除了手动导入数据转储文件之外,您还可以使用 Database Migration Service for AlloyDB。借助此服务,您可以将活跃 PostgreSQL 实例的全部内容(包括所有数据库和元数据)迁移到新的 AlloyDB 集群中。Database Migration Service 可帮助您以尽可能短的停机时间将现有应用迁移到 AlloyDB,并作为新的数据存储区存在。

所导入数据支持的语言区域

AlloyDB 支持以下语言区域

  • ICU 提供的完整语言区域集。
  • libc 提供的一组有限的语言区域:
    • C.UTF-8
    • en_US.utf8

如果您要导入到 AlloyDB 的数据库默认使用上述两种语言区域之外的其他 libc 语言区域设置,则您仍然可以导入数据,但该默认设置不会沿用。为确保使用 ORDER BY 的 SQL 查询能正确排序结果,您可能需要在导入数据后执行额外的步骤。

我们建议您允许新数据库使用 AlloyDB 的默认语言区域设置:libc 提供的 C.UTF-8。然后,将排序规则与应用查询可能涉及 ORDER BY 子句的任何列相关联,并为每个列指定基于 ICU 的相应排序规则。您可以通过 ALTER TABLE DDL 查询(例如以下查询)来执行此操作:

ALTER TABLE TABLE_NAME
    ALTER COLUMN COLUMN_NAME
    SET DATA TYPE COLUMN_DATA_TYPE
    COLLATE "COLLATION_NAME";

新版 AlloyDB 集群基于 ICU 提供的语言区域定义了数百个排序规则,您还可以使用 PostgreSQL CREATE COLLATION 工具添加更多排序规则。如需查看 AlloyDB 集群上定义的所有基于 ICU 的排序规则名称的完整列表,请在任意实例上运行以下查询:

SELECT collname FROM pg_collation WHERE collprovider = 'i';

除了基于 ICU 的排序规则之外,AlloyDB 还支持名为 ucs_basic 的 PostgreSQL 内置排序规则。此排序规则使用 Unicode 码位的标准顺序,可实现特别高效的排序。建议对其排序顺序与 Unicode 码位列表的排序顺序相匹配的列使用该排序规则。

导出数据

您可以使用命令行实用程序以各种格式将 AlloyDB 数据导出到存储在 Cloud Storage 存储桶中的文件:

  • CSV,每个文件导出一个表,使用 psql

  • DMP,使用 pg_dump 创建整个数据库的可移植二进制归档文件。

  • SQL,使用 pg_dump 创建 DDL 和 SQL 语句列表,以重建数据库。

后续步骤