08 2013 档案
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页[作者 高健@博客园 luckyjackgao@gmail.com]由于客户提到,运行某些大运算量批处理时,PostgreSQL突发性使用大量资源的问题,进行了如下的调查,发现确实发生了崩溃。PostgreSQL 需要资源控制方案啊。现在正在考虑是否必须要用 os 级别的限制方案:过程如下:测试环境:内存:大约1024MBpostgresql.conf 设定: 使用缺省值:checkpoint_segments =3 shard_buffers=32..
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页[作者 高健@博客园 luckyjackgao@gmail.com]PEM (Postgres Enterprise Manager),它包含很多组件:PEM_3_0_Installation_Guide_v3.pdf 中说:Postgres Enterprise Manager™ installers are available via StackBuilder, or from the EnterpriseDB website at:http://.
阅读全文
摘要:下载地址:http://www.enterprisedb.com/products-services-training/products/postgres-plus-solution-pack/downloads文档说明:To try any of the Solution Pack components:Download the binaries for your operating environment below.Install PostgreSQL and let StackBuilder run when the installation completes.In StackBui
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL内部结构与源代码研究索引页 回到顶级页面:PostgreSQL索引页[作者:高健@博客园 luckyjackgao@gmail.com]PostgreSQL对资源使用的控制,相关信息如下,不过总量把握是不能的:如果是PostgreSQL,可以参考:http://www.postgresql.org/docs/current/interactive/runtime-config-resource.html如果是PPAS,可以参考:http://www.enterprisedb.com/docs/en/9.2/pg/r.
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL杂记页 回到顶级页面:PostgreSQL索引页[作者 高健@博客园 luckyjackgao@gmail.com]缘起于 客户报告内存使用出现突发的上升:客户是用 free命令来监控的,于是了解了一下free命令输出的构成:推荐此文:http://www.perlmonks.org/?node_id=712434换算关系如下:A = B +C =G +HG=B-E-FH=C+E+F具体关系今后慢慢地解。[作者 高健@博客园 luckyjackgao@gmail.com]回到上一级页面:PostgreSQL杂记页 ..
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页作者 高健@博客园 luckyjackgao@gmail.com采用Oracle11g for HU-UX,PPAS9.0 for LinuxDBLink主要的好处:可以通过从PPAS访问Oracle,实现逐渐地从Oracle向PPAS迁移:先从OLAP或者非关键业务着手,逐步推进。另外,如果从Oracle移植到PPAS,也可以通过DBLink方式来导入数据。过程如下:版本信息:Oracle OS HP-UX ...
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页[作者 高健@博客园 luckyjackgao@gmail.com]下面是基本概念上的介绍:http://www.enterprisedb.com/resources-community/tutorials-quickstarts/all-platforms/migrating-oracle-postgres-plus-advanced-servhttp://www.pgcon.org/2011/schedule/attachments/205_Ora.
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL内部结构与源代码研究索引页 回到顶级页面:PostgreSQL索引页作者:高健@博客园 luckyjackgao@gmail.com开始之前,有一个问题需要说明,PostgreSQL中,没有一个与Oracle SGA类似的东西来控制共享内存的大小:http://raghavt.blogspot.com/2011/04/postgresql-90-architecture.htmlhttp://raghavt.blogspot.com/2011/04/postgresql-90-memory-processes.ht.
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页作者:高健@博客园 luckyjackgao@gmail.com参考:http://blog.2ndquadrant.com/measuring_postgresql_checkpoin/执行前:select pg_stat_reset();select pg_stat_reset_shared('bgwriter');待测试程序执行完毕后:SELECTtotal_checkpoints,seconds_since_start / to
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页官方说明来自:http://www.postgresql.org/docs/9.2/static/runtime-config-wal.html#RUNTIME-CONFIG-WAL-CHECKPOINTS何时发生Checkpoint呢?下列条件任意之一会导致Checkpoint发生: shared_buffers中,产生了 checkpoint_segments*16MB 以上的数据。 距离上次Checkpoint发生,经过了 checkpoint_.
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL内部结构与源代码研究索引页 回到顶级页面:PostgreSQL索引页HOT的解释:如下的日文文档中,有几个图示,解释得比较清晰:http://www.slideshare.net/ItagakiTakahiro/postgresql-83-update?from_search=11在update的时候,不在index上建立新的节点,而是通过数据块中老记录指向同块的新记录方式,来减少IO读写操作。http://www.2ndquadrant.com/static/2quad/media/pdfs/talks/Postg.
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL内部结构与源代码研究索引页 回到顶级页面:PostgreSQL索引页根据官方文档的说明 http://www.postgresql.org/docs/9.2/static/sql-analyze.htmlAnalyze 的基本作用:ANALYZE collects statistics about the contents of tables in the database, and stores the results in the pg_statistic system catalog. Subsequently.
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL内部结构与源代码研究索引页 回到顶级页面:PostgreSQL索引页作者 高健@博客园 luckyjackgao@gmail.com首先要了解 vacuum 与 vacuum all的区别:vacuum 就是进行扫除,找到那些旧的“死”数据,把它们所知的行标记为可用状态。但是它不进行空间合并。vacuum full,就是除了 vacuum,还进行空间合并,因此它需要lock table。而 autovacuum,可以理解为 定时自动进行 vacuum 。对于有大量update 的表,vacuum full是没有必要的.
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL内部结构与源代码研究索引页 回到顶级页面:PostgreSQL索引页作者:高健@博客园 luckyjackgao@gmail.com本来想要查找autoanalyze 的相关资料,没想到找到的是 autovacuum的内容,但是这个内容很有用:http://blog.gocept.com/2012/05/22/dont-stop-postgresqls-autovacuum-with-your-application/其中最重要的就是下面一句话:Vacuuming (whether automatic or manu.
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页[作者 高健@博客园 luckyjackgao@gmail.com]在PostgreSQL中,分区表是无法建立的,或者说是假的分区表。步骤通常如下:建立base表,建立继承base表的各个子表,为base表建立rule,建立trigger。这样,把base表当作分区表的入口,由于insert/update时不断触发trigger,其效率还是很低下的。可以参见https://wiki.postgresql.org/wiki/Table_partition.
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL集群方案相关索引页 回到顶级页面:PostgreSQL索引页作者 高健@博客园 luckyjackgao@gmail.comGridSQL由EnterpriseDB公司开源而来,目前已经不再发展,现在已经被Stado所代替。早期为ExtenDB(EnterpriseDB--2003年前),在2007年被EnterpriseDB改名、开源为GridSQL。https://wiki.postgresql.org/wiki/GridSQL其中提到:对于Stado的介绍位于:https://wiki.postgresql...
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL内部结构与源代码研究索引页 回到顶级页面:PostgreSQL索引页索引膨胀,主要是针对B-tree而言。索引膨胀的几个来源:1 大量删除发生后,导致索引页面稀疏,降低了索引使用效率。2 PostgresQL 9.0之前的版本,vacuum full 会同样导致索引页面稀疏。3 长时间运行的事务,禁止vacuum对表的清理工作,因而导致页面稀疏状态一直保持。如何找出 膨胀的索引,参见:https://wiki.postgresql.org/wiki/Index_Maintenance#Index_BloatCREAT.
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值 返回顶级页:PostgreSQL索引页luckyjackgao@gmail.com本页记录所有本人所写的PostgreSQL的基础知识和基本操作相关文摘和文章的链接:1 psql-- ---1.1 psql and chinese----------------------- 如何使 Postgresql 的psql 使用 中文提示信息 ---1.2 psql change chinese info--------------- 更改PostgreSQL的中文显示信息 ---1.3 psql tips------------------------..
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值 luckyjackgao@gmail.com 返回顶级页:PostgreSQL索引页 本页记录所有本人所写的PostgreSQL的内部结构和源代码研究相关文摘和文章的链接: 1 pg_stat_statements pg_stat_statements源代码
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值 luckyjackgao@gmail.com返回顶级页:PostgreSQL索引页此页,记录其他数据库,linux以及各种点滴事项1--数据库设计 1.1------------------- 同时10万个事务在线,读写频繁,数据库该如何设计2--Linux 2.1--fdisk----------- 对linux下 fdisk 中 primary , extented, logical 分区的理解 2.2--centos--cn------ CentOS 安装中文 2.3--centos--cn------ CentOS下的中文输入 2.4...
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值返回顶级页:PostgreSQL索引页本页记录所有本人所写的PostgreSQL的集群方案相关文摘和文章的链接:pgpool-II: 1 pgpool-II and pgpool ---------------------------- pgpool 与 pgpool-II 莫混淆 2 pgpool-II master-slave -------------------------- pgpool-II的master-slave模式的分析 3 pgpool-II shortcoming --------------------------- ...
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值返回顶级页:PostgreSQL索引页本页记录所有本人所写的PostgreSQL的统计信息相关文摘和文章的链接:pg_stats: ----------------------------- PostgreSQL的pg_stats学习pg_stat_statements:--------------------- PostgreSQL下安装pg_stat_statements返回顶级页:PostgreSQL索引页磨砺技术珠矶,践行数据之道,追求卓越价值
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL统计信息索引页 回到顶级页面:PostgreSQL索引页对于pg_stas,说明文档在这里:http://www.postgresql.org/docs/9.1/static/view-pg-stats.html下面做一个实验:先建立一个表postgres=# create table test(id integer);CREATE TABLEpostgres=# \xExpanded display is on.postgres=# 此后,观察 pg_stats 中与test表相关的数据,结果是还没有数据。post.
阅读全文
摘要:本页目的,是起到索引其他所有本人所写文档的作用
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL杂记页 回到顶级页面:PostgreSQL索引页发表此文不是为了吐槽,而是为了防止更多的受害者出现啊,拿到书后,我就知道,上当了。让我们对比一下googble book上的原书和此中文版:http://books.google.com/books?id=OWOAu0GcsqoC&pg=PT310&lpg=PT310&dq=index+bloat+Postgresql&source=bl&ots=Ury_jKQGBo&sig=9hGwS4OmXWxjuynlagw6OoRy
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL集群方案相关索引页 回到顶级页面:PostgreSQL索引页现象描述:客户来邮件,问:为何Pgpool-II在master-slave模式的时候,发生:pgpool-II的某子进程与slave db节点间的连接因为长时间无联系被L4SW切断,却不发生failover,而此时向master db节点的commit已经生效,但是马上返回出错信息?简单言之,那是因为,Pgpool-II开发的时候,没有考虑到这种进程的单独的连接被刻意切断的情形。此时,如果fail_over_on_backend_error为ture,那么也.
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL内部结构与源代码研究索引页 回到顶级页面:PostgreSQL索引页pg_stat_statement的源代码,非常地有示范意义。其中使用了各种hook,同时又定义为extension。先看初始化是如何发生的:在postgresql.conf里,如果有 preload_shared_libraries='pg_stat_statements',那么成功启动的时候,会提示:[root@server ~]# su - postgres[postgres@server ~]$ cd /usr/local/pg
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值返回上级页:PostgreSQL统计信息索引页 返回顶级页:PostgreSQL索引页 安装过程如下:进入安装包的contrib/pg_stat_statements目录,执行编译和安装动作:[root@server pg_stat_statements]# pwd/soft/postgresql-9.1.2/contrib/pg_stat_statements[root@server pg_stat_statements]# make && make installmake: `all' に対して行うべき事はありません./bin
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL内部结构与源代码研究索引页 回到顶级页面:PostgreSQL索引页本文的目的一是为了备忘,二是为了抛砖引玉,希望有更多的人来研究如何使用好PostgreSQL的hook机制。在研究pg_stat_statments的源代码的时候,发现其中使用了hook机制:例如其中提到了如下几种hook:void _PG_fini(void) { /* Unins...
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL统计信息索引页 回到顶级页面:PostgreSQL索引页PostgreSQL中,如何安装pg_stat_statements,网上有很多这方面的论述。这里说说如何在PPAS下安装它:实验一:首先,看是否可以不安装,直接拿来用:[root@rhjp001 ~]# su - enterprisedb-bash-3.2$ pwd/opt/PostgresPlus/9.2AS-bash-3.2$ ./bin/psql -d edbpsql (9.2.1.3)"help" でヘルプを表示します.edb=# s
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页关于timeline,有如下的说法http://www.postgresql.org/docs/current/static/continuous-archiving.html24.3.5. TimelinesThe ability to restore the database to a previous point in time creates some complexities that are akin to science-fiction .
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL内部结构与源代码研究索引页 回到顶级页面:PostgreSQL索引页[作者 高健@博客园 luckyjackgao@gmail.com]我的PPAS下,edb数据库的Encoding是 UTF8:edb=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -...
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页[作者 高健@博客园 luckyjackgao@gmail.com]无论原来位于哪个路径,当启动EDB*Plus后,如果运行 ho pwd;就会出现:/opt/PostgresPlus/9.2AS/edbplus究其原因,启动EDB*Plus的脚本是:/opt/PostgresPlus/9.2AS/edbplus/scripts/launchedbplus.sh[root@test scripts]# cat launchedbplus.sh#!/bi.
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页由于EnterpriseDB公司的网站上讲的不是太清楚,经过一番调查,知道如何作了:它就是一个图形化的程序,所以,在Linux上,可以如下方式运行:另外,也可以直接执行:/opt/PostgresPlus/9.2AS/edbplus/scripts/launchedbplus.sh回到上一级页面:PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页磨砺技术珠矶,践行数据之道,追求卓越价值
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL杂记页 回到顶级页面:PostgreSQL索引页如题,前领导谈起此话题。我觉得这是很有意思的。如果我是设计师,该如何来设计?我所能想到的是:一:应用层面, 根据应用的状况,进行数据库水平分割(个人理解,就是把不同应用的表,分发到不同数据库节点)。二:每一个逻辑数据库的层面: 采用集群,进行负载分割。 但是集群方案需要慎重选择,不是所有的集群方案都有负载分发的能力的。所以要采用multi-master方式来分布负载。 就是说,逻辑上是一个数据库,但物理实现上是多个存储节点同时参与运算如查询等来提高响应速...
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页看了很多的例子,没有发现具体讲 recovery_target_time的例子,于是自己作一个吧在开始之前,先把postgresql.conf的配置设置好: wal_level = archive # minimal, archive, or hot_standby # (cha...
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页通过实验,可以发现,PostgreSQL中使用WAL log来存储到其他地方,来辅助完成PITR。但是,WAL是16MB一个,缺省情况下,如果一个WAL文件没有写满,它就不会被archive_command 调用来拷贝走。如果长时间没有太多作业,可能有点WAL log会一直位于pg_xlog目录下作为online redo log存在。那么从崩溃中或者出错中恢复时,也需要提供这些pg_xlog目录下的文件。有的人建议每间隔几分钟就拷贝pg_xlog目录.
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页看PostgreSQL中与PITR相关的设定: wal_level=archive … # - Archiving - archive_mode = on ...
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页一,从initdb开始,initdb执行结束后,看xlog:[pgsql@localhost pg_xlog]$ ls -lrttotal 16408drwx------ 2 pgsql pgsql 4096 Aug 6 10:41 archive_status-rw------- 1 pgsql pgsql 16777216 Aug 6 10:41 000000010000000000000001[pgsql@localhost pg_x...
阅读全文
摘要:磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL内部结构与源代码研究索引页 回到顶级页面:PostgreSQL索引页看代码:/* File path names (all relative to $PGDATA) */ #define BACKUP_LABEL_FILE backup_label #define BACKUP_LABEL_OLD backup_label.old 在特定条件下,会有一个文件,名为 backup_label在StartupXL...
阅读全文
摘要:例子如下[pgsql@localhost soft]$ cat test1.c#include #include int main(){ int a,b,c; a = 10; b =20; c = 30; a = b =c; fprintf(stderr,"a :%d\n",a); fprintf(stderr,"b :%d\n",b); fprintf(stderr,"c :%d\n",c); return 0;}[pgsql@localhost soft]$ 运行:[pgsql@localhost soft]$ ./test1a
阅读全文
摘要:查询SourceCode有的时候感觉比较费劲。我想了一个方法,给所有同名或者名字类似的变量、函数全都单独改名,使得我在搜索的时候可以只搜索到我想要的。运行时也可以通过特定的LOG来定位。特此备忘!
阅读全文
摘要:接前文 初步学习pg_control文件之十四再看如下这个:int MaxConnections;应该说,它是一个参考值,在global.c中有如下定义 /* * Primary determinants of sizes of shared-memory structures. MaxBackends is * MaxConnections + autovacuum_max_workers + 1 (it is computed by the GUC * assign hoo...
阅读全文
摘要:接前文初步学习pg_control文件之十三看如下几个:/* * Parameter settings that determine if the WAL can be used for archival * or hot standby. */ int wal_level; int MaxConnections; int max_prepared_xacts; int max_locks_per_xact;PostgreSQL中多次用到了函数数组:/* ...
阅读全文
摘要:接前文,初步学习pg_control文件之十二看这个: * backupStartPoint is the redo pointer of the backup start checkpoint, if * we are recovering from an online backup and haven't reached the end of * backup yet. It is reset to zero when the end of backup is reached, and * we mustn't start up before that. A ...
阅读全文
摘要:看这个链接:http://www.postgresql.org/docs/9.1/static/runtime-config-wal.html是这样说的:fsync (boolean)If this parameter is on, the PostgreSQL server will try to make sure that updates are physically written to disk, by issuing fsync() system calls or various equivalent methods (see wal_sync_method). This ensu
阅读全文
摘要:接前问,初步学习pg_control文件之十一,再来看下面这个XLogRecPtr minRecoveryPoint;看其注释: * minRecoveryPoint is updated to the latest replayed LSN whenever we * flush a data change during archive recovery. That guards against * starting archive recovery, aborting it, and restarting with an earlier * stop ...
阅读全文
摘要:接前文 初步学习pg_control文件之十,再看这个XLogRecPtr prevCheckPoint; /* previous check point record ptr */发生了checkpoint的时候,肯定要处理的:/* * Perform a checkpoint --- either during shutdown, or on-the-fly * * flags is a bitwise OR of t...
阅读全文
摘要:接前文初步学习pg_control文件之九看下面这个XLogRecPtr checkPoint; /* last check point record ptr */看看这个pointer究竟保留了什么初始化的时候:/* * This func must be called ONCE on system install. It creates pg_control * and the initial XLOG segment. ...
阅读全文
摘要:接前文,初步学习pg_control文件之八来看这个:pg_time_t time; /* time stamp of last pg_control update */当初初始化的时候,是这样的:/* * This func must be called ONCE on system install. It creates pg_control * and the initial XLOG segment. */voidBootStrapXLOG(void){ ... CheckPoint checkPoint; ... check...
阅读全文
摘要:接前文 初步学习pg_control文件之七继续 看:catalog_version_no代码如下:static voidWriteControlFile(void){ ... /* * Initialize version and compatibility-check fields */ ControlFile->pg_control_version = PG_CONTROL_VERSION; ControlFile->catalog_version_no = CATALOG_VERSION_NO; ...}在catversio...
阅读全文
摘要:接前文初步学习pg_control文件之六看 pg_control_version以PostgreSQL9.1.1为了,其HISTORY文件中有如下的内容:Release 9.1.2Release Date: 2011-12-05This release contains a variety of fixes from 9.1.1. For informationabout new features in the 9.1 major release, see the Section calledRelease 9.1.早就写死了:static voidWriteControlFile(void
阅读全文