自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

CentOS plproxy查詢(xún)安裝pgsql編譯源碼

系統(tǒng) Linux
安裝CentOS plproxy只在proxy上安裝,node不用安裝解包make && make install添加CentOS plproxy支持psql -f /usr/local/pgsql/share/contrib/plproxysql 數(shù)據(jù)庫(kù)名在P1上創(chuàng)建schema psql testproxy 用psql客戶(hù)端連接數(shù)據(jù)庫(kù)create schema plproxy; 生成schemavi MyClusterInitsql,然后把下面的內(nèi)容保存:(去掉注釋)begin

CentOS plproxy經(jīng)過(guò)長(zhǎng)時(shí)間的發(fā)展,這里我發(fā)表一下個(gè)人理解,下面就這就來(lái)講術(shù)CentOS plproxy。CentOS plproxy需求: 工作需要3種集群模式.

  1. pgCluster全熱備集群都讀寫(xiě)每臺(tái)節(jié)點(diǎn)都保持?jǐn)?shù)據(jù)完整  
  2. pg Slony-I or II主從集群從只讀主讀寫(xiě)  
  3. pg plporxy分流特性負(fù)載平衡分布到節(jié)點(diǎn)上 

目的: 在 CentOS plproxy 上做查詢(xún),從node返回結(jié)果環(huán)境: 3臺(tái)centos:  1臺(tái)做CentOS plproxy   2臺(tái)做node步驟: 如下:
 
1 安裝pgsql,所有pgsql都要裝版本3xx編譯源碼,rpm 都可以安裝方法看readme或者install文檔源碼安裝默認(rèn)都裝在/usr/local/pgsql/下處理一下環(huán)境變量的問(wèn)題export PATH=$PATH:/usr/local/pgsql/bin初始化數(shù)據(jù)庫(kù)目錄initdb -D /usr/local/pgsql/data
  
生成一個(gè)數(shù)據(jù)庫(kù)createdb 數(shù)據(jù)庫(kù)名添加plpgsql語(yǔ)言支持createlang plpgsql 數(shù)據(jù)庫(kù)名修改 pgsql 的配置文件vi /usr/local/pgsql/data/postgresqlconf取消注釋listen_addresses = '*'port = 5432添加用戶(hù)認(rèn)證host 數(shù)據(jù)庫(kù)名 用戶(hù)名 ip地址 trust
  
2   安裝CentOS plproxy只在proxy上安裝,node不用安裝解包make && make install添加CentOS plproxy支持psql -f /usr/local/pgsql/share/contrib/plproxysql 數(shù)據(jù)庫(kù)名在P1上創(chuàng)建schema psql testproxy 用psql客戶(hù)端連接數(shù)據(jù)庫(kù)create schema plproxy; 生成schemavi MyClusterInitsql,然后把下面的內(nèi)容保存:(去掉注釋)begin

  1. CREATE OR REPLACE FUNCTION plproxyget_cluster_partitions(cluster_name text)  
  2. RETURNS SETOF text AS $$  
  3. BEGIN  
  4. IF cluster_name = 'MyCluster' THEN  
  5. RETURN NEXT 'dbname=test1 host=1921681190';<----節(jié)點(diǎn)ip  
  6. RETURN NEXT 'dbname=test2 host=1921681193';<----節(jié)點(diǎn)ip 
  1. RETURN;  
  2. END IF;  
  3. RAISE EXCEPTION 'Unknown cluster';  
  4. END;  
  5. $$ LANGUAGE plpgsql; 
  1. CREATE OR REPLACE FUNCTION plproxyget_cluster_version(cluster_name text)  
  2. RETURNS int4 AS $$  
  3. BEGIN  
  4. IF cluster_name = 'MyCluster' THEN  
  5. RETURN 1;  
  6. END IF;  
  7. RAISE EXCEPTION 'Unknown cluster';  
  8. END;  
  9. $$ LANGUAGE plpgsql; 
  1. create or replace function plproxyget_cluster_config(cluster_name text, out key text, out val text)  
  2. returns setof record as $$  
  3. begin  
  4. key :'statement_timeout';  
  5. val :60;  
  6. return next;  
  7. return;  
  8. end; $$ language plpgsql; 

