初识PostgreSQL

2014-10-29 20:12  |  分类:PostgreSQL

最近开始了解一下PG的东西,这之前,先来了解一下历史(八卦),同时也拜拜大神Michael Stonebraker

PG的历史

关于PostgreSQL的历史,官方和一些参与者现身说法,已经可以"多角度"、"立体"看到比较完整PG历史了。PG的前身Ingres,和System R同是最早关系型数据库践行者。有人用Graphviz绘制的一个关系数据库发展历史,可以看到PG在关系型数据库历史中的地位,以及它对后续Informix、Sybase、SQL Server的巨大影响(大图慎入:RDBMS-timeline 对应的github项目)。

前身:Ingres

折腾PG之前都是要拜一拜Michael Stonebraker的。

1970年,在Codd发表了关系型数据库的论文,1973年,IBM的System R研究小组也发表了关于实现的系列论文之后,Michael Stonebraker开始和学生一起做关系型数据相关的研究并成立了项目Ingres,“Interactive Graphics and Retrieval System”的缩写,原本该项目经费是计划用于地理信息数据库系统的研发(参考)。在当时,Ingres相比System R是一个运行在低端机器的(“low end”,相对于大型机 "big iron" IBM mainframes)产品。到后来,80年代初期,“低端机器”的性能和容量已经开始威胁到“大型机”。这时,Ingres以一个类似BSD的协议发布,很多公司就开始在“低端机器”上基于Ingres发布自己的商业产品。顺势,Michael Stonebraker和一些fellow成立了Ingres Corporation,公司随后出售给 Computer Associates。

曾经一度,Ingres是和Oracle竞争的产品("head-to-head"),这两个产品都被认为是当时的硬件无关的关系型数据库产品。甚至在当时,无论从功能、性能、市场份额、价格,很多人都认为Ingres更加优秀(参考)。但从85年开始,Oracle通过更具侵略性的市场策略;再加上当时SQL语言逐渐被更多人开始接受,而Ingres仅支持自己实现了查询语言QUEL,慢慢的Ingres失去自己的市场份额。

目前Ingres仍然在发展,在这里可以下载到它的最新版。[......]

Read more

神秘而优秀的游戏:Limbo

2014-09-9 21:29  |  分类:简单生活
limbo

很早在一篇介绍《时空幻境》(Braid)游戏的文章中提到了Limbo,这次在iPad排行榜再看到这个游戏,果断购买,并在七月份的某个周六通关,期间有好几个地方"卡壳"了很久:经常被困在一个小小的地方,探索了所有可以探索的东东,但是还是找不到出去玄机,反复如此,又不想查攻略认输,心里那个憋屈,玩过类似解谜游戏的人大多能够明白这种心理。侥幸,一次次当我耐心耗费接近极限的时候,总能绝处逢生,找到反复查看仍然被遗忘的线索。也偶尔有几个需要极限操作的地方,retry过若干次后,概率总能帮我挑战成功。

我眼里的Limbo故事

在较为顺利的通关后,开始想想这个游戏到底是在讲述一个什么故事:

故事开始,主人公在深林中醒来,这里充满腐烂、飞虫、和黑暗,就这样,开始我们的探险。在这个世界里,到处都充满了危险,突然袭来的电锯、从天而降的巨石、硕大的怪物蜘蛛、反常的地心引力、还有能够夺走自由行走能力的小虫,通过无数次的挣扎,最后,终于冲破“水面”,逃出了这个世界。[......]

Read more

使用VPN翻墙访问互联网

2014-06-9 22:51  |  分类:简单生活

在可见的未来预计GFW还会发威很多次,比如每年都有六月四日,还可能有艾未未这样较真的人,社会发展的车轮会不断的羞辱GFW,恼羞成怒之后就会发威。即使除了这些,GFW还会误伤很多网站和基础服务,比如Google Docs、Gmail等等。所以一个稳定的VPN服务就很有必要了。

翻墙有多方法,如ssh tunnel/goagent/VPN等,各有优缺点,本文*概述*使用VPN自由的访问互联网服务。[......]

Read more

朋友,不要再打听彼此薪水

2014-04-28 15:50  |  分类:简单生活

不想糊里糊涂,所以整理了一下思路。因为财年关系,最近很多朋友私下在讨论薪水、年终奖、加薪、option。窃以为这是一件很让人沮丧、且没必要的事情。

1. 了解薪水待遇的大趋势是有必要的

对于很多人,工资通常是家庭收入的主要甚至是唯一来源,高低直接影响着家庭的生活品质。所以对各个公司的薪水体系有个大致的了解,知道怎样的努力会获得怎样的回报,是很有必要的。

到网上稍加搜索,几家大公司(例如BAT)各个主要层级的薪水待遇都能查到大概的区间,和商品价格一样,薪水高低通常是“个人价值”和“供求关系”的综合反映,通过了解薪水的概要信息,可以让你知道,什么类型的人才、技术是公司比较需要的。[......]

Read more

使用mysqladmin ext了解MySQL运行状态

2014-03-13 10:56  |  分类:MySQL

mysqladmin是MySQL一个重要的客户端,最常见的是使用它来关闭数据库,除此,该命令还可以了解MySQL运行状态、进程信息、进程杀死等。本文介绍一下如何使用mysqladmin extended-status(因为没有"歧义",所以可以使用ext代替)了解MySQL的运行状态。

1. 使用-r/-i参数

使用mysqladmin extended-status命令可以获得所有MySQL性能指标,即show global status的输出,不过,因为多数这些指标都是累计值,如果想了解当前的状态,则需要进行一次差值计算,这就是mysqladmin extended-status的一个额外功能,非常实用。默认的,使用extended-status,看到也是累计值,但是,加上参数-r(--relative),就可以看到各个指标的差值,配合参数-i(--sleep)就可以指定刷新的频率,那么就有如下命令:[......]

Read more

使用MySQL自身复制来恢复binlog

2013-11-25 22:47  |  分类:MySQL

如果需要恢复的二进制日志较多,较复杂,强烈建议使用MySQL自身复制来恢复binlog,而不要使用mysqlbinlog。

在MySQL手册中一直是推荐使用mysqlbinlog工具来实现指定时间点的数据恢复,事实上,这是一个经常"让人郁闷"的办法。更好的办法是,使用MySQL内部复制线程中的SQL Thread来做恢复。

这个idea来自Lazydba同学;在Google稍作搜索,在Xaprb上Baron Schwartz也很早提到了使用类似的方法来恢复binlog,在那篇讨论中,还可以看到Jeremy Cole也提到:使用MySQL手册中推荐的方法是困难重重的,而且mysqlbinlog这个办法从逻辑上来说也是一个错误--因为这样MySQL不得不在两个不同的地方实现一套相同的逻辑,最终难免会出错。使用mysqlbinlog来恢复,你可能会需要以下“让人郁闷”的问题:

(*) Max_allowed_packet问题 (*) 恼人的Blob/Binary/text字段问题 (*) 特殊字符的转义问题 (*) 没有"断点恢复":执行出错后,没有足够的报错,也很难从失败的地方继续恢复

1. 如何操作

本文不打算写一个step by step的文档,只介绍主要的思路和粗略的操作步骤。

1.1 将binlog作为relay log来执行

优点:实施简单;缺点:需要关闭一次数据库(不确定不关闭数据库行不行);

思路:直接将要恢复的binlog拷贝到relay log目录,并修改slave-info相关的文件,让MySQL把binlog当做relay log来执行

简单的操作步骤:[......]

Read more

Pages: 1 2 3 4 5 6 7 8 ... 28 29 30 Next