pg集群配置 http://keyvalue.net/linux%E5%B9%B3%E5%8F%B0%E6%8A%80%E6%9C%AF/%E8%BD%ACpg%E9%9B%86%E7%BE%A4%E9%85%8D%E7%BD%AE.html_file:///e:/%e9%87%8d%e8%a6%81/%e6%a1%8c%e9%9d%a2%2-程序员宅基地

技术标签: path  c  vim  集群  数据库  authentication  

== 1. Machine ==

PL/Proxy
hostname:h08-vm08.corp.cnb.yahoo.com
inet addr:10.62.245.152
Bcast:10.62.245.255
Mask:255.255.254.0
OS: Linux 2.6.9-42.ELsmp
CPU:Intel(R) Xeon(R) CPU L5320 @ 1.86GHz
MemTotal: 254772 kB
Pg_Dir: /home/y/pgsql/data/
port = 5432

Node1:
hostname:h08-vm08.corp.cnb.yahoo.com
inet addr:10.62.245.152
Bcast:10.62.245.255
Mask:255.255.254.0
OS: Linux 2.6.9-42.ELsmp
CPU:Intel(R) Xeon(R) CPU L5320 @ 1.86GHz
MemTotal: 254772 kB
Pg_Dir: /usr/local/pgsql/data/
port = 5433

Node2:
hostname:h07-vm08.corp.cnb.yahoo.com
inet addr:10.62.245.136
Bcast:10.62.245.255
Mask:255.255.254.0
OS: Linux 2.6.9-42.ELsmp
CPU:Intel(R) Xeon(R) CPU L5320 @ 1.86GHz
MemTotal: 514440 kB
Pg_Dir: /usr/local/pgsql/data/
port = 5433

== 2. Install ==

#在PL/Proxy、Node1、Node2节点上执行以下命令:

sudo rpm -ivh postgres_4e_alone-8.3.1.0.rpm
sudo rpm -ivh postgres_4e_contrib-8.3.0.1.rpm
sudo rpm -ivh pgbouncer_4e-1.0.0.0.rpm

== 3. Init ==

#在PL/Proxy、Node1、Node2节点上执行以下命令:

## Add Unix User
sudo adduser postgres
sudo mkdir /usr/local/pgsql/data
sudo chown postgres /usr/local/pgsql/data
sudo visudo
**Add "DEVEL ALL=(postgres) ALL" in the last line
**Apend "hebing" to "User_Alias DEVEL"

## Init DB and Start service
sudo -u postgres /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
sudo -u postgres /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &

## Create DB and Use Local Connection
sudo -u postgres /usr/local/pgsql/bin/createdb URT

##检查数据库是否已经创建
sudo -u postgres /usr/local/pgsql/bin/psql -d URT
sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data stop

#继续在PL/Proxy节点上执行以下命令(安装plproxy节点):
sudo mkdir /home/y/pgsql/data
sudo chown postgres /home/y/pgsql/data
sudo -u postgres /usr/local/pgsql/bin/initdb -D /home/y/pgsql/data
sudo -u postgres /usr/local/pgsql/bin/postgres -D /home/y/pgsql/data >logfile_1 2>&1 &
sudo -u postgres /usr/local/pgsql/bin/createdb URT
sudo -u postgres /usr/local/pgsql/bin/psql -d URT
sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /home/y/pgsql/data stop

== 4. config ==

#在PL/Proxy、Node1、Node2节点上执行以下命令:

## 检查tcp连接端口是否已经配置,默认安装已经配置好
sudo vim /usr/local/pgsql/data/postgresql.conf
listen_addresses = '*'
port = 5433

## PgSQL是基于主机的认证(HBA:"host-based authentication")
sudo vim /usr/local/pgsql/data/pg_hba.conf
## 根据需要添加IP地址、数据库和角色名。IP一般是前端机IP和本地IP,角色在上一步骤中已经添加
host URT postgres 10.62.0.1/16 trust

## 启动服务器
sudo -u postgres /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data reload

#在PL/Proxy、Node1、Node2节点上执行以下命令:
sudo vim /home/y/pgsql/data/postgresql.conf
listen_addresses = '*'
port = 5432

