华为云用户手册

  • 基本使用 使用pglogical插件的功能,需要修改配置参数。 wal_level = 'logical' shared_preload_libraries = 'pglogical' shared_preload_libraries参数的修改可以参考修改shared_preload_libraries参数。 配置逻辑流复制。在发布端创建发布节点: SELECT pglogical.create_node( node_name := 'provider', dsn := 'host=127.0.0.1 port=5432 dbname=test user=provider_user' ); 配置复制集。将public中的所有表添加到default复制集: SELECT pglogical.replication_set_add_all_tables('default', ARRAY['public']); 复制集用来控制将发布节点数据库中的哪些表以及这些表上的哪些操作发布给订阅者。 default复制集,表示发布所有表及这些表的所有操作。 更多复制集定义请参见pglogical官方文档。 在订阅端创建订阅节点。 一旦设置了发布端节点,订阅者就可以订阅它。首先必须创建订阅者节点: SELECT pglogical.create_node( node_name := 'subscriber', dsn := 'host=127.0.0.1 port=5432 dbname=test user=subscriber_user' ); 在订阅端创建订阅。在订阅者节点创建订阅后,将在后台启动同步和复制过程: SELECT pglogical.create_subscription( subscription_name := 'subscription', provider_dsn := 'host=providerhost port=5432 dbname=test user=provider_user' ); SELECT pglogical.wait_for_subscription_sync_complete('subscription');
  • 支持版本说明 PostgreSQL 12及以上版本的最新小版本支持该插件。可通过以下SQL语句查询当前实例是否支持该插件: SELECT * FROM pg_available_extension_versions WHERE name = 'pgaudit'; 如果不支持,可通过升级内核小版本或者使用转储与还原升级大版本使用该插件。 RDS PostgreSQ L实例 支持的插件,具体请参见支持的插件列表。
  • 基本使用 设置pgaudit扩展 首先需要在插件管理中预加载pgaudit插件,因为pgaudit扩展会安装用于审核数据定义语言 (DDL) 语句的事件触发器。 默认插件管理中已预加载pgaudit插件,也可通过如下命令查看是否加载成功。 show shared_preload_libraries; shared_preload_libraries --------------------------------------------------------------------------------- pg_stat_statements,pgaudit,passwordcheck.so,pg_sql_history,auth_delay,pglogical (1 row) 加载成功后再进行创建插件,请参考插件安装/卸载。 插件安装好后,需要开启审计日志。 如需开通审计日志功能,请联系客服申请。 在控制台上单击实例名称,在概览页面,选择“SQL审计”页签。 单击“设置SQL审计”。 在弹框中,开启审计日志开关,可选择审计日志保留天数。 图1 设置SQL审计 开启审计日志后,还需要配置参数。 在界面“参数修改”页签,搜索“pgaudit.log”参数(指定会话审计日志将记录哪些类型的语句)并设置为适合业务需要的值,可以捕获对日志的插入、更新、删除和其他一些类型的更改。“pgaudit.log”参数取值如下: 表1 参数值说明 参数值 描述 none 这是原定设置值。不记录任何数据库更改。 all 记录所有内容(read、write、function、role、ddl、misc)。 ddl 记录所有数据定义语言(DDL)语句(不包括在 ROLE 类中)。 function 记录函数调用和DO块。 misc 记录其他命令,例如:DISCARD、FETCH、CHECKPOINT、VACUUM、SET read 当源为关系(例如表)或查询时记录SELECT和COPY。 role 记录与角色和权限相关的语句,例如:GRANT、REVOKE、CREATE ROLE、ALTER ROLE、DROP ROLE write 当目标为关系(表)时,记录INSERT、UPDATE、DELETE、TRUNCATE和COPY。 pgaudit还有一些参数,可根据业务需要在界面上进行设置。 表2 参数说明 参数名称 描述 pgaudit.log 指定会话审计日志记录将记录哪些类的语句。 pgaudit.log_catalog 指定在语句中的所有关系都在pg_catalog中的情况下,应该启用会话日志记录。 pgaudit.log_client_authentication 控制是否记录用户认证的信息。 pgaudit.log_extra_field 控制是否记录PID、IP、用户名、数据库等字段。 pgaudit.log_file_rotation_age 设置独立审计日志的轮转时间。 pgaudit.log_parameter 指定审核日志记录应该包含与语句传递的参数。 pgaudit.log_relation 指定会话审核日志记录是否应该为SELECT或DML语句中引用的每个关系(表、视图等)创建单独的日志项。 pgaudit.log_rows 指定审计日志记录应包括语句检索或影响的行。 pgaudit.log_write_txid 控制是否记录写操作(insert/update等)的txid。 pgaudit.logstatementonce 指定日志记录是否包含语句、文本和参数。 pgaudit.log_client 指定审计日志是否发送到客户端。 pgaudit.log_level 指定用于日志条目的日志级别。 pgaudit.write_into_pg_log_file 控制是否仍旧向PostgreSQL的运行日志记录审计信息。 如果您需要在客户端上显示审计日志,可以通过修改以下参数进行配置: “pgaudit.write_into_pg_log_file”和“pgaudit.log_client”参数值同时为on,再根据“pgaudit.log_level”参数选择客户端显示的日志级别(例如notice),客户端再次进行查询时,可以在客户端显示对应级别的审计日志。 “pgaudit.write_into_pg_log_file”和“pgaudit.log_client”参数只要有一个值为off,客户端不会显示审计日志。 “pgaudit.log_level”仅在“pgaudit.log_client”打开时启用。
  • SQL审计功能验证 执行sql语句。 create table t1 (id int); insert into t1 values (1); select * from t1; id ---- 1 (1 rows) 在界面上通过“SQL审计”页签进行审计日志下载。 审计日志包含以下内容: AUDIT: OBJECT,1,1,READ,SELECT,TABLE,public.t1,select * from t1; AUDIT:表示这是一个审计日志条目。 OBJECT:表示这是一个对象级别的审计日志。 第一个1:表示对象的 ID。 第二个1:表示对象的子 ID。 READ:表示这是一个读取操作。 SELECT:表示这是一个 SELECT 查询。 TABLE:表示对象类型是表。 public.t1:表示表的名称和模式。 select * from t1:表示执行的 SQL 查询语句。
  • 支持的版本 PostgreSQL 12及以上版本的最新小版本支持该插件。可通过以下SQL语句查询当前实例是否支持该插件: SELECT * FROM pg_available_extension_versions WHERE name = 'vector'; 如果不支持,可通过升级内核小版本或者使用转储与还原升级大版本使用该插件。 RDS PostgreSQL实例支持的插件,具体请参见支持的插件列表。
  • 多语句客户端SQL限制 当客户端将所有SQL语句作为一个字符串发送到PostgreSQL时,就会出现复杂性和局限性,例如如下语句: CREATE TABLE foo (id serial primary key, bla text); INSERT INTO foo (bla) VALUES ('hello world'); 如果是通过psql调用的文件中,它将作为两个单独的SQL命令字符串运行。但是如果在Python或Ruby的ActiveRecord中创建了一个如上的字符串并执行了它,那么它将作为1个SQL命令字符串发送到Postgres。这种情况下根据allow_multi_statements有所不同: 如果是false,将只自动复制包含1个与事件触发命令标签匹配的命令标签的客户端SQL语句。这是安全的,但是可能会有未处理的部署。 如果是true,将只自动复制包含要传播的安全命令标签的DDL。比如,DDL和DML混合是被禁止的;如果在一个命令中有两个以上的DDL语句,作用在复制和不复制的表上,会出现涉及多个表的DDL问题。 基于以上情景的不能够自动同步到订阅者的SQL会记录为WARNING,并记录到unhandled表中,需要进行手动处理。 更多细节信息和解决复制中出现的问题请参阅pgl_ddl_deploy官方文档。
  • 支持的版本说明 PostgreSQL 12及以上版本的最新小版本支持该插件。可通过以下SQL语句查询当前实例是否支持该插件: SELECT * FROM pg_available_extension_versions WHERE name = 'pgl_ddl_deploy'; 如果不支持,可通过升级内核小版本或者使用转储与还原升级大版本使用该插件。 RDS PostgreSQL实例支持的插件,具体请参见支持的插件列表。
  • 插件介绍 RDS PostgreSQL支持pgl_ddl_deploy插件,用于自动同步DDL语句,在很多环境中,能够涵盖大部分在应用环境中执行的DDL语句。 任何DDL语句都可以同步给订阅者。 表可以在创建时自动添加到复制中。 支持按正则表达式、按一组特定的表进行过滤。 可以选择以锁定安全的方式部署在订阅者上。 可以选择使订阅者上的某些事件失败,以便稍后重试。 可以在某些边缘情况下,围绕为DBA提供的日志记录构建警报,然后处理可能的手动部署。 ALTER TABLE语句可以通过子命令标签进行过滤。 可选支持自动终止订阅者系统上组织DDL执行的阻塞进程。
  • 基本使用 插件涉及到发布订阅和依赖于pglogical,需要添加和配置参数。 wal_level = 'logical' shared_preload_libraries = 'pglogical' shared_preload_libraries参数的修改可以参考修改shared_preload_libraries参数。 -- 发布端配置 SELECT control_extension ('create', 'pglogical'); SELECT control_extension ('create', 'pgl_ddl_deploy'); CREATE TABLE foo (id INT PRIMARY KEY); -- 创建发布 CREATE PUBLICATION testpub FOR TABLE foo; -- 配置复制集 INSERT INTO pgl_ddl_deploy.set_configs (set_name, include_schema_regex, driver) VALUES ('testpub', '.*', 'native'::pgl_ddl_deploy.driver); -- 部署这个发布 SELECT pgl_ddl_deploy.deploy('testpub'); -- 添加用户权限 SELECT pgl_ddl_deploy.add_role(oid) FROM pg_roles WHERE rolname='root'; -- 订阅端配置 SELECT control_extension ('create', 'pglogical'); SELECT control_extension ('create', 'pgl_ddl_deploy'); CREATE TABLE foo (id INT PRIMARY KEY); -- 创建订阅 CREATE SUBSCRIPTION testsub CONNECTION conninfo PUBLICATION testpub; ALTER SUBSCRIPTION testsub REFRESH PUBLICATION; 配置完之后在发布端执行DDL语句: ALTET TABLE foo ADD COLUMN bla INT; CREATE TABLE bra (id INT PRIMARY KEY); 可以在订阅端验证: \d foo Table "public.foo" Column | Type | Collation | Nullable | Default --------+---------+-----------+----------+--------- id | integer | | not null | bla | integer | | | Indexes: "foo_pkey" PRIMARY KEY, btree (id) \dt List of relations Schema | Name | Type | Owner --------+---------+-------+---------- public | bar | table | root public | foo | table | root (2 rows)
  • 涉及多个表的DDL 不支持同时更改复制表和非复制表的单个DDL SQL语句,例如:将参数include_schema_regex配置成'^replicated.*' DROP TABLE replicated.foo, notreplicated.bar; 此时发布端会出现提示: WARNING: Unhandled deployment logged in pgl_ddl_deploy.unhandled DROP TABLE 订阅端查询存在表replicated.foo: \d replicated.foo Table "replicated.foo" Column | Type | Collation | Nullable | Default --------+---------+-----------+----------+--------- id | integer | | not null | Indexes: "foo_pkey" PRIMARY KEY, btree (id) 同样,如果使用过滤复制,以下内容可能会出现问题: ALTER TABLE replicated.foo ADD COLUMN bar_id INT REFEREN CES notreplicated.bar (id); 订阅端查看是不同步的: \d replicated.foo Table "replicated.foo" Column | Type | Collation | Nullable | Default --------+---------+-----------+----------+--------- id | integer | | not null | Indexes: "foo_pkey" PRIMARY KEY, btree (id)
  • 简介 有很多的数据库出于各种目的需要将数据复制到其他数据库,其中移动数据最有用的数据库技术之一被称为“逻辑复制”,但是数据库中有两类SQL语句,DML和DDL,出于很多原因,必须单独处理DDL,在迁移过程中需要让DBA以正确的顺序为所有涉及的数据库集群手动部署SQL,管理锁的争抢,并在必要时将新表添加到复制中。pgl_ddl_deploy建立在pglogical之上,能够使得任何DDL SQL语句都可以直接传播给订阅者,解决了pglogical不能够同步DDL语句的问题。 更多信息,请参见pgl_ddl_deploy官方文档。
  • 不支持的命令 CREATE TABLE AS和SELECT INTO由于事务的一致性,不支持复制DDL,如果表是根据提供者的上一组数据创建的,那么在订阅者上运行相同的SQL将无法保证数据的一致性。例如: CREATE TABLE foo AS SELECT field_1, field_2, now() AS refreshed_at FROM table_1; SELECT INTO和CREATE TABLE AS类似,会出现提示: WARNING: Unhandled deployment logged in pgl_ddl_deploy.unhandled
  • 常见问题 表1 常见报错信息及解决方案 详细报错信息 解决方案 ERROR: pg_repack failed with error: ERROR: permission denied for schema repack 需要使用root用户执行才能执行pg_repack。 ERROR: pg_repack failed with error: You must be a superuser to use pg_repack 执行pg_repack时加上--no-superuser-check,跳过超级用户检查。 NOTICE: Waiting for 1 transactions to finish. First PID: xxxx 清理过程中有长事务,pg_repack会等待事务执行完成。
  • 约束限制 只有root用户才能使用pg_repack。 目标表必须存在主键,或在非空列上存在唯一索引。 至少需要两倍于目标表(及索引)的磁盘空间。 无法在temp表和存在gist索引的表上操作。 在pg_repack运行期间,目标表上不能执行除vacuum和analyze之外的任何DDL指令。 需要在本地部署客户端才能使用pg_repack,详见官方文档: https://reorg.github.io/pg_repack/。
  • 操作步骤 执行以下命令,部署SSIS工程。 EXEC msdb.dbo.rds_ssis_task '@task_type', '@folder_name', '@project_name', '@file_name'; @task_type:任务类型,部署SSIS工程填写“DEPLOY_PROJECT”。 @folder_name:SSIS目录名。 @project_name:构建的SSIS工程名。 @file_name:SSIS生成ispac的文件名。
  • 操作场景 云数据库RDS支持将备份文件存放到另一个区域存储,某一区域的实例故障后,可以在异地区域使用备份文件在异地恢复到新的RDS实例,用来恢复业务。 实例开启跨区域备份策略后,会自动将该实例的备份文件备份到目标区域。您可以在RDS“备份管理”页面,对跨区域的备份文件进行管理。未开启跨区域备份策略,默认是在本区域存放备份。 实例关闭跨区域备份策略后,目标区域的备份文件会被清理。 每个租户默认最多支持150个实例设置跨区域备份策略。
  • 操作步骤 以下操作均在已准备的弹性云服务器上执行。 使用psql连接源数据库,执行以下sql,获取数据库列表。 postgres=# \l 使用psql连接目标数据库,执行以下sql,确认1中的所有数据库在目标数据库中是否均存在。 postgres=# \l 存在,执行3。 不存在,执行以下sql创建缺失的数据库,然后执行3。 postgres=# create database my_target_db; 模板库template0、template1不需要迁移。 默认创建的数据库postgres,一般不会存放业务数据,也不需要迁移。但是如果存放了业务数据,也需要迁移。 使用pg_dump转储源数据库,并使用pg_restore恢复到目标数据库。针对每一个业务库,重复执行3~4。 对于除RDS for PostgreSQL 11外的其他版本,转储命令如下: pg_dump -Fc -v --host=source_IP --port=source_port --username=my_user --dbname=my_source_db | pg_restore -v --no-owner --host=target_IP --port=target_port --username=my_user --dbname=my_target_db 对于RDS for PostgreSQL 11版本,转储命令如下: pg_dump -Fc -v --host=source_IP --port=source_port -Ndbms_lob -Ndbms_output -Ndbms_random -Nsys -Nutl_raw -Npg_catalog --username=my_user --dbname=my_source_db | pg_restore -v --no-owner --host=target_IP --port=target_port --username=my_user --dbname=my_target_db pg_dump所使用的登录用户需要拥有访问该数据库所有对象的权限。 pg_restore所使用的登录用户需要拥有该数据库的所有操作权限。 授权操作请参考grant。 若pg_dump命令使用-N参数,blob对象不会被导出。 若pg_dump命令使用-Fc参数,则导出的文件格式为二进制格式,如果需要导出sql类型的文件请使用-Fp参数。 每迁移完一个数据库,就可以通过目标数据库测试相应业务,保证业务在目标数据库中运行正常。 请务必确保验证业务可以在目标库正常运行后,再将业务切换到目标数据库,然后删除源数据库。
  • RDS for PostgreSQL版本号说明 RDS for PostgreSQL v10及其以上版本的版本号由major.minor组成。其中,major表示大版本号,minor表示小版本号。大版本升级是指major部分增加,比如:11.x升级到12.x。 RDS for PostgreSQL v10之前的版本号由major.major.minor组成。其中,major.major表示大版本号,minor表示小版本号。大版本升级是指如major.major部分增加,比如:从9.5.x升级到9.6.x或者从9.x.x升级到10.x。
  • 准备工作 查看待升级的云数据库 RDS for PostgreSQL实例信息。 在“实例管理”页面,单击待升级实例名称,进入待升级实例概览页面。 在“概览”页面中,可以查看到实例所属区域、可用区、虚拟私有云、子网、安全组。 准备弹性云服务器。 通过弹性云服务器连接云数据库RDS实例,需要创建一台弹性云服务器。 该弹性云服务器的区域、可用区、虚拟私有云、子网、安全组与待升级RDS for PostgreSQL实例相同。 在2中的弹性云服务器上,安装PostgreSQL客户端。 请参见如何安装PostgreSQL客户端。 该弹性云服务器需要安装和RDS for PostgreSQL数据库服务端相同版本的数据库客户端,PostgreSQL数据库或客户端会自带pg_dump、pg_restore和psql工具。 通过psql连接源数据库,在每一个数据库上执行如下sql,获取已使用列表。 select extname from pg_extension; 根据查看的已使用列表,选择一个包含当前所有插件的目标升级版本。 RDS for PostgreSQL各版本支持的插件,参考支持的插件列表。 参考创建参数模板,创建一个兼容待升级实例参数的目标版本参数模板。 创建目标版本RDS for PostgreSQL实例。 创建RDS for PostgreSQL实例,请参见购买实例。 目标版本RDS for PostgreSQL实例所属区域、可用区、虚拟私有云、子网、安全组与源实例相同。 在2中的弹性云服务器上,通过psql连接目标数据库,确认目标实例连接正常。
  • 操作场景 升级RDS for PostgreSQL引擎大版本,能让您享受到RDS for PostgreSQL新版本带来的功能、性能、安全的提升。但大版本升级可能存在向后不兼容的数据变更,可能导致现有业务运行不兼容。因此需要用户使用目标版本测试确保业务能够正常运行后,再执行大版本升级。 本章节中“源数据库”表示待升级的低版本RDS for PostgreSQL数据库,“目标数据库”表示待升级到的高版本RDS for PostgreSQL数据库。
  • 收缩数据库 执行以下命令,进行数据库收缩。 EXEC [master].[dbo].[rds_shrink_database] @DBName='myDbName'; 表1 参数说明 参数 说明 myDbName 收缩指定数据库的数据库名称。如果未指定,默认收缩所有数据库。 执行成功后,系统会显示执行进度,并最终进行如下提示: HW_RDS_Process_Successful: Shrink Database Done.
  • 常见问题 如果执行存储过程发生报错,报错信息为“文件正在使用中”,则请稍后再执行存储过程。 如果执行存储过程后,日志文件大小未改变,请在目标数据库环境下,执行以下SQL,验证文件是否有足够的可用空间。 SELECT name, size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 AS AvailableSpaceInMB FROM sys.database_files WHERE type_desc=' LOG ';
  • 示例 执行以下命令,对dbtest2数据库进行收缩。 EXEC [master].[dbo].[rds_shrink_database] @DBName = 'dbtest2'; 执行结果如下图所示: 执行以下命令,对所有数据库进行收缩。 EXEC [master].[dbo].[rds_shrink_database]; 执行以下命令,收缩数据库testdb的日志文件。 EXEC [master].[dbo].[rds_shrink_database_log]@dbname='dbtest3';
  • 报告示例 报告由三部分组成,包含标题、目录和报表。 标题 报告标题包含以下内容:报告起止样本ID、pg_profile_pro内核版本、服务名称、报告起止时间。 图1 报告标题 目录 每层目录分别链接一个报表,用户可以通过目录总览报告中所有报表,也可通过单击链接查看报表内容。 如下图所示: 报表 报告呈现丰富的报表,从不同的维度、关注点来展现数据库的性能情况。 在每个报表后方会针对该报表关注点的提出建议。 图2 报表及建议 在报表中,将鼠标悬停在列标题上,可以看到对列标题的注解(中英文)。 图3 列标题注解
  • 操作场景 pg_profile_pro是一款用于监测RDS for PostgreSQL实例性能及运行状况的插件,针对SQL语句、表、索引、函数、事务、vacuum等,pg_profile_pro提供了监测数据报表,能够尽可能发现数据库存在的或潜在的性能问题。 该插件基于PostgreSQL的pg_stat_statements视图,会在用户的实例中创建历史统计,并生成统计样本,定期的统计样本用于生成监测报告,帮助识别最耗费资源的活动等。 因发现插件存在缺陷,现暂时关闭支持,我们会在缺陷修复后重新开放,给您造成不便敬请谅解。
  • 参数配置 表4 影响采样报告的参数 参数名称 默认值 是否需要重启 功能描述 备注 pg_profile_pro.topn 20 否 控制每个排序报表中需要上报对象(语句、关系等)的数量。 该参数会影响样本的大小,如果您想在报表中显示更多的对象,样本中需要保留的对象也会越多。 pg_profile_pro.max_sample_age 3 否 样本的保留时间(单位:天)。保留时间超过参数时间的样本将在下一次采样时自动删除。 参数最小粒度为天。 pg_profile_pro.track_sample_timings off 否 启用此参数后,pg_profile_pro将跟踪详细的采样时间。 开启后,会记录每一细分采样的耗时,会增加空间占用。 pg_profile_pro.period 3600 否 采样周期(单位:秒)。 用于控制样本的采样周期。 该参数会影响样本的大小,采样周期越短,单位时间内的样本越多,插件表中保留的对象也会越多。 pg_profile_pro.enable on 否 采样开关,用于控制插件是否采样。 on:是。 off:否。 插件生成的报告依赖于样本,关闭了采样那么就无法生成最新的报告,但是可以查看历史采样的报告。 表格中参数默认值为最新RDS版本的默认值,其他版本可能会有不同。
  • 插件说明 postgis 创建postgis_topology和postgis_tiger_geocoder插件,会更改search_path。search_path对已经建立的连接不会更新,如果需要使用这两个插件功能,需要重新建立连接更新search_path设置。 plpgsql plpgsql 1.0插件支持提供SQL过程语言,默认内置安装,无需手动创建该插件。 earthdistance 安装earthdistance插件前,请先安装cube插件。 cube 如果已安装earthdistance插件,删除cube插件会导致earthdistance插件不可用。 timescaledb RDS for PostgreSQL的timescaledb插件只支持Apache协议的特性,不支持tsl协议的特性,具体请参见timescaledb插件不支持的接口。 wal2json 该插件是逻辑复制插件,您可以直接使用该插件,不需要通过control_extension安装。 该插件不能通过pg_available_extensions查询,查看是否支持wal2json插件可通过如下语句确认,执行不报错说明支持wal2json插件。 select pg_create_logical_replication_slot('tst_wal2json', 'wal2json'); 该条语句执行成功后,需要删除slot,否则会导致wal日志积压。 select pg_drop_replication_slot('tst_wal2json'); pg_profile_pro 因发现插件存在缺陷,现暂时关闭支持,我们会在缺陷修复后重新开放,给您造成不便敬请谅解。 pg_sql_history 该插件是DBSS服务中RDS for PostgreSQL数据库进行SQL审计的插件。该插件目前查询到的SQL语句会有截断,因为为每条记录分配的空间固定,为4KB。这4KB除了存储SQL语句,还会存储数据库名、用户名、SQL类型等信息。
  • 常见报错 场景一 ERROR: permission denied for function control_extension 解决方法:未使用root用户执行control_extension函数,需更改连接用户为root。 场景二 ERROR: function control_extension(unknown, unknown) is not unique 解决方法:在不指定schema时,可能存在同名函数,导致函数不唯一无法运行,可选择添加schema参数重试。 场景三 ERROR: function control_extension(unknown, unknown) does not exist 解决方法:control_extension函数在postgres库不存在,postgres库作为RDS运维库,禁止创建插件。
  • 账户说明 您在创建RDS for PostgreSQL数据库实例时,系统会自动为实例创建如下系统账户(用户不可使用),用于给数据库实例提供完善的后台运维管理服务。 如果试图删掉、重命名、修改这些账户的密码和权限,会导致出错,请谨慎操作。 rdsAdmin:管理账户,拥有最高的superuser权限,用于查询和修改实例信息、故障排查、迁移、恢复等操作。 pg_execute_server_program:允许用运行该数据库的用户执行数据库服务器上的程序来配合COPY和其他允许执行服务器端程序的函数。 pg_read_all_settings:读取所有配置变量,甚至是那些通常只对超级用户可见的变量。 pg_read_all_stats:读取所有的pg_stat_*视图并且使用与扩展相关的各种统计信息,甚至是那些通常只对超级用户可见的信息。 pg_stat_scan_tables:执行可能会在表上取得ACCESS SHARE锁的监控函数(可能会持锁很长时间)。 pg_signal_backend:向其他后端发送信号(例如:取消查询、中止)。 pg_read_server_files:允许使用COPY以及其他文件访问函数从服务器上该数据库可访问的任意位置读取文件。 pg_write_server_files:允许使用COPY以及其他文件访问函数在服务器上该数据库可访问的任意位置中写入文件。 pg_monitor:读取/执行各种监控视图和函数。这个角色是pg_read_all_settings、pg_read_all_stats以及pg_stat_scan_tables的成员。 rdsRepl:复制账户,用于备实例或只读实例在主实例上同步数据。 rdsBackup:备份账户,用于后台的备份。 rdsMetric:指标监控账户,用于watchdog采集数据库状态数据。 __rds_pg_profile_user_:指标监控账户,用于pg_profile_pro采集数据库状态数据,创建pg_profile_pro插件后会自动创建该用户,仅存在于RDS for PostgreSQL 12的最新版本。 因发现pg_profile_pro插件存在缺陷,现暂时关闭支持,因此新创建的实例不会自动创建该用户。
  • 操作场景 您可以复制您创建的自定义数据库参数模板。当您已创建一个数据库参数模板,并且想在新的数据库参数模板中包含该组中的大部分自定义参数和值时,复制参数模板是一个方便的解决方案。您还可以导出某数据库实例应用的参数列表,生成一个新的参数模板,供您后期使用。 复制数据库参数模板之后,新参数模板可能不会立即显示,建议您等待5分钟再使用。 您无法复制默认参数模板。不过,您可以创建基于默认参数模板的新参数模板。
共100000条