PL/Proxy安装配置
来源:互联网 发布:八音度调音软件 编辑:程序博客网 时间:2024/05/18 03:16
1、环境三台虚拟机系统:red hat6.5ip 192.168.11.65 代理数据库 192.168.11.66 数据节点 db1 192.168.11.67 数据节点db2三台机器上均安装好postgresql数据库版本:postgresql9.4..42、在P1上安装plroxy[postgres@barman ~]$ tar xvf plproxy-2.5.tar.gz[postgres@barman ~]$ cd plproxy-2.5.tar.gz[postgres@barman plproxy-2.5]$ make[postgres@barman plproxy-2.5]$ make install创建一个新数据库proxydb[postgres@barman plproxy-2.5]$ createdb proxydb;进入数据库创建plproxy;[postgres@barman plproxy-2.5]$ psql proxydbpsql (9.4.4)Type "help" for help.postgers=#create extension plproxy;创建好模式postgres=#create schema plproxy;3、在d1和d2上建好数据库datadbpostgres@barman1 ~]$ createdb datadb;4、 在P1上初始化设置#plproxy的配置是通过三个函数(过程)实现的,这三个函数的标准模版如下:#这个函数是让plproxy可以找到对应的集群,将三个函数建立在proxydb中CREATE OR REPLACE FUNCTION plproxy.get_cluster_partitions(cluster_name text)RETURNS SETOF text AS $$BEGINIF cluster_name ='cluster1' THENRETURN NEXT 'dbname=datadb host=192.168.11.66';RETURN NEXT 'dbname=datadb host=192.168.11.67';RETURN;END IF;RAISE EXCEPTION ‘Unknown cluster’;END;$$ LANGUAGE plpgsql;#这个函数是plproxy用于判断是否给前端返回已经cache过的结果用的CREATE OR REPLACE FUNCTION plproxy.get_cluster_version(cluster_name text)RETURNS int4 AS $$BEGINIF cluster_name = 'cluster1' THENRETURN 1;END IF;RAISE EXCEPTION 'Unknown cluster';END;$$ LANGUAGE plpgsql;#这个函数是获取不同的集群的配置create or replace function plproxy.get_cluster_config(cluster_name text, out key text, out val text)returns setof record as $$beginkey := 'statement_timeout';val := 60;return next;return;end;$$ language plpgsql;6. 在D1,D2节点上设置#给每个数据库节点都创建一张表usersCREATE TABLE users (username text,email text);#给每个数据库节点都创建一个插入函数CREATE OR REPLACE FUNCTION insert_user(i_username text, i_emailaddress text)RETURNS integer AS $$INSERT INTO users (username, email) VALUES ($1,$2);SELECT 1;$$ LANGUAGE SQL;7. 在P1节点上设置#在 plproxy 节点上创建一个同名的插入函数,用于进行集群检索CREATE OR REPLACE FUNCTION insert_user(i_username text, i_emailaddress text)RETURNS integer AS $$CLUSTER 'cluster1';RUN ON hashtext(i_username);$$ LANGUAGE plproxy;#在 plproxy 节点上创建一个查询函数,用于进行集群检索CREATE OR REPLACE FUNCTION get_user_email(i_username text)RETURNS text AS $$CLUSTER 'cluster1';RUN ON hashtext(i_username) ;SELECT email FROM users WHERE username = i_username;$$ LANGUAGE plproxy;8. 在P1上测试结果postgres@barman plproxy-2.5]$ psql -d plproxydbSELECT insert_user('zhangsan','zhangsan@163.com');#被保存到D2, 可以用select hashtext('zhangsan') & 1验证,被hash到 partition 1SELECT insert_user('lisi', 'lisi@163.com');#被保存到D2, 可以用select hashtext('lisi') & 1验证,被hash到 partition 1SELECT insert_user('wangwu','wangwu@163.cm');#被保存到D1, 可以用select hashtext('wangwu') & 1验证,,被hash到 partition 0SELECT get_user_email('zhangsan');SELECT get_user_email('lisi');SELECT get_user_email('wangwu');
0 0
- PL/Proxy安装配置
- PL/Proxy安装配置
- PostgreSQL 数据库集群和PL/Proxy配置安装指南
- [转]PostgreSQL 数据库集群和PL/Proxy配置安装指南
- PostgreSQL 数据库集群和PL/Proxy配置安装指南
- pl proxy 集群示例配置过程
- zabbix-proxy安装配置
- mysql-proxy安装配置
- PL/SQL 安装配置
- MySQL-Proxy的安装配置
- MySQL-Proxy的安装配置
- MySql Proxy安装配置详解
- zabbix proxy安装和配置
- mysql-proxy安装及配置
- altas mysql-proxy安装配置
- Mysql Proxy安装与配置
- Ubuntu下PostgreSQL数据库集群(PL/Proxy)配置方法
- Ubuntu下PostgreSQL数据库集群(PL/Proxy)配置方法
- EF Sqlite code first环境搭建
- 机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)
- 关于android端的百度地图定位无法定位,经纬度都是4.9E-324的问题
- 为什么你该开始学习编程了?
- DBD::mysql安装出错 ‘can't exec mysql_config’
- PL/Proxy安装配置
- 算法相关——Java排序算法之冒泡排序(二)
- 逐浪CMS2 x3.9功能展示:超级按钮随心管理就是好
- 阿里巴巴Java开发手册-MySQL约束-索引规约
- python生成xml文件
- 剑指offer 面试题5—从尾到头打印链表
- MVC绑定前台传进来的list对象
- 使用solr,提示 bin/solr: line 135 解决办法
- OV7670 OVERVIEW