显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

PostgreSQL research

公益是一辈子的事, I'm 德哥@Digoal, Just Do it!

 
 
 
 
 
 
为了让跟多的朋友了解PostgreSQL, 我将这些年对PG的使用和研究做成了一些体系的培训视频和一些专题视频.(免费观看和下载)

希望通过这些视频帮到一些朋友, 同时对视频中的错误点烦请读者指出以更正, 谢谢.

目前在更新的视频是<PostgreSQL 数据库管理 5天>和<PostgreSQL 性能优化 3天>.

在线观看地址 :

http://www.tudou.com/home/digoal/

培训视频源文件以及文档下载地址 : 

http://pan.baidu.com/share/home?uk=1982970774#category/type=0

转载请注明出处.

针对一些网友的反馈, 重新设计的培训内容如下, 由浅入深, 适合不同的人群. 包含

<PostgreSQL发展历程,社区介绍,资源介绍 2小时>

<PostgreSQL SQL基础 2天>

<PostgreSQL 数据库管理 3天>

<PostgreSQL 数据库备份与恢复, 数据复制, 负载均衡与高可用 3天>

作者  | 2014-2-22 10:19:30 | 阅读(3331) |评论(23) | 阅读全文>>

[置顶] 给PostgreSQL爱好者的参考资料

2011-8-21 8:32:39 阅读48363 评论16 212011/08 Aug21

推荐书籍:

概念书籍:

《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 内核分析》 - 彭老师

官方手册:

作者  | 2011-8-21 8:32:39 | 阅读(48363) |评论(16) | 阅读全文>>

[置顶] 佛说摩诃般若波罗蜜多心经

2013-7-26 18:04:09 阅读2959 评论2 262013/07 July26

转载自<菩提树下>

http://www.djier.com

般若波罗蜜多心经

观自在菩萨,行深般若波罗蜜多时,照见五蕴皆空,度一切苦厄。

舍利子,色不异空,空不异色,色即是空,空即是色,受想行识,亦复如是。

舍利子,是诸法空相,不生不灭,不垢不净,不增不减。

是故空中无色,无受想行识,无眼耳鼻舌身意,无色声香味触法,无眼界,乃至无意识界。

无无明,亦无无明尽,乃至无老死,亦无老死尽。

无苦集灭道,无智亦无得。

以无所得故,菩提萨埵,依般若波罗蜜多故,心无挂碍,无挂碍故,无有恐怖,远离颠倒梦想,究竟涅磐。

三世诸佛,依般若波罗蜜多故,得阿耨多罗三藐三菩提。

故知般若波罗蜜多,是大神咒,是大明咒,是无上咒,是无等等咒,能除一切苦,真实不虚。

故说般若波罗蜜多咒,即说咒曰:

揭谛揭谛 波罗揭谛 波罗僧揭谛 菩提萨婆诃。

作者  | 2013-7-26 18:04:09 | 阅读(2959) |评论(2) | 阅读全文>>

EXT4's barrier option & JBD & safe cache

2014-8-29 6:11:26 阅读20 评论0 292014/08 Aug29

当ext4底下的块设备的易失缓存没有掉电保护时, 开启barrier=1的话, 可以确保jbd操作的安全性, 即EXT4文件系统的日志安全, 也就是说当异常DOWN机, 并且我们使用了没有掉电保护的块设备缓存时, 还能恢复到一致性状态.

jbd + barrier=1 + 没用掉电保护的块设备缓存 = 安全. (如果你发现dmesg日志中出现disable barrier的情况, 可能是IO stack不支持barrier, 那么如果启用没有掉电保护的块设备缓存就不安全了)

还有一种情况是块设备缓存有掉电保护模块(电池), 那么可以关闭barrier, 来获得更好的性能.

barrier=0 / barrier=1 / barrier / nobarrier

This enables/disables the use of write barriers in the jbd code.  barrier=0 disables, barrier=1 enables.

This also requires an IO stack which can support barriers, and if jbd gets an error on a barrier  write,

it  will  disable  again with a warning.  Write barriers enforce proper on-disk ordering of journal com-

作者  | 2014-8-29 6:11:26 | 阅读(20) |评论(0) | 阅读全文>>

JBD Journaling block device

2014-8-29 6:05:03 阅读21 评论0 292014/08 Aug29

在看man mount, ext4章节关于barrier的讲解时有提到JBD.

这里摘录一下wikipedia的解释.

JBD在Linux内核中是负责记录块设备日志的, 某些文件系统会使用JBD以及它的事务特性来确保文件系统在操作系统异常DOWN机后可恢复到一致性的状态.

JBD, or journaling block device, is a generic block device journaling layer in the Linux kernel written by Stephen C. Tweedie from Red Hat.