end psql -f MyClusterInitsql -d testproxy執(zhí)行上述sql語(yǔ)句以上CentOS plproxy設(shè)置完成開(kāi)始節(jié)點(diǎn)的設(shè)置:給每個(gè)節(jié)點(diǎn)都創(chuàng)建一個(gè)函數(shù):方法同上:

vi到一個(gè)文件中,然后執(zhí)行這個(gè)文件內(nèi)容如下:
begin create or replace function publicdquery(query text) returns setof record as $$declare   ret record;beginfor ret in execute query loopreturn next ret;end loop;return;end;$$ language plpgsql;create or replace function publicddlExec(query text) returns integer as $$declare   ret integer;begin execute query;   return 1;end;$$ language plpgsql;create or replace function publicdmlExec(query text) returns integer as $$declare   ret integer;begin execute query;   return 1;end;$$ language plpgsql; end psql -f 這個(gè)文件名 -d database name -h ip地址

4 然后在proxy上建立相同的函數(shù),用于集群檢索建立,執(zhí)行方法同上:
CREATE OR REPLACE FUNCTION publicdquery(query text) RETURNS setofrecord AS $$CLUSTER 'MyCluster';RUN ON ALL;$$ LANGUAGE CentOS plproxy;CREATE OR REPLACE FUNCTION publicddlexec(query text) RETURNS setof integerAS $$CLUSTER 'MyCluster';RUN ON ALL;$$ LANGUAGE CentOS plproxy;CREATE OR REPLACE FUNCTION publicdmlexec(query text) RETURNS setof integerAS $$CLUSTER 'MyCluster';RUN ON ANY;$$ LANGUAGE plproxy; done  

5 CentOS plproxy測(cè)試   方法:在proxy,nodes上建立相同的表   用select,insert,del 在proxy執(zhí)行然后每個(gè)node上都有響應(yīng)   代碼: select * from publicddlexec( 'create table usertable(id primary key,username varchar(20)'   );在數(shù)據(jù)節(jié)點(diǎn)上生成一個(gè)表usertable,然后可以插入一些數(shù)據(jù)測(cè)試:
select * from publicddlexec(
'insert into usertable(id,username) values(1,'aaa')');
  
 6 CentOS plproxy如果失敗請(qǐng):  參考 pgsql 官方手冊(cè)

【編輯推薦】

  1. CentOS SYN Flood攻擊原理Linux下設(shè)置
  2. CentOS VNC試驗(yàn)用的工控機(jī)不支持鼠標(biāo)
  3. CentOS gcc安裝問(wèn)題的解決方法
  4. CentOS系統(tǒng)是Linux常見(jiàn)版本之一
  5. CentOS PPPOE安裝配置客戶(hù)端軟件和前提條件
責(zé)任編輯:佚名 來(lái)源: CSDN
相關(guān)推薦

2021-01-04 08:15:16

CentOS 7Python3.9Python

2011-02-24 15:04:58

ProftpdCentos

2010-01-13 15:07:51

2010-01-13 16:55:10

CentOS PHP安

2010-01-15 20:59:54

2010-02-23 14:45:52

CentOS LEMP

2010-06-02 13:05:14

Sendmail 安裝

2010-01-14 16:53:40

CentOS Apac

2013-04-10 15:12:03

MySQL 5.6

2021-06-08 07:49:29

MySQL數(shù)據(jù)庫(kù)索引

2010-01-13 16:46:44

CentOS Apac

2010-01-15 10:16:50

CentOS rpm安

2010-01-13 14:18:36

CentOS Open

2010-04-01 13:37:24

CentOS系統(tǒng)5

2017-03-20 15:08:04

RedisNoSQLcentos6

2010-02-03 09:26:52

Linux Mysql

2010-01-15 20:43:42

CentOS PHP編

2010-02-22 16:09:18

CentOS安裝

2010-01-14 16:27:44

CentOS emes

2010-01-15 17:35:09

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)