sudo vim /home/y/pgsql/data/pg_hba.conf
## 根据需要添加IP地址、数据库和角色名。IP一般是前端机IP和本地IP,角色在上一步骤中已经添加
host URT postgres 10.62.0.1/16 trust

sudo -u postgres /usr/local/pgsql/bin/postgres -D /home/y/pgsql/data >logfile_1 2>&1 &
sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /home/y/pgsql/data reload

## 检查PL/Proxy节点是否可以访问Node1和Node2节点上的数据库,检查是否可以访问PL/Proxy节点
[hebing@h08-vm08 ~]$sudo -u postgres /usr/local/pgsql/bin/psql -d URT -h h08-vm08.corp.cnb.yahoo.com -p 5433
[hebing@h08-vm08 ~]$sudo -u postgres /usr/local/pgsql/bin/psql -d URT -h h07-vm08.corp.cnb.yahoo.com -p 5433
[hebing@h08-vm08 ~]$sudo -u postgres /usr/local/pgsql/bin/psql -d URT -h h08-vm08.corp.cnb.yahoo.com -p 5432

== 5. Install plpgsql and plproxy ==

#在plproxy、Node1、Node2节点上安装plpgsql,包里面已经安装了。
#如果没有安装plpgsql,可以参考以下步骤:
sudo -u postgres /usr/local/pgsql/bin/createlang plpgsql URT -p 5433

#在plproxy、Node1、Node2节点上安装plproxy,包里面已经安装了。
#如果没有安装plporxy,可以参考以下步骤:
#检查是否有/usr/local/pgsql/bin目录,如果没有,修改你的.bash_profile文件,添加/usr/local/pgsql/bin到path里。
echo $PATH

gunzip plproxy-2.0.4.tar.gz
tar xf plproxy-2.0.4.tar
cd plproxy-2.0.4
gmake
sudo gmake install
sudo -u postgres /usr/local/pgsql/bin/psql -f /usr/local/pgsql/share/contrib/plproxy.sql URT

== 6. Config cluster in plproxy ==

#创建一个plproxy schema,在plproxy里配置集群,注意要连接pgbouncer;放在一个sql脚本里;
sudo -u postgres /usr/local/pgsql/bin/psql -d URT -p 5432 -f cluster.init.sql

== 7. Config DB Node ==

#在Node1、Node2节点上添加操作函数(这里只写了几个简单的函数,需要添加URT的业务逻辑函数)
sudo -u postgres /usr/local/pgsql/bin/psql -d URT -p 5433 -f node.sql

== 8. Config plproxy ==

#在plproxy节点上添加操作函数(这里只写了几个简单的函数,需要添加URT的业务逻辑函数)
sudo -u postgres /usr/local/pgsql/bin/psql -d URT -p 5432 -f plproxy.sql

== 9. Config pgbouncer ==

#在plproxy节点上执行以下操作

#在plproxy节点上安装pgbouncer,包里面已经安装了。
#如果没有安装pgbouncer,可以参考以下步骤:
./configure --prefix=/usr/local --with-libevent=/prefix
make
sudo make install

#修改pgbouncer.ini文件
sudo vim /usr/local/pgsql/share/doc/pgbouncer/pgbouncer.ini
#添加一下内容
#######################
Node1 = host=10.62.245.152 port=5433 user=postgres dbname=URT
Node2 = host=10.62.245.136 port=5433 user=postgres dbname=URT
listen_addr = 127.0.0.1
listen_port = 6543
auth_file = /usr/local/pgsql/share/doc/pgbouncer/users.txt
logfile = /usr/local/pgsql/share/doc/pgbouncer/pgbouncer.log
pidfile = /usr/local/pgsql/share/doc/pgbouncer/pgbouncer.pid
admin_users = user2, someadmin, otheradmin,postgres
stats_users = stats, root,postgres
#########################

#创建users.txt文件
sudo vim /usr/local/pgsql/share/doc/pgbouncer/users.txt
#添加 "postgres" ""

#start pgbouncer
sudo /usr/local/pgsql/bin/pgbouncer -d /usr/local/pgsql/share/doc/pgbouncer/pgbouncer.ini

