开发者社区 问答 正文

快速入门PPAS版-常用管理函数


RDS 上 PPAS 由于没有对外开放超级用户,用户无法像线下使用 PPAS 那样使用 superuser 账号管理数据库对象。为此,我们推出了一组管理函数,帮助用户顺利使用云上的 PPAS 各种功能。

管理函数的使用规则


在云上的各类管理函数都要求用户使用 RDS 根账号来执行。RDS 根账号是分配实例时指定的管理账号,具有 createdb createrole login 权限。

  • 插件管理函数 rds_manage_extension。
    该函数帮助用户管理云上的插件,用户可以使用该函数创建和删除 PPAS 目前已经支持的插件。rds_manage_extension(operation text, pname text, schema text default NULL,logging bool default false)operation: create 或 droppname:    支持的插件名schema:插件创建到的目标模式logging:插件创建时的日志信息目前支持的插件有:pg_stat_statementsbtree_ginbtree_gistchkpasscitextcubedblinkdict_intearthdistancehstoreintaggintarrayisnltreepgcryptopgrowlockspg_prewarmpg_trgmpostgres_fdwsslinfotablefunctsearch2unaccentpostgispostgis_topologyfuzzystrmatchpostgis_tiger_geocoderplperlpltclplv8"uuid-ossp"plpgsqloss_fdw举例:1 创建插件 dblinkselect rds_manage_extension('create','dblink');2 删除插件 dblinkselect rds_manage_extension('drop','dblink');
  • 当前连接会话 rds_pg_stat_activity()。
    该函数类似 pg_stat_activity 视图,返回用户相关的所有连接会话信息。
  • 查看慢 SQL 的函数 rds_pg_stat_statements()。
    该函数是视图 pg_stat_statements 的封装,目的是让用户查看自己权限范围内的慢SQL。
  • 性能分析函数。
    本组函数,类似 Oracle AWR 报告,提供给用户一组函数帮助用户分析目前 PPAS 实例的试试性能信息。  1 rds_truncsnap()说明: 删除目前保存的所有快照。2 rds_get_snaps()说明: 获得目前保存的所有快照信息。3 rds_snap()说明:产生一个实时快照。4 rds_report(beginsnap bigint, endsnap bigint)制定一个初始快照变化和结束快照变化,产生基于快照的性能分析报告。举例:下面是一个通过产生快照生成性能分析报告的过程SELECT * FROM rds_truncsnap(); //删除之前保存的快照SELECT * from rds_snap();    // 产生一个快照SELECT * from rds_snap(); // 产生一个快照SELECT * from rds_snap(); // 产生一个快照SELECT * FROM rds_get_snaps(); //获取目前产生的快照ID: 1 2 3SELECT * FROM edbreport(1, 3); //根据快照产生一个性能分析报告
  • 终止会话函数。 rds_pg_terminate_backend(upid int)rds_pg_cancel_backend(upid int)该函数分别对应原生的 pg_terminate_backend 和 pg_cancel_backend,区别仅是他们无法操作 supueruser 建立的连接。举例:终止进程号为 123456 的回话select rds_pg_cancel_backend(123456);
  • VPD 函数。
    VPD 即 Virtual Private Database,是兼容 Package DBMS_RLS 的一种封装,参数完全相同。1 rds_drop_policy 对应 DBMS_RLS.DROP_POLICY2 rds_enable_policy 对应 DBMS_RLS.ENABLE_POLICY3 rds_add_policy 对应 DBMS_RLS.ADD_POLICY

VPD 参考链接

展开
收起
梨好橙 2018-08-31 23:57:37 1330 分享 版权
阿里云 AI 助理回答

在阿里云RDS PPAS中,为应对没有超级用户权限的管理需求,提供了一系列管理函数以帮助用户高效且安全地执行数据库管理任务。以下是这些管理函数的使用规则和示例:

RDS根账号与权限

  • 账号要求:所有管理函数需使用RDS根账号执行,该账号在实例创建时指定,拥有createdb, createrole, 和 login权限。

插件管理函数 rds_manage_extension

  • 功能:用于创建或删除PPAS支持的插件。
  • 语法rds_manage_extension(operation text, pname text, schema text default NULL, logging bool default false)
    • operation: 'create''drop',分别表示创建或删除插件。
    • pname: 插件名称,如dblink
    • schema: 目标模式,默认为NULL
    • logging: 是否记录日志,默认false
  • 示例
    • 创建插件dblinkSELECT rds_manage_extension('create', 'dblink');
    • 删除插件dblinkSELECT rds_manage_extension('drop', 'dblink');

当前连接会话查询 rds_pg_stat_activity()

  • 功能:类似pg_stat_activity视图,展示用户相关的所有数据库连接会话信息。

慢SQL查看函数 rds_pg_stat_statements()

  • 功能:封装了pg_stat_statements视图,帮助用户监控自己权限范围内的慢SQL。

性能分析函数

  • 功能:生成性能快照并分析,类似于Oracle AWR报告。
    • rds_truncsnap():删除所有保存的快照。
    • rds_get_snaps():获取当前所有快照信息。
    • rds_snap():生成实时快照。
    • rds_report(beginsnap bigint, endsnap bigint):根据快照ID生成性能分析报告。
  • 示例流程
    1. 清除旧快照:SELECT * FROM rds_truncsnap();
    2. 生成快照:连续执行三次SELECT * from rds_snap();
    3. 获取快照ID:SELECT * FROM rds_get_snaps();
    4. 生成报告:假设快照ID为1和3,则执行SELECT * FROM rds_report(1, 3);

终止/取消会话函数

  • 终止会话rds_pg_terminate_backend(upid int)
  • 取消后台进程rds_pg_cancel_backend(upid int)
  • 示例:终止进程号为123456的会话:SELECT rds_pg_cancel_backend(123456);

VPD(Virtual Private Database)函数

  • 功能:兼容Oracle的DBMS_RLS包,实现数据行级安全性控制。
    • rds_drop_policyrds_enable_policyrds_add_policy分别对应DBMS_RLS的相应操作。

通过上述管理函数,用户可以有效管理和优化阿里云RDS PPAS实例,同时确保数据安全与访问控制。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答