数据库代理提供函数或表的自定义路由功能,通过此功能可以让自定义函数的读操作路由到只读库(原默认路由到主库),或者让自定义表读的操作路由到主库(原默认路由到只读库)。
前提条件
本章节所有操作需要使用高权限账号通过主地址连接到postgres库中进行。
创建插件
以polar_superuser
用户执行以下命令,创建polar_proxy_utils
插件。
create extension polar_proxy_utils;
插入记录
执行以下命令,插入记录。
polar_add_proxy_routing_strategy(_name, _type, rw_mode);
说明
其中:
_name:需要添加的路由的表名或者函数名。
_type:标记此次添加的为表名或者函数名。t:表示表名;f:表示函数名。
rw_mode:涉及表名或者函数名的查询请求,要路由到主库还是只读库。w:表示只能路由到主库;r:表示可以路由到只读库。
例如,执行polar_add_proxy_routing_strategy('lol', 't', 'w');
命令。
添加这条记录之前,执行
select * from lol
有机会路由到只读库。添加这条记录之后,执行
select * from lol
只会路由到主库。
展示白名单信息
执行以下命令,展示白名单信息。
select polar_list_proxy_routing_strategy();
删除一条白名单记录
执行以下命令,删除一条白名单记录。
select polar_delete_proxy_routing_strategy(_name, _type);
说明
其中:
_name:需要删除的路由的表名或者函数名。
_type:标记此次删除的是表名还是函数名。t:表示表名;f:表示函数名。
例如,执行select polar_delete_proxy_routing_strategy('lol', 't');
命令。
删除这条记录之前,执行
select * from lol
会路由到主库。删除这条记录之后,执行
select * from lol
就会路由到只读库。
删除所有白名单记录
执行以下命令,删除所有白名单记录。
select polar_truncate_proxy_routing_strategy();
文档内容是否对您有帮助?