#测试
sudo -u postgres /usr/local/pgsql/bin/psql -p 6543 -d pgbouncer -U postgres
pgbouncer=# show databases;

sudo -u postgres /usr/local/pgsql/bin/psql -h 127.0.0.1 -p 6543 -d Node1 -U postgres
sudo -u postgres /usr/local/pgsql/bin/psql -h 127.0.0.1 -p 6543 -d Node2 -U postgres

== 10. 导入ltree测试数据 ==

#在plproxy、Node1、Node2节点上安装ltree类型,包里面已经安装了。
#如果没有,可以参考一下步骤
#先安装 postgresql-8.3.0, 安装目录会保存在配置文件里。然后ltree模块:
cd postgresql-8.3.0/contrib/ltree/
make
sudo make install
#安装ltree类型
sudo -u postgres /home/y/pgsql/bin/psql -d URTCluster -f /home/y/pgsql/sha
re/contrib/ltree.sql
#重新载入配置
sudo -u postgres /home/y/pgsql/bin/pg_ctl -D /home/y/pgsql/data reload

#在Node1、Node2节点上执行数据导入操作
wget http://www.sai.msu.su/~megera/postgres/gist/ltree/dmozltree-eng.sql.gz
gunzip dmozltree-eng.sql.gz
sudo -u postgres /usr/local/pgsql/bin/psql -d URT -f dmozltree-eng.sql -p 5433

== 11. 测试 ==

#在plproxy节点上执行
sudo -u postgres /usr/local/pgsql/bin/psql -d URT -p 5432

URT=# SELECT * from public.xquery('select * from dmoz limit 1 offset 10;') as dmoz(id int4, name text, path ltree);

URT=# SELECT * from public.xquery('select path from dmoz where path ~ ''Top.Adult.Arts.Animation.*{1}'';') as dmoz(id int4, name text, path ltree);
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/kc87654321/article/details/4386215

智能推荐

ubuntu14.04通过dante搭建匿名socks5代理_dante-server匿名-程序员宅基地

文章浏览阅读8.4k次。环境:腾讯云提供的 Debian 7.4 64位1.安装dante-serverapt-get install dante-server 2.修改配置文件:备份原配置文件mv /etc/danted.conf /etc/danted.conf.bak新建配置文件touch /et_dante-server匿名

7-1 zust-sy4-4 输出最大、最小字符串_输入5个字符串,输出其中最小的字符串(按字母排序大小)。-程序员宅基地

文章浏览阅读777次。输入5个字符串,分别按ASCII编码顺序、字符串长度输出最大、最小字符串。第一行,按ASCII编码顺序输出最大、最小字符串,空格分开。第二行,按字符串长度输出最大、最小字符串,空格分开。7-1 zust-sy4-4 输出最大、最小字符串。输入五个字符串,之间用空格分开。在这里给出相应的输出。在这里给出一组输入。_输入5个字符串,输出其中最小的字符串(按字母排序大小)。

搞联欢会,你知道什么是音乐吗?(二)-程序员宅基地

文章浏览阅读586次。音乐格式一览 经典的WAVE WAVE文件作为最经典的Windows多媒体音频格式,应用非常广泛,它使用三个参数来表示声音:采样位数、采样频率和声道数。 声道有单声道和立体声之分,采样频率一般有11025Hz(11kHz)、22050Hz(22kHz)和44100Hz(44kHz)三种。WAVE文件所占容量=(采样频率×采样位数×声道)×时间/8(1字节=8bit)。 传统的..._jriver有歌词功能吗

静态站点生成-程序员宅基地

文章浏览阅读954次。一、Gridsome 是什么一个免费、开源、基于Vue.js技术栈的静态网站生成器GitHub 仓库:https://github.com/gridsome/gridsome官网:https://gridsome.org/什么是静态网站生成器什么是静态网站生成器:静态网站生成器是使用一系列配置、模板、以及数据,生成静态 HTML 文件以及相关资源的工具这个功能也叫预渲染生成的网站不需要类似 PHP 这样的服务器只需要放到支持静态资源的 Web Server 或 CND 上即可静态网站有什_静态站点生成

python3 setproctitle多进程重命名详解-程序员宅基地

