
数据库管理
文章平均质量分 79
Postgresql中国用户会
Postgresql中国用户会致力于PostgreSQL在中国的推广
主要负责PostgreSQL各大会议在中国的信息发布,技术牛文的推广。
展开
-
recovery test script for zfs snapshot clone + postgresql stream replication + archive
前面我写过一篇关于使用ZFS的快照特性和PostgreSQL流复制来完成数据库增量PITR备份的文章 : http://blog.163.com/digoal@126/blog/static/163877040201451894734122/本文将基于这个备份机, 写一个自动的恢复测试脚本.(假设快照每天一个, 并规则命名)2个脚本如下 : #转载 2015-10-14 21:19:52 · 525 阅读 · 0 评论 -
don't shutdown before pg_stop_backup()
在创建备份或STANDBY时,我们通常可以有两种方式一种是通过pg_basebackup,另一种是使用pg_start_backup然后COPY文件的方式。在使用第二种方式时,正确的流程应该是:pg_start_backupCOPYpg_stop_backup但是我们试想一下,如果在COPY完后,调用pg_stop_backup前,主库关闭了,然后又起来了。转载 2015-10-14 21:32:54 · 813 阅读 · 0 评论 -
londiste3 copy table' snapshot & PostgreSQL logical replication's snapshot 不同之处
PostgreSQL有物理复制,也有逻辑复制。物理复制是持续的从XLOG读取block data在对应的物理文件实行recovery的过程。建立物理备份的standby时,会强制开启一个检查点,然后拷贝数据文件,拷贝完后的数据库其实是不一致的,没有关系,只要从检查点开始的所有XLOG都在,就可以恢复。检查点我们可以通俗的认为是一个snapshot。那么对于逻辑复制,snap转载 2015-10-14 21:34:17 · 664 阅读 · 0 评论 -
使用pg_xlogdump找到精准的误操作XID
一般用户在发生误操作后,可能会非常模糊的记得一个大概操作的时间点,那么通过这个线索,我们怎么能定位到用户误操作的精准事务号呢?从而使用PITR恢复到发生误操作前的数据库状态。我们可以使用审计日志,找到精准的时间,假设你开了所有SQL的审计日志(log_statement = 'all')。然后找到精准的XID,需要使用pg_xlogdump。一个例子:用户在转载 2015-10-14 21:40:35 · 1868 阅读 · 0 评论 -
PostgreSQL9.4: jsonb 性能测试 - Postgres2015全国用户大会--重磅嘉宾佳作分享(谭峰)
Postgres2015全国用户大会--重磅嘉宾佳作分享(谭峰) 友情提示: 2015Postgres全国大会将于2015年11月20至21日在北京举行,主会场设在北京丽亭华苑酒店,我们期待您的到来!2015Postgres全国大会官方报名地址http://postgres2015.eventdove.com/ 本期热点嘉宾:谭峰(网名 francs):PostgreS转载 2015-11-12 15:06:40 · 5144 阅读 · 0 评论 -
象行中国9月份9个城市PPT分享(二)
2015年9月12日-19日期间,Postgres中国用户会在全国多个城市在(北京、西安、上海、杭州、南京、长沙、广州、深圳、成都等)举行了一系列的Postgres线下技术交流活动。 活动得到了各地Postgres用户及爱好者的热烈支持,总计有有超过500人参加,线上视频直播的观看人数超过10000。在各个城市的活动中我们有幸邀请到了来自Pivotal、阿里、百度、腾讯、华为等知原创 2015-11-11 22:30:22 · 642 阅读 · 0 评论 -
象行中国9月份9个城市PPT分享(一)
2015年9月12日-19日期间,Postgres中国用户会在全国多个城市在(北京、西安、上海、杭州、南京、长沙、广州、深圳、成都等)举行了一系列的Postgres线下技术交流活动。 活动得到了各地Postgres用户及爱好者的热烈支持,总计有有超过500人参加,线上视频直播的观看人数超过10000。在各个城市的活动中我们有幸邀请到了来自Pivotal、阿里、百度、腾讯、华为等知原创 2015-11-11 22:33:38 · 650 阅读 · 0 评论 -
Postgresql日志系统的实现(一) - Postgres2015全国用户大会--重磅嘉宾佳作分享(李海翔)
Postgres2015全国用户大会--重磅嘉宾佳作分享(李海翔)(一) 友情提示: 2015Postgres全国大会将于2015年11月20至21日在北京举行,主会场设在北京丽亭华苑酒店,我们期待您的到来!2015Postgres全国大会官方报名地址http://postgres2015.eventdove.com/ 本转载 2015-11-11 22:43:49 · 981 阅读 · 0 评论 -
PostgreSQL安全指南 - Postgres2015全国用户大会--重磅嘉宾佳作分享(周正中)
Postgres2015全国用户大会将于11月20至21日在北京丽亭华苑酒店召开。 报名链接:http://postgres2015.eventdove.com/ 本期热点嘉宾:周正中(网名德哥)PostgreSQL 中国社区发起人之一,社区CTO。PostgreSQL中国社区杭州分会会长。PostgreSQL中国社区大学发起人之一。DBA+社群联合发起转载 2015-11-11 22:56:10 · 3046 阅读 · 0 评论 -
How to prevent object bloat in PostgreSQL
经常看到有人说表又膨胀了,那么导致对象膨胀的常见原因有哪些呢?1. 未开启autovacuum对于未开启autovacuum的用户,同时又没有合理的自定义vacuum调度的话,表的垃圾没有及时回收,新的数据又不断进来,膨胀是必然的。(新的数据包括插入和更新,更新产生新版本的记录)2. 开启了autovacuum, 但是各种原因导致回收不及时,并且新的转载 2015-10-14 21:26:29 · 544 阅读 · 0 评论 -
PostgreSQL 逻辑复制插件 UDR,可以愉快的玩类似MySQL的binlog复制了。
PostgreSQL 的流复制素来以高效,实时,稳定著称;为企业解决了很多问题,例如容灾,备份,HA,读写分离等等。但是流复制有一个无法克服的弊端,下游节点只能做到只读,并且只能复制整个集群(使用walbouncer可以做到基于表空间或库级别的物理流复制)。http://www.cybertec.at/en/products/walbouncer-enterprise-grade-part转载 2015-10-14 21:50:07 · 5247 阅读 · 0 评论 -
online DDL (or NOWAIT DDL) in PostgreSQL
为什么需要online DDL呢?或者nowait DDL呢?PostgreSQL为了保证一个请求不至于无休止的等待锁,锁等待使用了队列机制,并且这个在等待队列中的锁也会和以后的会话将要请求的锁发生冲突。虽然解决了无休止的等待问题,同时也带来一个比较棘手的问题。例如,当数据库中存在一个长事务时,如果你要对这个长事务持锁(假设是一个很小的锁)的对象执行DDL(获取Ac转载 2015-10-14 21:38:59 · 1950 阅读 · 0 评论 -
PostgreSQL & Oracle - 2 OLTP "update/select based primary key" & insert
本文主要是针对Oracle的测试, PostgreSQL的测试和测试结果请参考上一篇:http://blog.163.com/digoal@126/blog/static/163877040201541104656600/Oracle版本为12c。硬件和软件环境与上一篇测试PostgreSQL的保持一致,同一台主机,测试时关闭其他任何有干扰的服务和软件。调整Or转载 2015-10-14 21:23:49 · 576 阅读 · 0 评论 -
PostgreSQL & Oracle -1 OLTP "update/select based primary key" & insert
基于同一台主机和存储,分别测试PostgreSQL 9.4.1, Oracle 12c 的小事务处理能力。测试结果仅供参考,有兴趣的同学可以自行测试或者更改测试用例来玩。(因测试使用工具不一样,工具本身的损耗不一样,结果可能没有可比性。)(即使用同样的工具,驱动的性能可能也不一样,很难做到完全没有偏颇。)(所以,本文目的旨在挑战产品自身的极限或者发现自身的问题和缺陷,而非两种产品的转载 2015-10-14 21:22:03 · 624 阅读 · 0 评论 -
CASE : zfs snapshot backup for PostgreSQL when use multi-zfs filesystem
我之前写过几篇关于使用ZFS SNAPSHOT和PostgreSQL standby用于PostgreSQL的备份案例.http://blog.163.com/digoal@126/blog/static/16387704020141110105858171/http://blog.163.com/digoal@126/blog/static/1638770402014518947转载 2015-10-14 21:20:30 · 403 阅读 · 0 评论 -
PostgreSQL 9.5 new feature - BRIN (block range index) index
PostgreSQL 9.5引入的一个全新的索引访问方法BRIN(block range index),这个索引存储了表的连续数据块区间以及对应的数据取值范围。比如一张表有1000个数据块,我们建议一个BRIN在ID(假设这个表有ID字段)上的索引。BRIN默认是每128个连续数据块区间存储一个字段取值的区间,所以这个索引的信息量是将1000个数据块划分为几个连续的128个块的区间转载 2015-10-14 21:29:47 · 809 阅读 · 0 评论 -
PostgreSQL can continue when postmaster killed
数据库主进程挂了,原有的连接还能继续操作数据库,你信吗?PostgreSQL可以做到,并且原来的进程对数据库的操作是持久化的,不会丢数据哦。这得益于PostgreSQL的进程结构设计。而且postmaster进程只负责了简单的工作,例如监听端口。(有人会问了,wal writer, backgroup writer进程都挂了,数据还能持久化?)没错,因为backend process也可以转载 2015-10-14 21:37:54 · 1101 阅读 · 0 评论 -
请勿滥用 2PC, 忘记提交prepared transaction对PostgreSQL造成的危害.
我在数据库中开启了一个2PC事务,但是不去管他,会发生什么呢?有什么危害?postgres=# begin;BEGINpostgres=# insert into t6 values (1);INSERT 25622 1postgres=# prepare transaction 'a';PREPARE TRANSACTIONpostgres=# select * from txid_cu转载 2015-10-14 21:42:46 · 950 阅读 · 0 评论 -
请勿滥用unlogged table & hash index
unlogged table和hash index同样都不会写XLOG,所以如果你用流复制来搞HA,一定概要搞清楚一个问题,切换到备库的话unlogged table数据会被清掉,而hash index也没有,走hash index会失败。unlogged table 的风险以及修复手段可以见 :http://blog.163.com/digoal@126/blog/sta转载 2015-10-14 21:44:10 · 681 阅读 · 0 评论 -
从文件系统恢复遗失的UNLOGGED table's datafile.
注意PostgreSQL的unlogged table是不记录xlog的,所以在备库上没有unlogged table的数据记录。同时,数据库在进入恢复状态时,为了保证数据的一致性,postgresql会自动清除unlogged table的数据文件。那么问题来了,万一你不小心误创建了unlogged table,你可能一开始会没有感知,但是一旦发生以下情况,你会发现数据不见了。转载 2015-10-14 21:46:06 · 612 阅读 · 0 评论 -
cgroup告诉你如何计算 PostgreSQL 数据库实例用了多少内存
当我们在一个操作系统中,启动了多个数据库实例时,我们也许会控制各个实例可以使用的内存,通过cgroup来控制是一种手段。显然,使用cgroup也可以知道你的实例使用了多少内存。例子:在内存组新建一个组[root@digoal ~]# cd /cgroup/memory[root@digoal memory]# mkdir cg1[root@digoal memory转载 2015-10-14 21:48:51 · 1240 阅读 · 0 评论 -
Primary & Standby with 2 HOST HA for PostgreSQL (auto failover failback)
元旦2天, 弄了个小玩意, 适合2台主机, 使用PostgreSQL流复制组建HA.实现自动的failover和failback.已经提交到github, 主备角色各一个虚拟IP.https://github.com/digoal/PostgreSQL_HA_with_primary_standby_2vip有此类需求的朋友可以下载测试. 之前还转载 2015-10-14 21:14:52 · 1211 阅读 · 0 评论 -
fast & safe upgrade to PostgreSQL 9.4 use pg_upgrade & zfs
[更新]已使用pg_upgrade顺利将一个8TB的生产数据库(包含表, 索引, 类型, 函数, 外部对象等对象大概10万个)从9.3升级到9.4, 升级比较快(约2分钟), 因为数据库较大后期analyze的时间比较长, 不过你可以将常用的表优先analyze一下, 就可以放心大胆的提供服务了.PostgreSQL 9.4于昨天(2014-12-18)正式转载 2015-10-14 21:16:45 · 951 阅读 · 0 评论 -
PostgreSQL zhparser & english parser, query, insert performance
本文主要测试一下PostgreSQL 中英文分词的性能,以及带索引的情况下的插入,查询性能。测试环境:CPU:Intel(R) Xeon(R) CPU X7460 @ 2.66GHzMEM:60GOS:CentOS 6.x x64PostgreSQL 9.4.1中文分词使用 http://blog.163.com/digoal@126/blog/s转载 2015-10-14 21:31:37 · 1280 阅读 · 0 评论 -
PostgreSQL sort or not sort when group by?
朋友的一个CASE,在一个查询中为什么group by用到了sort?其实这也是优化器的选择问题,只要成本最低,就有可能选择sort。当然如果hashagg的成本更低,那么就会选择hashagg。CASE:postgres=# create table t1(c1 int,c2 int,c3 int,c4 int);postgres=# insert into t1 s转载 2015-10-14 21:36:39 · 571 阅读 · 0 评论 -
PostgreSQL xlog $PGDATA and zfs snapshot based central backup & PITR case
最近在写一个集中式的PostgreSQL基于块的增量备份的CASE.(因Oracle有块级别增量备份, PG这块是个空白, 不过可以通过第三方软件来实现)视频参考6月28日的杭州PG交流视频http://pan.baidu.com/share/home?uk=1982970774#category/type=0方案参考http://blog.16转载 2015-10-14 21:18:16 · 598 阅读 · 0 评论 -
PostgreSQL jdbc 9.4 支持load balance 和 connection failover了
好消息,PostgreSQL的jdbc驱动支持load balance 和 connection failover了。通过配置多对主机和端口的信息,可以实现简单的连接FALIOVER,直到取到一个正常的连接为止。Connection Fail-overTo support simple connection fail-over it is possible to d转载 2015-10-14 21:47:24 · 2148 阅读 · 0 评论