Contents  [hide

1 Overview2 JBD structures2.1 Atomic handle2.2 Transaction

作者  | 2014-8-29 6:05:03 | 阅读(21) |评论(0) | 阅读全文>>

PostgreSQL flash back query emulate by trigger

2014-8-28 23:19:10 阅读69 评论0 282014/08 Aug28

今天群里又聊到了PostgreSQL的闪回这个东西, 我之前写过一篇关于利用PostgreSQL mvcc特性来模拟闪回, 找回数据的文章, 有兴趣的同学可以参考如下 :

http://blog.163.com/digoal@126/blog/static/163877040201251911813661/

使用以上方法需要担心的一个问题是数据可能被VACUUM掉了, 所以我们可以定制表的autovacuum threshold, 让重点保护的表的autovacuum 阈值较大, 减少VACUUM的间隔, 或者关闭重点保护的表的autovacuum, 改为人为调度VACUUM. 或者改vacuum_defer_cleanup_age参数, 延迟多少个事务之后再回收.

但是使用以上方法也不适合生产, 因为还要停库, 改控制文件, 都是非常危险的操作. (当然你如果为了找回重要数据, 那么拿备库来做也是值得考虑的.)

如果可以在会话层欺骗数据库当前未分配事务号, 最早已提交事务号的话, 其实就不需要修改这么麻烦了. 当然这个就需要改代码了, 因为这部分数据在共享内存区, 直接改的话危险系数太高, 想办法搞成会话层面的吧还好一点.

本文要介绍另一种闪回方法, 触发器.

步骤如下 :

作者  | 2014-8-28 23:19:10 | 阅读(69) |评论(0) | 阅读全文>>

PostgreSQL bug? function's variable type cached within session.

2014-8-28 16:30:25 阅读41 评论0 282014/08 Aug28

我在使用触发器来跟踪表时, 发现一个问题, 也许是一个BUG.

在函数中使用表类型来作为变量类型的话, 如果这个表的定义发生了改变, 函数内的变量不能及时的反映这个变化, 必须要退出会话重新进入才可以反映这个变化.

当然这个问题很好解决, 不要在函数中使用表的变量即可.

(或者你可以选择hstore代替表类型)

参考 :

http://blog.163.com/digoal@126/blog/static/163877040201252575529358/

例子如下 :

PostgreSQL 9.3.4

创建一个测试表 :

create table public.t (

c1 int primary key,

c2 text,

crt_time timestamp

);

创建一个跟踪表, 使用表的类型来存储old_rec和new_rec.

CREATE TABLE public.undo_t (

id serial8 primary key,

xid int8,

relid oid,

table_schema text,

作者  | 2014-8-28 16:30:25 | 阅读(41) |评论(0) | 阅读全文>>

Google's Global-Deployed SDN B4, Software Defined WAN

2014-8-28 9:53:11 阅读18 评论0 282014/08 Aug28

http://cseweb.ucsd.edu/~vahdat/papers/b4-sigcomm13.pdf

ABSTRACT

We present the design, implementation, and evaluation of B4, a private WAN connecting Google’s data centers across the planet. B4 has a number of unique characteristics: i) massive bandwidth requirements deployed to a modest number of sites, ii) elastic trafc demand that seeks to maximize average bandwidth, and iii) full

control over the edge servers and network, which enables rate limiting and demand measurement at the edge. ese characteristicsled to a So?ware De?ned Networking architecture using OpenFlow to

作者  | 2014-8-28 9:53:11 | 阅读(18) |评论(0) | 阅读全文>>

Docker LXC VS KVM in OpenStack

2014-8-26 16:24:31 阅读32 评论0 262014/08 Aug26

KVM and docker LXC Benchmarking with OpenStack from Boden Russell

Understanding Docker

What is Docker?

Docker is an open platform for developing, shipping, and running applications. Docker is designed to deliver your applications faster. With Docker you can separate your applications from your infrastructure AND treat your infrastructure like a managed application. Docker helps you ship code faster, test faster, deploy faster, and shorten the cycle between writing code and running code.

作者  | 2014-8-26 16:24:31 | 阅读(32) |评论(0) | 阅读全文>>

我们在设计数据库HA的时候, 为了防止主备同时读写一份数据, 或者主备同时对外提供服务. 备机在切换成主机前, 需要有一个fence操作, 需先将主节点fence掉, 然后再激活备库为主库.

例如我们这边用的一个HA脚本 :

https://raw.githubusercontent.com/digoal/sky_postgresql_cluster/master/INSTALL.txt

或者RHEL的HA套件, 都有类似的FENCE操作.

但是keepalived目前没有切换前的自定义脚本, 只有切换后的自定义脚本(notify), 并且不等待脚本执行.

如图 :

keepalived如果用于数据库的HA切换还需要完善一下.

本文将讲解一下, 如何修改keepalived代码, 来实现这方面的功能, 即备切换成主之前, 必须先等待fence主节点.

最终目的如图 :

首先要了解一下keepalived notify的机制 :

顺序是这样的 : 起vip, 起静态路由, fork进程调用notify脚本(并且不等待).

注意调用notify脚本在起VIP之后.

我们的目的是把它放到最前面, 并且需要等待notify脚本调用完成再起VIP.

作者  | 2014-8-26 11:02:32 | 阅读(51) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 

浙江省 杭州市 狮子座

 发消息  写留言

 
Free PostgreSQL Support.
 
QQ276732431
E-Mail digoal@126.com
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 

日志分类

 
 
日志分类列表加载中...
 
 
 
 
 

FlagCounter

 
 
模块内容加载中...
 
 
 
 
 

新浪微博

 
 
模块内容加载中...
 
 
 
 
 
 
 
模块内容加载中...
 
 
 
 
 
 
 
模块内容加载中...
 
 
 
 
 
 
 
心情随笔列表加载中...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2014

创建博客 登录  
 加关注