标签 PostgreSQL , recovery , recovery.conf , restore_command , timeline , 时间线 , next wal , PITR , 时间点恢复 背景 PostgreSQL数据库支持PITR时间点恢复。默认情况下,只需要配置目标是时间点,resotre_command即可,PG会自动调用resotre_command去找需要的WA
标签 PostgreSQL , PPAS , EPAS , edb , enterprisedb , Oracle , 兼容性 , 优缺点 背景 EPAS为EDB的PostgreSQL Oracle兼容企业版,基于PostgreSQL社区版本开发,2004年发布了第一个Oracle兼容版,已经在ORACLE兼容性上耕耘了15年。 2018年推出EPAS 11 版本,完成了 Oracle
标签 PostgreSQL , pgcenter , pg_top , awr , perf insight , 等待事件 , perf , profile , 采样 , 统计信息 背景 PostgreSQL 性能诊断的方法很多: 例如: 1、函数的性能诊断,PROFILE。 《PostgreSQL 函数调试、诊断、优化 & auto_explain & plpro
标签 PostgreSQL , data_sync_retry , write back , retry , failed status 背景 有些OS系统,对fsync的二次调用不敏感,因为OS层可能有自己的CACHE,如果使用了buffer write,并且出现write back failed的情况,有些OS可能在下次fsync时并不能正确的反馈fsync的可靠性与否。(因为这个B
标签 PostgreSQL , max_wal_senders , max_connections , sorry, too many clients already 背景 如果你需要使用PG的流复制,上游节点的max_wal_senders参数,用来限制这个节点同时最多可以有多少个wal sender进程。 包括逻辑复制、物理复制、pg_basebackup备份等,只要是使用stre
标签 PostgreSQL , EDB , ppas , epas , enterprisedb , 阿里云 背景 Oracle兼容性越高,迁移改造工作量越少,时间成本越低。对于大多数传统企业来说,去O已势在必行。 PostgreSQL 数据库本身与O的兼容性还行,同时功能覆盖度也还是很不错的,所以自己有专业研发团队的企业,选择PG来去O是不错的选择,其中也有很多非常成功的案例,例如平
标签 PostgreSQL , PostGIS , geos 背景 http://lin-ear-th-inking.blogspot.com/2019/02/betterfaster-stpointonsurface-for.html 使用GEOS新的代码,提升PostGIS重计算的函数性能。 The improved ST_PointOnSurface runs 13 times
标签 PostgreSQL , CTE , materialized , not materialized , push down 背景 PostgreSQL with 语法,能跑非常复杂的SQL逻辑,包括递归,多语句物化计算等。 在12以前的版本中,WITH中的每一个CTE(common table express),都是直接进行物化的,也就是说外层的条件不会推到CTE(物化节点)里
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan paral
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan parallel
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan
标签 PostgreSQL , 恢复 , 时间点恢复 , PITR , restore_command , recovery.conf , partial , history , 任意时间点恢复 , timeline , 时间线 背景 政治正确非常重要,对于数据库来说亦如此,一个基于流复制的HA架构的集群,如果还有一堆只读节点,当HA集群发生了主备切换后,这些只读节点能否与新的主节点保持
标签 PostgreSQL , pg_permissions , \dp , 权限 背景 通常列出权限可以使用psql的一些简写: \dp+ \dp+ *.* 列出用户,schema的默认权限。列出表、视图、序列的权限。 这几个简写的介绍如下 \ddp [ pattern ] Lists default access privilege set
标签 PostgreSQL , 逻辑复制 , 流复制 , testdecoding , amazonriver , hellobike 背景 amazonriver 是一个将postgresql的实时数据同步到es或kafka的服务。由hellobike开源。 版本支持 Postgresql 9.4 or later Kafka 0.8 or later Elas
标签 PostgreSQL , 重启 , 信号 , postmaster.pid , pg_reload_conf() 背景 如何通过SQL接口直接关闭数据库,或者重启数据库? 关闭和重启数据库是一个风险较大的操作,如果能通过SQL来关闭,重启数据库,当然是很难想象的,因为SQL通常是使用接口,而不是管理接口。当然并不是数据库做不到通过SQL管理数据库,而是这确实是风险较大且并不是数据
标签 PostgreSQL , vacuum_cleanup_index_scale_factor , 索引vacuum 背景 在执行vacuum时,有一个cleanup阶段,以往,不管这个阶段是否需要清理PAGE,只要表上面有索引,就需要对这个表的索引全部扫描一遍。 今天,PG 11版本,增加了一个GUC参数vacuum_cleanup_index_scale_factor,以及bt
标签 PostgreSQL , 锁等待 , 队列 背景 当一个进程处于等待(被堵塞)状态时,是谁干的?可以使用如下函数,快速得到捣蛋(堵塞别人)的PID。 1、请求锁时被堵,是哪些PID堵的? pg_blocking_pids(int) int[] Process ID(s) that are blocking specified server process ID from acq
标签 PostgreSQL , xDB replication server , sql server , oracle , ppas , 同步 , ddl , dml , 全量 , 增量 , log based , trigger based , smr(single-master replication) , mmr(multi-master replication) 背景 Post
标签 PostgreSQL , Oracle 兼容性 , Oracle 19c 背景 《PostgreSQL 覆盖 Oracle 18c 重大新特性》 Oracle 19c 新特性摘自盖老师《Oracle 19c 新特性及官方文档抢鲜下载》文章,其中有一些特性在PostgreSQL中很早以前已经支持。本文旨在介绍PG如何使用这些特性。 1.Data Guard 备库DML自动重定向
标签 PostgreSQL , hugetlbfs , hugepage , memory filesystem , ramfs , tmpfs , shmfs 背景 在做一些测试时,如果IO设备很烂的话,可以直接使用内存文件系统,避免IO上引入的一些开销影响测试结果。 用法很简单: tmpfs or shmfs mount a shmfs with a certain size
标签 PostgreSQL , checksum , pg_verify_checksums , 备份集校验 , 恢复校验 背景 使用PostgreSQL pitr,数据库恢复到一个时间点后,这个数据库的所有BLOCK是否都是一致的? 数据库在DOWN机恢复后,数据文件所有BLOCK是否一致? 定期抽查数据库的数据文件是否BLOCK级一致? 以上需求如何快速的满足呢? Postg
标签 PostgreSQL , pg_backtrace , 错误调用栈 , core 背景 PostgreSQL 使用backtrace,让PG的user process支持self-debugging。 NAME backtrace, backtrace_symbols, backtrace_symbols_fd - support for application
标签 PostgreSQL , 列存 , 混合存储 , 列存索引 , 向量化存储 , 混合索引 , ros , wos , cstore , ocr , vector index , roadmap 背景 列存优势 1、列存没有行存1666列的限制 2、列存的大量记录数扫描比行存节约资源 3、列存压缩比高,节约空间 4、列存的大量数据计算可以使用向量化执行,效率高 行存优势
标签 PostgreSQL , 稳定 , 技巧 , 实践 背景 如同其他数据库一样,使用时需要注意一些问题,那么如何使用PG,可以保证长期稳定。 部署形态设计实践 根据对可靠性、可恢复性、可用性等等的不同要求,选择部署形态: 1、分布式部署(例如pg+citus插件) 容量上限:100节点以上,PB级。 计算能力上限:100节点以上,6400核以上。 读写带宽上限:100节点
标签 PostgreSQL , citus , sharding , push , pull , 优化器 背景 citus 是postgresql的sharding 开源中间件,2018年被微软收购,插件依旧开源。 在处理非常复杂的SQL时,CITUS使用推拉模型,支持跨节点的数据交换,用以处理复杂SQL。 中间结果的push,pull过程: push : shard ->
标签 PostgreSQL , citus , sharding , 优化器 , query planner , query exexutor , Real-time Executor , Router Executor , Task Tracker Executor , co-locate 背景 A Citus cluster consists of a coordinator ins
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan parallel index scan parallel index only scan
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan parallel index scan parallel index only sc
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan parallel index scan parallel index
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan parallel index scan
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan parallel index scan
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan parallel index scan
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan parallel index sc
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan parallel inde
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan parallel index scan parallel index only scan
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan parallel index scan parallel index only sc
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan parallel index scan parall
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持几十种场景的并行计算。 并行计算到底带来了多大的性能提升? 是否满足实时分析的需求? 是否可以支持OLTP与OLAP混合业务使用? 《PostgreSQL 多模, 多应用场景实践》
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan parallel index scan
标签 PostgreSQL , 阿里云 , 实时精准营销 , 人群圈选 , 广告 背景 行业: 几乎所有行业, 如互联网、新零售、教育、游戏等. 应用场景: 根据目标群体的特征, 快速提取目标群体.例如, 在电商行业中, 商家在搞运营活动前, 根据活动的目标群体的特征, 圈选出一批目标用户进行广告推送或活动条件的命中. 在游戏行业中, 运营经常会根据游戏玩家的某些特征圈
1、使用开源项目, 帮助公司节省软件费用.
2、参与开源项目的社区活动, 了解前沿技术, 与社区专家建立连接, 提升职场人脉.
3、贡献开源项目, 提升自我技术能力, 如果这是个流行或者头部企业开源的重点开源项目, 通过贡献开源成就开源项目的同时, 自身的技术影响力也能得到飞跃成长. 提升职场竞争力.
Linus Torvalds:Linux 操作系统的发明人和主要维护者,通过开源项目成为了世界上最有名的程序员之一。
Eric Raymond:自由软件运动的倡导者,主要贡献了众多的开源项目,如 Fetchmail、GNU Emacs 等。
Chris Wanstrath:GitHub 创始人之一,是 Ruby on Rails 开源项目的贡献者和核心开发者。
Jeremy Ashkenas:Backbone.js 框架的创建者,也是 CoffeeScript语言的创建者和 Backbone.js 开源项目的核心开发者。
总之,开发者参与开源项目可以获得很多好处,如提高个人技能、可见度和人际关系,同时也可以为未来的就业创造机会。通过开源项目,很多开发者也成为了知名的程序员和技术领袖。
https://github.com/digoal/blog/blob/master/201802/20180226_05.md 高级用法(《PostgreSQL SELECT 的高级用法(CTE, LATERAL, ORDINALITY, WINDOW, SKIP LOCKED, DISTINCT, GROUPING SETS, ...) - 珍藏级》)
你需要使用数据库超级用户创建EXTENSION;
https://github.com/digoal/blog/blob/master/201605/20160510_01.md
PG 除了不支持database级的wal,其他都比较完备了。
秒杀例子,30万 tps
https://github.com/digoal/blog/blob/master/201711/20171107_31.md
skip locked row例子
https://github.com/digoal/blog/blob/master/201610/20161018_01.md
推荐你使用HybridDB for PostgreSQL,或 rds pgsql,都支持直接读写OSS,通过OSS 外部表。
阿里内部今年双十一也使用了RDG PGSQL和HDB PG。
https://github.com/digoal/blog/blob/master/201706/20170601_02.md
https://github.com/digoal/blog/blob/master/201711/20171111_01.md
如果你需要使用搜索服务,可以考虑用RDS FOR POSTGRESQL,支持全文检索、模糊查询、相似查询、正则查询等功能。
亿级别数据量,毫秒级响应。
可以,但是你需要将整个数据库的生命周期管理起来。
https://github.com/digoal/blog/blob/master/201711/20171125_01.md
你可以使用阿里云的RDS FOR PPAS数据库,高度兼容ORACLE的SQL语法和存储过程语法。甚至在某些方面性能超越了ORACLE。
使用jdbc接口或者其他的应用开发接口。
你也可以使用PostgreSQL
cmin, cmax代表的是这条记录在一个事务中的第几条SQL被写入或更新
不需要,这个是事务锁。你需要排查的是业务逻辑。
这个文章对你会有帮助
https://github.com/digoal/blog/blob/master/201705/20170521_01.md
例子
https://www.postgresql.org/docs/10/static/plpgsql-porting.html
或者你可以使用 阿里云RDS for PPAS产品,高度兼容Oracle大多数plsql函数不需要转换
不支持,PG 11支持
https://www.postgresql.org/docs/devel/static/sql-createtable.html
如果你需要在PG 10支持这个语法,可以用insert on conflict插入,在遇到报错时do update,然后再目标表添加update rule,将update转成insert到default table。
不可,暂时还没有插件化。
恢复手段优先级:
1、如果有增量备份,建议从增量备份+归档文件进行时间点恢复。
2、如果没有增量备份,建议使用dump文件逻辑恢复,恢复到某个备份的时间点。
3、如果以上都没有,可以从文件系统层恢复,如果文件是在数据库停库状态下被删的,恢复后建议先备份一下数据文件。然后使用VACUUM 检查一下全库。
3.1 如果文件是在数据库启动状态下被删,数据库处于不一致状态,或者数据文件没有完全恢复时,需要reset control file才能启动数据库。
3.2 如果数据文件恢复程度不足以启动数据库,那么可以使用pg filedump,从仅有的数据文件中导出数据内容,并进行人为的恢复。
你需要先编译安装imgsmlr插件。