数据库代理提供函数或表的自定义路由功能,通过此功能可以让自定义函数的读操作路由到只读库(原默认路由到主库),或者让自定义表读的操作路由到主库(原默认路由到只读库)。
前提条件
本章节所有操作需要使用高权限账号通过主地址连接到数据库中进行。
创建插件
请提交工单创建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();
