一、环境需求:
Ubuntu10.04以上
PostgreSQL8.4以上(貌似这样才能搭配Ubuntu10.04)
pgAdminIII
windows下若需要pgAdminIII,也一定要与ubuntu服务端版本一致才行,
否则肯能连数据表都看不见。
二、Ubuntu的配置
1. 修改root账户的密码以使root账户生效
plproxy@ubuntu:~$ sudo passwd root
[sudo] password for plproxy:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
2. 以root权限登录
plproxy@ubuntu:~$ su
Password:
三、安装postgresql-8.4.4-1-linux.bin
1. 安装postgresql-8.4.4-1-linux.bin遇到权限问题
root@ubuntu:/home/plproxy/Desktop# ./postgresql-8.4.4-1-linux.bin
bash: ./postgresql-8.4.4-1-linux.bin: Permission denied
2. 修改postgresql-8.4.4-1-linux.bin的只读权限
root@ubuntu:/home/plproxy/Desktop# sudo chmod 777 postgresql-8.4.4-1-linux.bin
3. 开始安装bin包
root@ubuntu:/home/plproxy/Desktop#
./postgresql-8.4.4-1-linux.bin
4. 界面显示安装路径修改
Installation Directory:
/etc/postgresql/8.4
3. 下一步,安装数据路径修改(默认)
Data Directory:
/etc/postgresql/8.4/data
4. 下一步,输入PostgreSQL登录密码
Password:
ok123456
5. 下一步,修改端口
Port:
5432
6. 下一步,修改语言
Locale:
c
7. 下一步,在template1数据库中安装pl/pgsql
x Install pl/pgsql in template1 database?
8. 下一步,安装Stack Builder
x Stack Builder may be used to download and install additional tools,
drivers and applications to complement your PostgreSQL installation.
四、安装和配置PostgeSQL
1. 需要切换到root权限
2. 安装pgadmin3
root@ubuntu:/home/plproxy# sudo apt-get install pgadmin3
...
Do you want to continue [Y/n]? Y
...
3. 去掉data目录下所有文件的只读权限
root@ubuntu:/home/plproxy# sudo chmod 700 /etc/postgresql/8.4/data -R
4. 编辑postgresql.config,完成后关闭
root@ubuntu:/home/plproxy# sudo gedit /etc/postgresql/8.4/data/postgresql.config
listen_addresses = 'localhost' => listen_addresses = '*'
5. 编辑pg_hba.conf,完成后关闭
root@ubuntu:/home/plproxy# sudo gedit /etc/postgresql/8.4/data/pg_hba.conf
列表中的METHOD可以是这些值:"trust", "reject", "md5", "password", "gss", "sspi", "krb5",
"ident", "pam", "ldap" or "cert".
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 192.168.0.0/24 trust
# IPv6 local connections:
host all all ::1/128 md5
6. 重启postgresql服务
root@ubuntu:/home/plproxy# /etc/init.d/postgresql-8.4 restart
启动遇到问题:
waiting for server to start...............................................................could not start server
PostgreSQL 8.4 did not start in a timely fashion, please see /etc/postgresql/8.4/data/pg_log/startup.log for details
7. 查看启动日志
root@ubuntu:/home/plproxy# sudo gedit /etc/postgresql/8.4/pg_log/startup.log
2011-06-10 08:45:53 GMT FATAL: data directory "/etc/postgresql/8.4/data" has group or world access
2011-06-10 08:45:53 GMT DETAIL: Permissions should be u=rwx (0700).
6. 根据启动日志查看原来是将权限设置成了777而不是700
root@ubuntu:/home/plproxy# sudo chmod 700 /etc/postgresql/8.4/data
then step5
五、在pgAdminIII中配置信息
1. 打开pgAdminIII
2. 新建数据库:
Name: MyCluster
OID:
Owner: postgres
Encoding: SQL_ASCII
Template: postgres
Tablespace: <default tablespace>
Schema restriction:
Collation: C
Character type: C
Connection Limit: -1
Comment:
点击OK按钮,出现错误,原来是编码提示
ERROR: new encoding(EUC_CN) is incompatible with the
encoding of the template database(SQL_ASCII)
HINT: Use the same encoding as in the template database,
or use template0 as template.
modify the Template template0:
Template: template0
3. 代理结点是A计算机,安装plproxy
proxy is the PC A.
root@ubuntu:/home/plproxy# sudo apt-get install postgresql-8.4-plproxy
Do you want to continue [Y/n]? Y
4. 安装plproxy语言到数据库JiwanCluster目录中PostgreSQL的数据表中的pg_language表。
root@ubuntu:/home/plproxy# /etc/postgresql/8.4/bin/psql -U postgres -h 192.168.0.10 -f /usr/share/postgresql-8.4-plproxy/plproxy.sql JiwanCluster
plproxy.sql脚本出现有问题:
psql:/usr/share/postgresql-8.4-plproxy/plproxy.sql:4: ERROR: could not access file "$libdir/plproxy": No such file or directory
root@ubuntu:/home/plproxy# sudo gedit /usr/share/postgresql-8.4-plproxy/plproxy.sql
修改脚本中的$libdir的路径为绝对路径,因为尝试过配置环境变量,貌似这个找不到。
the name $libdir is the ".so" file exists.
modify the $libdir as absolute path, as following:
/usr/lib/postgresql/8.4/lib
重新执行第4步.
root@ubuntu:/home/plproxy# /etc/postgresql/8.4/bin/psql -U postgres -h 192.168.0.10 -f /usr/share/postgresql-8.4-plproxy/plproxy.sql JiwanCluster
CREATE FUNCTION
CREATE LANGUAGE
CREATE FUNCTION
CREATE FOREIGN DATA WRAPPER
这样就创建了如下的两个函数:plproxy_call_handler和plproxy_fdw_validator
5. 创建plpgsql语言
root@ubuntu:/home/plproxy# sudo -u postgres /etc/postgresql/8.4/bin/createlang plpgsql "JiwanCluster"
Password:
6. 进入shell脚本,访问数据库JiwanCluster:
root@ubuntu:/home/plproxy# sudo -u postgres /etc/postgresql/8.4/bin/psql -d "JiwanCluster"
Password:
psql (8.4.4)
Type "help" for help.
为数据库JiwanCluster创建模式
JiwanCluster=# create schema plproxy;
CREATE SCHEMA
7. 退出Shell
JiwanCluster=# \q
could not save history to file "/etc/postgresql/8.4/.psql_history": Permission denied
8. 打开主结点proxy数据库JiwanCluster SQL编辑器,创建3个函数:
--增加函数,执行语句:select dmlexec('insert into usertable values(0)')
CREATE OR REPLACE FUNCTION dmlexec(query text)
RETURNS SETOF integer AS
$BODY$
CLUSTER 'jiwan';
RUN ON ANY;
$BODY$
LANGUAGE 'plproxy' VOLATILE
COST 100
ROWS 1000;
--删除函数,select * from dqlexec('delete from usertable')
CREATE OR REPLACE FUNCTION ddlexec(query text)
RETURNS SETOF integer AS
$BODY$
CLUSTER 'jiwan';
RUN ON ALL;
$BODY$
LANGUAGE 'plproxy' VOLATILE
COST 100
ROWS 1000;
--查询函数,select * from dqlexec('select * from usertable order by id') as (id integer)
CREATE OR REPLACE FUNCTION dqlexec(query text)
RETURNS SETOF record AS
$BODY$
CLUSTER 'jiwan';
RUN ON ALL;
$BODY$
LANGUAGE 'plproxy' VOLATILE
COST 100
ROWS 1000;
9. 注意:创建函数出现字符异常,可以在第一行随机敲注释,由pgAdminIII版本号不同造成的,尽量采用英文做注释
10. 出现pg_ctl提示错误
pg_ctl: could not send stop signal (PID: 926): No such process
是手动删除了这个文件,就会报下面的错误:
pg_ctl: PID file "/etc/PostgreSQL/8.4/data/postmaster.pid" does not exist
Is server running?
如果存在这个文件,打开可以看到如下3行:
--------------------------------------
926
/etc/PostgreSQL/8.4/data
5432001 0
--------------------------------------
这三行的含义:
第一行标识PID值,第二行标识这个postmaster.pid存储的位置,第三行什么意思?
但讨论这个毫无意义,postmaster.pid里边出现的三行仅仅是记录而已。
重启服务还报了个错误,需要查看/etc/PostSQL/8.4/data/pg_log/Startup.log
打开一看,才知道又是这个错误
2011-06-10 08:45:53 GMT FATAL: data directory "/etc/postgresql/8.4/data" has group or world access
2011-06-10 08:45:53 GMT DETAIL: Permissions should be u=rwx (0700).
修改data属性为700重启服务竟然就好了。
root@ubuntu:/home/plproxy# sudo chmod 700 /etc/postgresql/8.4/data
11. 最重要的一点:节点数量必须是2的幂次方,即一个主结点+2的幂次方个次结点
即服务器配置如下:
服务器proxy->服务器A
->服务器B
但不能是奇数副结点
服务器proxy->服务器A
->服务器B
->服务器C
分享到:
相关推荐
本文档详细介绍了 Ubuntu 11.04 的安装过程,包括自动分区和手动分区两种方式。通过本文档,用户可以轻松地安装 Ubuntu 11.04 操作系统。 一、安装前的准备 在安装 Ubuntu 11.04 之前,需要准备一个可启动的光盘。...
### Ubuntu 11.04下Qt开发环境的安装指南 #### 一、引言 在Linux环境下搭建Qt开发环境对于初学者来说可能会遇到不少挑战。本文将详细介绍如何在Ubuntu 11.04上安装Qt开发环境,并分享一些实用的经验技巧。本教程...
### Ubuntu 11.04 安装指南详解 #### 一、Linux基础知识与挂载点概念 在深入了解Ubuntu 11.04的安装之前,我们先来了解一下Linux的基础知识,尤其是关于挂载点的概念。 Linux作为一种强大的开源操作系统,其核心...
Ubuntu11.04 下载
Ubuntu 11.04 安装手册是一份详细的指南,旨在帮助用户了解如何在计算机上安装并配置Ubuntu 11.04,一款面向桌面计算机、笔记本和服务器的Linux操作系统。Ubuntu 11.04代号为"Natty Narwhal",于2011年4月发布,是...
ubuntu11.04离线镜像源制作方法 本文档将详细介绍如何制作ubuntu11.04离线镜像源,主要面向没有网络连接的情况,旨在帮助用户在安装完成ubuntu11.04后能够进行更新。 镜像源的重要性 在安装ubuntu11.04时,镜像源...
为新手提供可靠 思路清晰 易懂的LAMP(LINUX APACHE MYSQL PHP)环境配置教程。
CSI Tool 集成安装包(适配Ubuntu 11.04系统,Intel 5300 无线网卡) csitools
最快最全的Ubuntu11.04源,速度超快
### Ubuntu 11.04 下安装 ns-allinone-2.34 的详细步骤及注意事项 #### 一、Ubuntu 11.04 的安装 1. **下载 Ubuntu 11.04** - 访问官方网站 [www.ubuntu.org.cn](http://www.ubuntu.org.cn/) 下载 Ubuntu 11.04。...
### 硬盘全新安装Ubuntu 11.04详细指南 #### 一、概述 随着Linux系统的普及和发展,越来越多的用户开始尝试将其作为主要操作系统使用。Ubuntu作为一款基于Debian的发行版,以其易用性和社区支持而受到广泛欢迎。...
### Ubuntu 11.04 上 OMAP3530 内核编译问题及解决方案 #### 背景概述 本文旨在提供一个详尽的指南,帮助开发者在 Ubuntu 11.04 系统环境下成功编译 OMAP3530 处理器的 Linux 内核。本案例中使用的硬件平台为天漠...
本文档总结了UBUNTU 11.04服务器版的安装和简单配置过程。安装前需要分好磁盘分区,包括交换空间的分区,建议使用Ubuntu桌面版光盘中分区工具。安装步骤包括选择简体中文、配置网络、设置主机名、时钟设置、磁盘分区...
Ubuntu 11.04 下 Vbox 虚拟机安装Windows 8全教程.doc
Ubuntu 11.04 是 Ubuntu 操作系统的一个版本,发布于2011年,而Wubi是Ubuntu提供的一种简便的安装方式,尤其适合那些希望在不重新分区硬盘的情况下体验Linux的Windows用户。Wubi允许用户将Ubuntu安装为一个Windows内...
### Ubuntu 11.04 在含一键 GHOST 的 Windows XP 系统上安装详解 #### 背景介绍 本文旨在详细介绍如何在已安装一键 GHOST 的 Windows XP 操作系统上安全地安装 Ubuntu 11.04,且不会影响原有的 Windows XP 系统。...
标题《将Ubuntu 11.04 化身为Mac》和描述中所蕴含的知识点主要涉及Ubuntu操作系统及其定制化,特别是如何将Ubuntu桌面环境改造成类似苹果Mac OS的界面风格。文中提及了Elementary、Docky和Gloobus-Preview这三个工具...
【Ubuntu 11.04 服务器版安装和配置详解】 Ubuntu 11.04 是 Ubuntu Linux 的一个老版本,特别针对服务器环境设计。在安装前,需要预先规划磁盘分区,通常需要一个交换空间分区,大小约为2GB,以提供虚拟内存功能。...