迁移概览

本页面简要介绍了将数据迁入和迁出 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 迁移处于活动状态的实例

除了手动导入数据转储文件之外,您还可以使用 适用于 AlloyDB 的 Database Migration Service。借助此服务,您可以将处于活动状态的 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 语句列表以重建数据库。