以下部分介绍了如何配置自有 PostgreSQL 数据库。
对数据库启用逻辑复制
通过向
postgresql.conf
文件添加wal_level=logical
,在数据库中设置wal_level
参数。重新启动服务器。
创建发布内容和复制槽
以超级用户身份登录 PostgreSQL 控制台。
创建发布内容。我们建议您仅为要复制的表创建发布内容。这样,Datastream 就可以只读取相关数据,并降低数据库和 Datastream 的负载:
CREATE PUBLICATION PUBLICATION_NAME FOR TABLE SCHEMA1.TABLE1, SCHEMA2.TABLE2;
替换以下内容:
- PUBLICATION_NAME:您的发布内容的名称。在 Datastream 数据流创建向导中创建数据流时,您需要提供此名称。
- SCHEMA:包含表的架构的名称。
- TABLE:要复制的表的名称。
您可以为架构中的所有表创建发布内容。通过这种方法, 您可以复制对指定架构列表中表的更改,包括 您将来创建的表:
CREATE PUBLICATION PUBLICATION_NAME FOR TABLES IN SCHEMA1, SCHEMA2;
您还可以为数据库中的所有表创建发布内容。请注意,这种方法会增加源数据库和 Datastream 的负载:
CREATE PUBLICATION PUBLICATION_NAME FOR ALL TABLES;
输入以下 SQL 命令,创建复制槽:
SELECT PG_CREATE_LOGICAL_REPLICATION_SLOT('REPLICATION_SLOT_NAME', 'pgoutput');
替换以下内容:
- REPLICATION_SLOT_NAME:复制槽的名称。在 Datastream 数据流创建向导中创建数据流时,您需要提供此名称。
创建 Datastream 用户
如需创建 Datastream 用户,请输入以下 SQL 命令:
CREATE USER USER_NAME WITH ENCRYPTED PASSWORD 'USER_PASSWORD';
替换以下内容:
- USER_NAME:所需的 Datastream 用户的名称 要创建的活动。
- USER_PASSWORD:Datastream 用户的登录密码 资源。
向您创建的用户授予以下特权:
ALTER ROLE USER_NAME WITH REPLICATION; GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO USER_NAME; GRANT USAGE ON SCHEMA SCHEMA_NAME TO USER_NAME; ALTER DEFAULT PRIVILEGES IN SCHEMA SCHEMA_NAME GRANT SELECT ON TABLES TO USER_NAME;
替换以下内容:
- USER_NAME:您要向其授予权限的用户。
- SCHEMA_NAME:您要向其授予的架构的名称 权限。
后续步骤
- 详细了解 Datastream 如何与 PostgreSQL 源配合使用。