PostgreSQL database cann’t startup because memory overcommit
背景 你可能遇到过类似的数据库无法启动的问题, postgres@digoal-> FATAL: XX000: could not map anonymous shared memory: Cannot allocate memory HINT: This error usually means ...
背景 你可能遇到过类似的数据库无法启动的问题, postgres@digoal-> FATAL: XX000: could not map anonymous shared memory: Cannot allocate memory HINT: This error usually means ...
背景 本周末阿里巴巴PG技术峰会将有一个MySQL & PostgreSQL的讨论环节,旨在揭示各自的优缺点,为用户在做数据库选型时提供参考。报名的同学不要错过,未报名参加的同学届时可以关注一下会议结束后发布的文章。 本文主要参考wikivs上的MySQL vs PostgreSQL(这个文章目前来说是...
背景 PostgreSQL数据库如何利用NoSQL数据库的强大计算能力或某些特性呢? 这个问题实际上是因为一种数据库不可能做到适合任何场景,一个企业的不同业务类型可能使用的数据产品也千差万别。昨天和一位朋友聊到一个应用场景,他们有部分数据是存储在aerospike的,在aerospike中做BIT运算是很快的,...
背景 使用触发器来管理订单和库存信息,可以简化数据交互过程。这个例子来自postgresql server programming。 例如 库存表存储一家水果超市的水果的库存总量数据,以及已供应的量数据,库存总量必须大于等于已供应的量。 订单数据表存储每一笔水果的订单信息。 涉及的操作包括新增订单,修改订...
背景 PostgreSQL 支持自定义操作符,本质上是调用函数来实现的。 语法如下: CREATE OPERATOR name ( PROCEDURE = function_name [, LEFTARG = left_type ] [, RIGHTARG = right_type ]...
背景 PostgreSQL的函数支持两种权限检测 invoker, 调用者权限 definer, 定义者权限 比如一个普通用户,定义了一个函数是调用者权限的,当超级用户调用这个函数时,会以超级用户的权限来执行,可以为所欲为。 因此可能被普通用户用来设计陷阱。 正文 PostgreSQL 函数可以设置被调...
背景 在pg_locks中,你可能会注意到两个字段virtualxid和transactionid,这两个字段到底有什么分别呢? Table 48-61. pg_locks Columns Name Type References Descrip...
背景 orafce是针对Oracle做的兼容性包。如果你需要从Oracle 迁移到PostgreSQL,并且用到了这些函数或package的话,就方便多了,可以减少代码的改动量。
背景 PostgreSQL提供了一个扩展模块earthdistance,实际上是将地球构造为一个标准的圆球体(实际上是扁球体),利用cube或point来表示地球上的点。 其中cube是用来记录球坐标的,通过坐标来表示地球上的点。(实际上是做了一定约束的cube, 即域类型earth) -- Define d...
背景 为什么需要online DDL呢?或者nowait DDL呢? PostgreSQL为了保证一个请求不至于无休止的等待锁,锁等待使用了队列机制,并且这个在等待队列中的锁也会和以后的会话将要请求的锁发生冲突。 虽然解决了无休止的等待问题,同时也带来一个比较棘手的问题。 例如, 当数据库中存在一个长事务...