第一范文网 - 专业文章范例文档资料分享平台

PostgreSQL+经验谈-PostgreSQL

来源:用户分享 时间:2025/5/25 18:12:43 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

系列的频率高的CPU比较有优势  内存的考量要点  并发连接数, 活跃数据, shared_buffer的配置大小, 常用SQL中group by, distinct的比例和work_mem的配置大小, autovacuum work进程的配置数 量以及

maintenance_work_mem的配置大小.  OS配置  推荐 linux x64位  内核参数 ( kernel.shmmax , kernel.shmall , kernel.shmmni , kernel.sem , net.core.rmem_default , net.core.rmem_max , net.core.wmem_default , net.core.wmem_max , vm.overcommit_memory ,

fs.aio-max-nr)  limit ( nofile , nproc , core , memlock )  blockdev --setra 扇区(512字节) 22 PostgreSQL -  存储配置  cache (打开带断电保护的读写cache)  raid ( 建议RAID10, 更新频繁的数据库不建议使用RAID5 )  medium (ssd or 机械盘) (更新频繁的数据库建议使用满足IOPS需求的存 储或SSD, 或将频繁更新的数据表空间放到SSD上)  网络的考量要素  几个需要着重考虑网络的场景 ( big result [set] , backup , 容灾 )  连接池  PostgreSQL和客户端交互是一对一的进程模式, 因此不适合直接与高并发 的短连接应用直接连接. 加连接池是比较好的解决办法. ( 如pgbouncer )  数据库编译时需要考量的要点  with-wal-blocksize(根据pg_test_fsync结果选择最优) ,  with-blocksize( OLAP系统或经常需要读取大量数

据进行分析的系统可以 选择较大的blocksize ) 23 PostgreSQL -  文件系统考量  ext4, xfs, zfs  数据库集群初始化时需要考量的要点  --encoding ( 满足需求的情况下选择单字符占有字节数少的, 方便未来和其 他业务线或国际化的话建议选择UTF8 )  --locale ( C )

 --xlogdir ( 选择独立的存储 )  --pgdata ( 选择独立的存储 )  影响性能的postgresql.conf主要参数  shared_buffers  work_mem  maintenance_work_mem  vacuum_cost_delay , vacuum_cost_limit 

synchronous_commit , wal_writer_delay , wal_buffers 24 PostgreSQL -  影响性能的主要参数 : postgresql.conf  wal_sync_method  commit_delay , commit_siblings  checkpoint_segments , checkpoint_completion_target  random_page_cost , effective_cache_size 

vacuum_cost_delay, vacuum_cost_limit  autovacuum , autovacuum_vacuum_cost_delay,

autovacuum_vacuum_cost_limit  log_lock_waits , deadlock_timeout  temp_tablespaces 25 PostgreSQL -  SQL平均响应时间抖动  每秒处理SQL请求数抖动  抖动和什么有关?  checkpoint  突发性资源争抢  锁等待  ...  稳定性目标  不影响业务  如数据库异步操作  性能在业务接受范围内 26 PostgreSQL -  权限

最小化  pg_hba.conf  iptables  角色权限  防止SQL注入  应用层过滤器, 禁用简单查询协议(Simple Query protocol (PQexec))  密码复杂度策略  长度, 组成(大小写,数字,特殊字符)  审计  登陆,登出,DDL,  密码加密传输, 存储(encrypted), 数据加密传输, 存储  防火墙  外网访问限制  不建议数据库直接暴露在外网上 27 PostgreSQL -  单节点的PostgreSQL如何确保数据可靠性?  (XLOG fsync)确保成功提交的数据在发生异常后可恢复, 未提交的事务在 发生异常后回退.  注意这里指的异常不包括存储故障  fsync = on 

full_page_writes = on  synchronous_commit = on  关闭没有断电保护的持久化存储的cache(一般指硬盘), (存储,RAID卡一般 都会带断掉保护电池)  一个降低可靠性, 不破坏数据一致性, 但是可以大大提高性能的参数  ( D in ACID )  synchronous_commit = off  关闭

synchronous_commit后, 正常关闭数据库不会导致数据丢失. 异常 DOWN机或DOWN库则最多可能丢失

wal_writer_delay*3的最近时间的 xlog信息. (也就是未从wal_buffers flush到xlog file的信息) 28 PostgreSQL-  数据库高可用的显著特点  要求数据可靠性  为什么要求数据可靠性?  A刷卡消费了1000元购买商品, 在数据库中完成了这笔事务.  数据库DOWN机  Failover , 数据

库从主库切换到备份库  A消费1000元购买商品的这个事务不能丢失.  久经考验的高可用方案  RHCS, 共享存储, VIP  共享存储, 节点切换前要fence主库, 确保主库不再对数据发生操作. 同 一时刻只有一个节点在对数据文件进行读写.  缺陷  不能低于存储故障的风险.  如果配置的多播心跳, 网络抖动会造成节点切换. 网络情况不好可 选仲裁磁盘. 29 PostgreSQL -  久经考验的高可用方案  同步流复制, 不共享存储, VIP  优点是不需要采购昂贵的存储, 可以抵御存储单点故障.  切换前fence主库  缺点是同步流复制对性能有影响(下降5%左右).  http://blog.163.com/digoal@126/blog/static/163877040201192 203458765/  异步流复制不适合引入高可用方案, 原因是会导致切换后丢失事务信息. 如 A消费的事务可能在切换后丢失. (当然如果业务系统容忍这种丢失, 也可以 考虑的.) 30 PostgreSQL -  扩展应该和应用紧密结合  和应用不相干的扩展举例  中间件(pgpool-II), 读写分离, 分布式.  和应用结合数据库扩展  读写分离(流复制), 分表  分库  跨库事务, 全局一致性备份和还原(目前只有PostgreSQL-XC做到, 因为 它是有一台GTM统一管理事务ID的)  跨库关联, 原来在一个库中可以通过JOIN来完成, 分库后需要分成多步 操作.  分库的原则是尽量避免跨库查询和跨库事务, 一般按照频繁作为条件出 现的字

搜索更多关于: PostgreSQL+经验谈-PostgreSQL 的文档
PostgreSQL+经验谈-PostgreSQL.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9dzsi9f4zu7b8vd53zji_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top