ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:27.48KB ,
资源ID:29191706      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29191706.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(postgresql954和pldebuger调试安装.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

postgresql954和pldebuger调试安装.docx

1、postgresql954和pldebuger调试安装序言厌倦了办公室政治的谄媚妄讳,尔虞我诈的关系;想多些时间真正坐下,安心下来为他人留下点经验可以借鉴。留下此篇文章,希望将来可以对初学者提供一些帮助。开始安装POSTGRESQL的时候,也是从网上查一些别人提供的安装文档参照安装的,windows版本安装最简单,再此不想多言。我仅仅就linux(centos6.6 postgresql9.5.4 以及调试程序pldebugger)的安装做些描述,如有纰漏也是本人能力有限敬请谅解。同时也要感谢 (第一步:安装前准备安装数据库,首先要知道有些安装程序上的依赖,为此请认真查证是否本机已经安装的软件

2、依赖包已经满足要求。(下面是方法:)CentOS中查看是否安装了某个软件的命令:rpm -qa | grep 软件名(可非全名)which命令可查看某个软件的安装路径。使用 yum install 包名 来安装软件包。(注意这是非源码安装)-下面关键-1.GNU make的版本3.80以上rootlocalhost # rpm -qa | grep makemake-3.81-20.el6.x86_64rootlocalhost # which gcc/usr/bin/gcc2.ISO/ANSI编译器,推荐最新版本的GCCrootlocalhost # rpm -qa | grep gccgc

3、c-4.4.7-4.el6.x86_64libgcc-4.4.7-4.el6.x86_64gcc-c+-4.4.7-4.el6.x86_64rootlocalhost # gcc -vgcc 版本 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)3.源码包的解压工具tar,除此之外还有gzip或bzip2rootlocalhost # rpm -qa | grep tarlibtar-1.2.11-17.el6_4.1.x86_64tar-1.23-11.el6.x86_64rootlocalhost # tar -versiontar (GNU tar) 1.23

4、4.默认使用GNU Readline库rootlocalhost # rpm -qa | grep readlinereadline-6.0-4.el6.x86_645.默认使用zlib压缩库rootlocalhost # rpm -qa | grep zlibzlib-1.2.3-29.el6.x86_646.可选软件包:(洋人的东西,还得看洋文,请不懂洋文的同学绕过)http:/www.postgresql.org/docs/9.3/interactive/install-requirements.html(1)为了编译PL/Perl服务器端编程语言,需要完整Perl的安装,包括libpe

5、rl库和头文件。(2)为了编译PL/Python服务器端语言,需要一个包含头文件和distuils模块的Python安装。(3)为了编译PL/Tcl服务器端语言,需要Tcl的安装。(4)为了使用NSL,即具有使用不同于英语的一种语言显示消息的能力,需要一种Gettext API的实现。(5)需要Kerberos, OpenSSL, OpenLDAP, and/or PAM,如果你想要使用这些服务支持认证或加密。(6)为了编译PostgreSQL的文档,有一组独立的要求。查看http:/www.postgresql.org/docs/9.3/interactive/docguide-toolse

6、ts.html第二步:获取PostgreSQL源码、pldebugger程序源码 1.下载源码:官网:http:/www.postgresql.org/ftp/source/,这里下载的是最新版postgresql9.5.4.这个地址比较快(我下载的9.5.4)2.解压:你解压前,先找个文件夹,比如/usr/local/src ,把压缩文件放在这,然后解压tar -zxvf postgresql-9.5.4.tar.gz随后会生成一个新的文件夹 /usr/local/src /postgresql-9.5.4。cd postgresql-9.5.4(查看是否有contrib文件夹,记住这个文件

7、夹)3. 下载pldebugger源程序代码,cd contib 执行下面的命令, git clone git:/git.postgresql.org/git/pldebugger.git将下载并创建pldebugger文件夹(安装postgresql数据库前,请你一定要做好上面插件的下载)加强理解几个概念:(网上其他文,说的比较含糊不清)源程序位置: /usr/local/src/postgresql-9.5.4第三方插件包放置位置:/usr/local/src/postgresql-9.5.4/contrib(网上许多安装文档都说找源码,实际指的就是这个位置文件夹)第三方插件简介:(如果想

8、深入研究,可跨过不看)(contrib/:已打包到PG源码中的第三方贡献的插件源码)adminpack:一些管理函数auth_delay:认证失败后延迟报异常,可以防止暴力破解auto_explain:将超过指定执行时间的SQL的执行计划输出到日志中btree_gin:gin索引方法的btree操作符扩展(在某些情况下“多列gin组合索引”比“多个btree单列索引”的bitmap anding更高效)btree_gist:gist 索引方法的btree操作符扩展(在组合索引中的某些列类型仅支持gist索引访问方法,而另一些列的类型支持btree以及gist时 btree_gist更为有效,同

9、时btree_gist还新增了用于排他约束,用于近邻算法)chkpass:自动加密的字段类型(使用UNIX标准函数crypt()进行封装,所以仅支持前8位安全)abcdefghijkl:chkpass-abcdefghcitext:不区分大小写的数据类型cube:多维立方体类型,支持多维立方体对象的相同,相交,包含等运算dblink:PostgreSQL跨库操作插件dict_int:全文检索的一个字典模版,用于控制数字被拆分的最大长度,以控制数字在全文检索中的分词个数(maxlen=6:12345678 - 123456截断成6个,rejectlong=true则忽略这个分词)dict_xsy

10、n:全文检索的一个字典模块,设置分词的同义词,支持同义词匹配dummy_seclabel:用于安全标签SQL的测试earthdistance:可以使用cube或point类型计算地球表面两点之间的距离file_fdw:文件外部表模块fuzzystrmatch:单字节字符串之间的相似性判断hstore:用于存储K-V数据类型,同时这个插件还提供了比较V类型相关的函数和操作符。例如提供数组,json,hstore之间的转换,K-V的存在判断,删除K-V值intagg:int类型的数组聚合函数(内建的array_agg函数已包含这个功能)intarray:int类型的数组功能扩展库,提供了一些常用的

11、函数和操作符(数组元素个数,元素排序,元素下标,取元素子集,相交,包含,增加元素,删除元素,合并等)isn:提供国际通用的产品标识码数据类型,例如ISBN,ISMN.lo:大对象的一个可选模块,lo类型以及自动unlink大对象的触发器,方便大对象在消亡后的自动unlink,防止大对象存储泄漏(类似内存泄漏)ltree:异构数据类型以及操作函数和操作符。例如China.Zhejiang.Hang9.1)pg_upgrade_support:pg_upgrade用到的服务端函数集pg_xlogdump:从xlog中dump出一些易读的底层信息postgres_fdw:postgresq跨库的外部

12、表插件seg:线段类型和浮点数的区间类型,以及相关的操作符,索引访问方法等sepgsql:基于SELinux安全策略的访问控制模块spi:一些服务端的触发器函数(例如跟踪记录的存活时间,被哪个用户修改了,记录的修改时间等)sslinfo:输出ssl认证的客户端的一些认证信息start-scripts:数据库启动脚本模版tablefunc:一般可用于行列变换,异构数据处理等tcn:提供异步消息输出的触发器test_parser:全文检索中的一个自定义parser的测试插件tsearch2:全文检索相关的插件,在全文检索未引入PG内核前的PG版本可以使用这个插件来实现全文检索功能,大于8.3以后就

13、不需要这个了unaccept:全文检索相关的插件uuid-ossp:生成UUID的插件vacuumlo:大对象垃圾回收的命令worker_spi:9.3新增的服务端worker编程范例xml2:xml相关插件(我上面省略了不是源代码目录介绍内容,如果想仔细研究请看原文)第四步:源码安装PostgreSQL-9.5.4步骤如下:1.配置(Configuration)进入源码目录:rootlocalhost src# cd /usr/local/src/postgresql-9.5.4(执行配置程序,这个比较有讲究)我执行的配置文件是下面这样:(因为有些参数要依赖包担心不成功,因此选如下参数)ro

14、otlocalhost postgresql-9.5.4#./configure -prefix=/opt/pgsql9.5.4 -with-pgport=5432 -with-python -with-openssl -with-libxml -enable-thread-safety -with-wal-blocksize=16 -with-blocksize=16洋文默认配置如下:./configure -with-openssl -enable-thread-safety这种默认的配置将编译服务器和使用工具,以及所有客户端应用程序和接口,只需要一个C编译器。所有文件默认将安装到/usr

15、/local/pgsql中。洋人的配置安装说明http:/www.postgresql.org/docs/9.3/interactive/install-procedure.html这里,网上的配置是可选参数设置如下:而且有说明,比较感谢原作者./configure -prefix=/opt/pgsql9.5.4 -with-pgport=5432 -with-perl -with-python -with-tcl -with-openssl -with-pam -without-ldap -with-libxml -with-libxslt -enable-thread-safety -wi

16、th-wal-blocksize=16 -with-blocksize=16 -enable-dtrace -enable-debug配置选项说明:-prefix=/opt/pgsql9.5.4:安装所有文件在/opt/pgsql9.5.4中(也就是安装目录)(取代默认时的/usr/local/pgsql)。-with-pgport=5432:为服务器和客户端设置默认端口号。默认是5432。-with-perl:编译PL/Perl服务端语言。-with-python:编译PL/Python服务端语言。-with-tcl:编译PL/Tcl服务端语言。-with-openssl:编译支持SLL(加

17、密)连接。这需要安装OpenSSL包。-with-pam:编译支持PAM(Pluggable Authentication Modules,可插拔认证模块)-without-ldap:编译支持认证和连接参数检查-with-libxml:编译libxml(支持SQL/XML),支持这个选项需要Libxml 2.6.23及最新版-with-libxslt:编译xml2模块,使用libxslt-enable-thread-safety:让客户端库是线程安全的-with-wal-blocksize=16:WAL:预写式日志(Write-Ahead Logging)设置WAL的block size,以M

18、B为单位。这是在WAL日志中的每个独立文件的大小。为了控制WAL日志传送的粒度去调整其大小,这可能是非常有用的。默认为16MB。这个值必须是2的1到64次方(MB)。注意,改变这个值需要一个initdb。-with-blocksize=16:设置block size,以KB为单位。这是表的存储和IO单元。默认为8K,适用于大多数情况;但是在特殊场合中,其他的值可能是非常有用的。这个值必须是2的1到32次方(KB)。注意,改变这个值需要一个initdb。-enable-dtrace:编译PostgreSQL支持动态跟踪工具DTrace-enable-debug:把所有程序和库以带有调试符号的方式

19、编译-enable- nls=LANGUAGES:打开本地语言支持(NLS),即以非英文显示程序的信息的能力。LANGUAGES是一个空格分隔的语言代码列表,标识 你想支持的语言。比如-enable-nls=de fr。(你提供的列表和实际支持的列表之间的交集将会自动计算出来。)如果你没有声明一个列表,那么就安装所有可用的翻译。(还可以在-enable-debug前,添加两个选项:-enable-depend -enable-cassert)配置过程可能会遇到依赖的动态库缺失, 安装这些缺失的库即可。记录下我这里的缺失lib的安装:dtrace工具的安装:PostgreSQL支持动态跟踪, 可

20、以通过dtrace或者systemtap工具统计相关探针的信息。在CentOS中安装systemtap:在安装systemtap前,要保证kernel对应的kernel-devel包的版本保持一致:检查:rootlocalhost # rpm -qa|grep kernelrootlocalhost # uname -a不一致的话,则安装对应的kernel-devel版本或者升级kernel:rootlocalhost # yum install kernel-devel或:rootlocalhost # yum update kernel重启服务器。安装systemtaprootlocalh

21、ost # yum install systemtap systemtap-sdt-devel其中:安装systemtap时,安装了systemtap-devel、systemtap-client和systemtap-runtime这3个包。systemtap-sdt-devel是编译PostgreSQL时,选项-enable-dtrace需要的包。使用命令:rootlocalhost # rpm -qf /usr/bin/stapsystemtap-devel-2.3-4.el6_5.x86_64systemtap-client-2.3-4.el6_5.x86_64rpm -qf:查询文件隶

22、属的软件包检查stap是否正常rootlocalhost # stapA script must be specified.Try -help for more information.此时stap是正常的。接着测试下:rootlocalhost # stap -ve probe begin log(hello world) exit() Pass 1: parsed user script and 96 library script(s) using 198456virt/26648res/3080shr/24072data kb, in 260usr/40sys/296real ms.Pa

23、ss 2: analyzed script: 1 probe(s), 2 function(s), 0 embed(s), 0 global(s) using 198852virt/27396res/3320shr/24468data kb, in 10usr/0sys/10real ms.Pass 3: using cached /root/.systemtap/cache/ca/stap_ca2aff10c84d1cf00083e0eb3e5d7082_1033.cPass 4: using cached /root/.systemtap/cache/ca/stap_ca2aff10c84

24、d1cf00083e0eb3e5d7082_1033.koPass 5: starting run.hello worldPass 5: run completed in 40usr/80sys/404real ms.stap调试好后,就可以用来跟踪postgresql了。PostgreSQL编译时必须开启dtrace支持,即-enable-dtrace。开启dtrace后,数据库将启用代码中的探针或跟踪点。回到PG的继续重新执行configure,遇到问题以及解决方法:(1)问题1:noconfigure: error: could not determine flags for linki

25、ng embedded Perl.This probably means that ExtUtils:Embed or ExtUtils:MakeMaker is notinstalled.解决方法:yum install perl-ExtUtils-Embed(2)问题2:configure: error: readline library not foundIf you have readline already installed, see config.log for details on thefailure. It is possible the compiler isnt loo

26、king in the proper directory.Use -without-readline to disable readline support.解决方法:yum install readline readline-devel(3)问题3:checking for inflate in -lz. noconfigure: error: zlib library not foundIf you have zlib already installed, see config.log for details on thefailure. It is possible the compil

27、er isnt looking in the proper directory.Use -without-zlib to disable zlib support.解决方法:yum install zlib zlib-devel(4)问题4:checking for CRYPTO_new_ex_data in -lcrypto. noconfigure: error: library crypto is required for OpenSSL解决方法:yum install openssl openssl-devel(5)问题5:checking for pam_start in -lpam. noconfigure: error: library pam is required for PAM解决方法:yum install pam pam-devel(6)问题6:checking for xmlSaveToBuffer in -lxml2. noconfigure: error: library xml2 (version = 2.6.23) is required for XML support解决方法:yum install libxml2 libxml2-devel(7)问题7:checking for xsltCleanupGlobals

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1