RDS PPAS由于没有对外开放超级用户,用户无法像线下使用PPAS那样使用superuser账号管理数据库对象。为此,我们推出了一组管理函数,帮助用户顺利使用云上PPAS的各种功能。
管理函数的使用规则
在云上的各类管理函数都要求用户使用 RDS 根账号来执行。RDS 根账号是分配实例时指定的管理账号,具有 createdb createrole login 权限。
- 插件管理函数 rds_manage_extension。
该函数帮助用户管理云上的插件,用户可以使用该函数创建和删除 PPAS 目前已经支持的插件。
1234567891011121314151617181920212223242526272829303132333435363738394041424344rds_manage_extension(operation text, pname text, schema text
default
NULL,logging bool
default
false
)
operation: create 或 drop
pname: 支持的插件名
schema:插件创建到的目标模式
logging:插件创建时的日志信息
目前支持的插件有:
pg_stat_statements
btree_gin
btree_gist
chkpass
citext
cube
dblink
dict_int
earthdistance
hstore
intagg
intarray
isn
ltree
pgcrypto
pgrowlocks
pg_prewarm
pg_trgm
postgres_fdw
sslinfo
tablefunc
tsearch2
unaccent
postgis
postgis_topology
fuzzystrmatch
postgis_tiger_geocoder
plperl
pltcl
plv8
"uuid-ossp"
plpgsql
oss_fdw
举例:
1
创建插件 dblink
select rds_manage_extension(
'create'
,
'dblink'
);
2
删除插件 dblink
select rds_manage_extension(
'drop'
,
'dblink'
);
- 当前连接会话 rds_pg_stat_activity()。
该函数类似 pg_stat_activity 视图,返回用户相关的所有连接会话信息。
- 查看慢 SQL 的函数 rds_pg_stat_statements()。
该函数是视图 pg_stat_statements 的封装,目的是让用户查看自己权限范围内的慢SQL。
- 性能分析函数。
本组函数,类似 Oracle AWR 报告,提供给用户一组函数帮助用户分析目前 PPAS 实例的试试性能信息。
1234567891011121314151
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 3
SELECT * FROM edbreport(
1
,
3
);
//根据快照产生一个性能分析报告
- 终止会话函数。 12345
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 的一种封装,参数完全相同。
1231
rds_drop_policy 对应 DBMS_RLS.DROP_POLICY
2
rds_enable_policy 对应 DBMS_RLS.ENABLE_POLICY
3
rds_add_policy 对应 DBMS_RLS.ADD_POLICY