文章浏览阅读5.2k次,点赞4次,收藏11次。今天由于便于管理,需要修改多进程(包括子进程)的名称,网上的资料不多,基本上没有我想要的案例,今天摸索了下才实现了我的目的,下面具体说一下。首先,修改进程名,主要依靠一个第三方的模块:setproctitle 详情见:https://pypi.org/project/setproctitle/用法很简单,基本就两个方法:setproctitle(title)Settit..._setproctitle

前后端分离原理-程序员宅基地

文章浏览阅读85次。前言  前后端分离已成为互联网项目开发的业界标准使用方式,通过Nginx+Tomcat的方式(也可以中间加一个Node.js)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。这个步骤是系统架构从猿进化成人的必经之路。核心思想是前端HTML页面通过Ajax调用后端的res...

随便推点

使用AI养宠新体验:Pets Classifier项目详解-程序员宅基地

文章浏览阅读209次,点赞4次,收藏7次。使用AI养宠新体验:Pets Classifier项目详解项目地址:https://gitcode.com/AaronJny/pets_classifer宠物识别已不再仅仅是人类视觉的乐趣,而是一项利用深度学习技术实现的智能应用。Pets Classifier 是一个开源项目,它旨在通过图像分类帮助我们识别不同的宠物种类,让我们更智能地享受与四足朋友的相处时光。项目简介Pets Class...

如何防止SWF文件被反编译-程序员宅基地

文章浏览阅读126次。这篇文章的标题所提出的问题的答案是“不可能”。至少对我来说是不可能的。借助适当的工具,我们可以反编译任何SWF文件。所以,不要将重要的信息置于SWF文件中。SWF文件中不要包含个人的帐号或者密码。  我将简要的论述“保护”技术的历史,和他们是如何失败的,接着我将说明我们能尽的最大努力。中国古语有云,“规则只能防君子,不能仿小人”。  公开的文件格式  在讨论之前,我们先要知道,SWF的..._防止swf被访问 只允许脚本

css首行缩进_css 首行缩进-程序员宅基地

文章浏览阅读2k次。css文本首行缩进_css 首行缩进

Kaggle心脏病数据集为例学习机器学习的可解释性分析_pdpbox 没有(_target_plot, _info_plot_interact, _actu-程序员宅基地

文章浏览阅读7.7k次,点赞11次,收藏143次。最近在B站看视频的时候,偶然看到同济子豪兄发的关于机器学习可解释性的视频,因为之前学习机器学习也是学习机器学习的算法以及调库、调参,而模型的内部还是感觉是一个黑箱子。废话不多说:直接上代码。需要安装的工具包pip install numpy pandas matplotlib seaborn wheel pandas_profiling jupyter notebook -i https://pypi.tuna.tsinghua.edu.cn/simplepip install graphviz p_pdpbox 没有(_target_plot, _info_plot_interact, _actual_plot,

index.dat文件剖析_ie浏览记录 index.dat-程序员宅基地

文章浏览阅读4.4k次。一. 前言注重上网隐私和安全的人在每次上网后都会清除上网痕迹——“删除cookies”、“删除掉上网的临时缓存文件”以及“删除上网历史”。你觉得这样,所有的一切都会被擦除掉了。但是如果有人告诉你:这是不够的,系统中还有一些地方保存了你的上网信息,你是不是感到很恐慌?——这就是系统中的index.dat文件。Windows系统中会存在三个index.dat文件。它们分别用来保存I_ie浏览记录 index.dat

计算机地图制图相关论文,计算机地图制图原理、特点及发展趋势论文-程序员宅基地

文章浏览阅读185次。计算机地图制图的编辑准备阶段与手工制图方法步骤大致相同都是先根据要求整理编图资料后进行分析,随之再进行地图投影,从而确定表示方法、内容、比例尺等。今天小编要与大家分享的是 :计算机地图制图原理、特点及发展趋势的论文;具体内容如下,希望能帮助到大家!计算机地图制图原理、特点及发展趋势众所周知,传统的地图制图一般以手工方法制作为主,经过长期发展及日积月累的经验其技术虽然已成熟,但是一系列的弱点还是无法..._关于计算机地图制图的论文方向

推荐文章

热门文章

相关标签