PostgreSQL 中简易 flushbuffer 模块正确添加和使用
来源:互联网 发布:品茗软件下载 编辑:程序博客网 时间:2024/05/20 09:10
环境: postgresql-9.1.4
ubuntu 12,04
flushbuffer内容 转载于 http://blog.osdba.net/?post=90 PostgreSQL 中刷shared buffer 的实验,作者:osdba(请注明来源)
select * from pg_available_entensions; 查看当前有那些可用扩展
select * from pg_extension; 查看当前安装了的扩展
现在下载了 flushbuffer,放到 postgresql-9.1.4源码contrib下 ,进入/contrib/flushbuffer
make
make install
(之前已经安装好 pg ,安装目录:./configure --prefix=/home/???/pg-9.1.4)
遇到问题:
安装后在 psql 中执行
postgres=#CREATE EXTENSION flushbuffer;
================================
error while loading shared libraries, wrong ELF class: ELFCLASS64
原因:
google后发现是编译库位数问题:系统是32为,但 flushbuffer.so库是64位的,所以就错了。
PS:可以通过如下命令来查看指定库的位数
cd /home/???/pg-9.1.4/lib/postgresql/
(1)file flushbuffer.so
flushbuffer.so: ELF 64-bit LSB shared object, x86-64
(2)还可以用二进制查看命令
od -h -N 10 flushbuffer.so
第四字段0101 (32)
0102 (64)
解决方法:
哎,其实是自己2了,估计作者系统是64位,在其上进行 make 的自然生成了64位库。而我下载flushbuffer文件夹中包含了作者
编译安装后的 .o .so 文件。导致自己在后面使用中出现如上错误。解决方法很简单:
删除原来的 .so .o
重新编译 make & make install
结果编译中有错,如下
make (致命错误 : ../../src/include/utils/elog.h: 69:28: 致命错误: utils/errcodes.h: 没有那个文件或目录 编译中断
查看pg源码,发现这个真没有,就进入 elog.h 中注释了该行, 后面正常。
- PostgreSQL 中简易 flushbuffer 模块正确添加和使用
- 在java中正确使用PostgreSQL大对象和字节流类型的姿势
- Linux系统如何正确使用和安装内核模块
- Spring中正确使用Quartz和CronExpression
- Spring中正确使用Quartz和CronExpression
- Spring中正确使用Quartz和CronExpression
- Spring中正确使用Quartz和CronExpression
- Spring中正确使用Quartz和CronExpression
- 在iBATIS中正确的使用$和#
- Spring中正确使用Quartz和CronExpression
- Spring中正确使用Quartz和CronExpression
- Spring中正确使用Quartz和CronExpression
- [树莓派]正确使用GPS模块
- 项目中添加module作为依赖及删除依赖模块的正确姿势
- msn空间中使用电子邮件发日志项和添加音乐播放模块
- postgresql中使用dblink
- Windows系统中nodejs安装postgresql模块
- Python:使用psycopg2模块操作PostgreSQL
- vc 两种方法实现生成全局唯一标识符GUID
- "朱元璋".getBytes("utf-8").length = ?
- 职业罗盘 认识你自己
- AVL 树高度和结点数的关系
- linux ipc—信号
- PostgreSQL 中简易 flushbuffer 模块正确添加和使用
- CityEngine与ArcGIS对栅格数据的要求情况
- 模板多态
- C# LINQ to XML
- WPF内嵌Flash并交互
- 自定义控件遇到的两个小问题
- C++虚函数的一点分析与思考
- ARM 架构是什么意思,还有其他的架构?
- python运算