设为首页 收藏本站
查看: 1318|回复: 0

[经验分享] PostgreSQL资料

[复制链接]

尚未签到

发表于 2016-11-19 06:25:54 | 显示全部楼层 |阅读模式
  推荐书籍:
  概念书籍:
  《PostgreSQL Introduction and Concepts》
  开发书籍:
  《PostgreSQL开发必备参考手册》
  管理类书籍:
  《PostgreSQL 9 Administration Cookbook》
  《PostgreSQL 9.0 High Performance》
  《PostgreSQL Server Programming》
  《How PostgreSQL Processes a Query》
  了解内核 : 
  http://www.postgresql.org/developer/backend/
  http://wiki.postgresql.org/wiki/Backend_flowchart
  《数据库查询优化器的艺术:原理解析与SQL性能优化》 - 海翔老师
  《 PostgreSQL 内核分析》 - 彭老师
  官方手册:
  http://www.postgresql.org/docs/
  中文手册:
  http://www.postgres.cn/document
  培训类PPT:
  《PostgreSQL Inside 系列》 
  《PostgreSQL DBA培训PPT》 
  代码树:
  http://doxygen.postgresql.org/
  代码提交集:
  https://commitfest.postgresql.org/
  项目GIT:
  http://git.postgresql.org
  PostgreSQL GITHUB镜像
  https://github.com/postgres/postgres
  PostgreSQL JDBC 驱动:
  http://jdbc.postgresql.org
  http://jdbc.postgresql.org/development/privateapi/
  PostgreSQL ODBC 驱动:
  http://www.postgresql.org/ftp/odbc/versions/src/
  PostgreSQL 扩展插件:
  http://pgfoundry.org
  http://pgxn.org/
  GUI工具(pgAdmin):
  http://www.pgadmin.org/
  安全漏洞:
  http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=postgresql
  中文社区:
  http://bbs.pgsqldb.com
  中文官网:
  http://www.postgres.cn
  国外FAQ社区, BLOG:
  http://www.pgcon.org/
  https://www.postgresql.us/
  http://www.itpug.org/
  http://www.pgug.de/
  http://www.diapug.org/
  http://stackoverflow.com/questions/tagged/postgresql
  http://momjian.us
  http://www.pgexperts.com
  http://blog.2ndquadrant.com/en
  一位社区兄弟ty4z2008整理的资料
  https://github.com/ty4z2008/Qix/blob/master/pg.md
  其他推荐网站:
  http://db.cs.berkeley.edu
  http://mariposa.cs.berkeley.edu/
  http://www.postgresql.org
  http://wiki.postgresql.org/wiki/Todo
  http://wiki.postgresql.org/wiki/Development_information
  http://wiki.postgresql.org
  http://www.pgbuildfarm.org
  https://github.com/aggregateknowledge/postgresql-hll
  http://www.postgis.org/
  http://workshops.opengeo.org/postgis-intro/
  http://www.opengeospatial.org/
  http://code.google.com
  https://developers.google.com/
  http://www.perzl.org/aix/
  http://db-engines.com/en/
  http://pgmag.org/
  http://planet.postgresql.org/
  http://www.cybertec.at/
  http://www.translattice.com/
  http://citusdata.com/
  http://www.dbms2.com/
  http://www.informationweek.com/
  http://www.infoq.com/
  http://www.actian.com/
  http://aws.amazon.com/redshift/
  http://sourceforge.net/projects/postgres-xc/
  http://www.postgres-xl.org/
  http://madlib.net/
  http://research.google.com/index.html
  http://postgresql.1045698.n5.nabble.com/
  http://blog.163.com/digoal%40126
  推荐PostgreSQL 专业群:
  3336901
  书籍打包下载:
  如有需要请联系: 276732431, 或留言留下您的邮箱. 文件超过100MB, 邮箱需要支持大附件才能接收. 
  或者到以下网盘下载.
  http://yun.baidu.com/share/link?shareid=3626307544&uk=1982970774
  PostgreSQL 培训视频
  http://www.tudou.com/home/digoal
  视频下载地址
  http://blog.163.com/digoal@126/blog/static/16387704020141229159715/
  PostgreSQL TODO & 软肋, 
  大多数软件都有坑, 如果把握不好, 那就掉坑里去了, PostgreSQL亦如此, 为避免初次接触PostgreSQL的朋友掉坑里去, 这里罗列了一些PostgreSQL的软肋和TODO, 大家可以参考一下.
  todo
  1. http://wiki.postgresql.org/wiki/Todo
  2. 基于WAL的多主复制(9.4可能会实现)
  3. 多CPU资源利用, 如并行查询
  4. shared nothing 架构(目前需要插件来实现如plproxy, pgpool-ii)
  5. 基于块的增量基础备份(目前只有基于WAL的增量备份)
  6. query cache, 如count(*)性能提升
  7. toast 阈值可配置(目前只能在编译时指定)
  8. 使用ssd作为二级缓存
  9. PostgreSQL 目前一个集群只支持1个block_size, 这种不利于复杂场景的使用, 例如我们在同一个数据库中有大量的OLTP请求, 同时还有大数据的频繁导入需求的情况下, 选择小的block_size或者大的block_size都不合适, 如果能针对每个表指定不同的block_size的话可以很好的解决这一的问题.  当然如果数据库中存在不同大小的block_size, 那么随之而来的改动是非常大的, 例如shared buffer也必须兼容不同大小的block size.
  在Oracle 9中, 支持一个数据库中存在不同的数据块大小. 
  10. PostgreSQL的配置文件是直接编辑的, 没有像oracle这样的spfile, 当然9.4会支持alter system来修改, 但是<=9.3的没有, 修改文件容易出错, 不安全, 错误的话会导致数据库集群无法启动.
  11. 目前开源的postgresql不支持函数加密. 安全性较低.
  12. 目前移动表空间(如alter table tbl set tablespace newtbs;)会产生大量的XLOG, 这个应该是可以优化的.
  13. 流复制异步模式下, failover后, 可能因为主备xlog的差异需要重做standby. 目前可以通过rsync减少网络传输, 或者zfs snapshot来将OLD PRIMARY回退到以前的状态达到切换成standby的目的. 
  14. 没有表空间配额限制, 目前只能通过文件系统使用配额来简单的限制.
  15. 没有rotate table, 类似mongoDB的capped collection. 限制记录条数, 空间, 或记录时长, 超过限制就覆盖最早的记录 .
  16. pg-xc, pg-xl的数据重分布需要将数据从所有的数据节点加载到coordinator后, 在按照重分布算法分发到新的所有节点.
  17. 同步流复制的一点可能可以改进的地方, 例如只有一台standby时, 如果standby异常或网络原因导致XLOG无法同步复制到standby并返回feedback的话, 那么在同步提交队列中等待提交的xact将处于等待状态, 一般的做法是使用2个或2个以上的standby来防止1个STANDBY故障时可以自动将同步standby节点向下转移, XACT不需要等待. 那么是不是可以有得选择, 例如在等待多少秒之后自动切换成异步模式.
  18. 目前没有比较好的读写分离或shared-nothing解决方案, 例如
  1. 通过中间件pgpool-II构建读写分离, 但是pgpool-II目前稳定性, 性能(tps)都不尽人意.
  2. 使用pg-xc构建的shared-nothing, 性能(TPS)损耗太大, 同时全局一致性还原(PITR)目前还只有停留在创建barriers, 粒度无法达到gxid的粒度(因为每个节点各管各自的XID).
  3. 使用plproxy构建shared-nothing, 性能损失小, 但是没有跨节点事务能力, 当然如果应用层愿意使用 2PC来实现的话, 也是可以的. 另外, 接口必须是PLPROXY函数, 所以对应用来说适配较差.
  软肋
  1. 读写并发管理通过新增行版本实现, 会带来垃圾数据, 对于非HOT更新的话, 还会引起索引更新, 导致索引更容易膨胀.
  2. 显然这种MVCC机制不利于频繁更新的应用场景, 同一条记录被更新10次的话, 会产生10个版本的写xlog和heap page的IO, 同时在VACUUM的时候还需要写xlog以及heap page的IO. 这10个版本可能并不会同时存在, 但是却实实在在的产生了这些写IO.
  3. 通过xid来识别版本, 且xid是32位存储, XID是需要复用的, 所以经过一定的事务分配后需要freeze, 当然此MVCC机制的好处也是有的, 例如锁粒度很小, 容易实现repeatable read和ssi. 会话层可实现跨越会话的一致性镜像等.
  4. 同样MVCC带来的问题, 在大数据库中使用逻辑备份时(), 备份开始后产生的垃圾数据都无法被回收, 如果备份时间很长, 将导致数据库膨胀比较厉害, 同时也会影响对象的freeze. 所以对大库建议使用pitr备份方式. 
  5. one-by-one的扩展数据块使得对同一个对象进行大批量的并行数据导入的时候(例如并行COPY)会产生extend锁等待问题. 影响导入性能. 参见 : http://blog.163.com/digoal@126/blog/static/163877040201392641033482
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-302252-1-1.html 上篇帖子: postgresql 安装 下篇帖子: postgreSQl详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表