文档简介:
管理插件
提供基于root用户的PostgreSQL插件管理方案,其中关系型数据库会自动创建auto_explain插件,其他插件需用户手动创建。
创建插件
步骤 1 以root用户连接数据库postgres,并使用模板库template1创建需要支持插件的数据库。
# psql --host=<RDS_ADDRESS> --port=<DB_PORT> --dbname=postgres --username=root -c "create database <DB_NAME> template template1;"
l RDS_ADDRESS为RDS实例的IP地址。
l DB_PORT为RDS数据库实例的端口。
l DB_NAME为需要创建插件的数据库名称。
根据提示输入root用户密码。
创建需要支持插件的数据库my_extension_db示例如下:
# psql --host=192.168.6.141 --port=5432 --dbname=postgres --username=root -c "create database my_extension_db template template1;"
Password for user root:
CREATE DATABASE
注:如果需要操作的是普通用户user1创建的数据库db1,需要先以普通用户user1登录db1(登录方式参考上述内容),然后执行如下语句将db1权限授予root用户:
GRANT ALL ON DATABASE db1 TO root;
步骤 2 以root用户连接需要支持插件的数据库,并创建插件。
# psql --host=<RDS_ADDRESS> --port=<DB_PORT> --dbname=<DB_NAME> --username=root -c "select control_extension('create','<EXTENSION_NAME>');"
l RDS_ADDRESS为RDS实例的IP地址。
l DB_PORT为RDS数据库实例的端口。
l DB_NAME为需要创建插件的数据库名称。
l EXTENSION_NAME为插件名称,取值如下:
− postgis,创建postgis时,会同步创建以下插件:
postgis
postgis_topology
fuzzystrmatch
postgis_tiger_geocoder
address_standardizer
address_standardizer_data_us
− btree_gin
− btree_gist
− hstore
− pg_trgm
− tablefunc
− unaccent
− uuid-ossp
− cube
− dict_int
− dict_xsyn
− earthdistance
说明:
安装earthdistance插件前,请先安装cube插件。
− intagg
− intarray
− ltree
− pgcrypto
− timescaledb
说明:
l timescaledb插件支持9.6及其以上版本的PostgreSQL。
l timescaledb插件不支持tsl协议的特性。
− hll
− zhparser,该插件只提供默认词典,不支持用户自定义词典,参数默认值设置如下:
zhparser.punctuation_ignore = off
zhparser.multi_short = off
zhparser.multi_duality = off
zhparser.multi_zmain = off
zhparser.multi_zall = off
zhparser.dict_in_memory = off
− pg_pathman,仅支持PostgreSQL 10、PostgreSQL 9.6和PostgreSQL9.5。
− pg_stat_statements
− pg_hint_plan
− pg_jieba,仅支持PostgreSQL 9.5.17和9.5.15版本。
根据提示输入root用户密码。
在数据库my_extension_db中创建postgis插件示例如下:
# psql --host=192.168.6.141 --port=5432 --dbname=my_extension_db --username=root -c "select control_extension('create','postgis');"
Password for user root:
control_extension
------------------------------
create postgis successfully.
(1 row)
----结束
删除插件
以root用户连接已创建插件的数据库,并删除插件。
# psql --host=<RDS_ADDRESS> --port=<DB_PORT> --username=root --dbname=<DB_NAME> -c "select control_extension ('drop','<EXTENSION_NAME>');"
l RDS_ADDRESS为RDS实例的IP地址。
l DB_PORT为RDS数据库实例的端口。
l DB_NAME为需要创建插件的数据库名称。
l EXTENSION_NAME为插件名称,取值如下:
− postgis
− btree_gin
− btree_gist
− hstore
− pg_trgm
− tablefunc
− unaccent
− uuid-ossp
− cube
说明:
如果已安装earthdistance插件,删除cube插件会导致earthdistance插件不可用。
− dict_int
− dict_xsyn
− earthdistance
− intagg
− intarray
− ltree
− pgcrypto
− timescaledb
− hll
− zhparser
根据提示输入root用户密码。
示例如下:
# psql --host=192.168.6.141 --port=5432 --dbname=my_extension_db --username=root -c "select control_extension('drop','postgis');"
Password for user root:
control_extension
----------------------------
drop postgis successfully.
(1 row)