> 文章列表 / Page 10

2018-11-19

PostgreSQL控制文件讲解

文章来源: http://blog.sina.com.cn/s/blog_74a7d3390102yksv.html PostgreSQL控制文件内容: 主要分为是三部分,初始化静态信息、WAL及检查点的动态信息、一些配置信息。 我们可以用过pg_controldata命令直接读取PostgreSQL控制文件内容:   [postgres@postgresdb ~]$ /u01/postgres/pgsql/bin/pg_controldata -D /data/postgres/data pg_control version number: 1100 Catalog version number: 201809051 Database…
#POST 10 MIN READ
2018-11-19

PostgreSQL pg_resetwal命令介绍

pg_resetwal就是之前的pg_resetxlog pg_resetwal — 重置一个PostgreSQL数据库集簇的预写式日志以及其他控制信息   大纲 pg_resetwal [-f] [-n] [option…] {[-D] datadir}   描述   pg_resetwal会清除预写式日志(WAL)并且有选择地重置存储在 pg_control文件中的一些其他控制信息。如果这些文件已经被损坏, 某些时候就需要这个功能。当服务器由于这样的损坏而无法启动时, 这只应该被用作最后的手段。 在运行这个命令之后,就应该可以启动服务器, 但是记住数据库可能包含由于部分提交事务产生的不一致数据。 你应当立刻转储你的数据、运行initdb并且重新载入。重新载入后, 检查不一致并且根据需要修复之。…
#POST 6 MIN READ
2018-11-19

PostgreSQL pg_resetxlog整理及测试

文章来源:https://yq.aliyun.com/articles/55691 pg_resetxlog说明 pg_resetxlog,用来重置/清空一个数据库集群的预写日志以及其它控制内容,其中控制内容由命令pg_controldata可以查看,而内容的来源则是位于$PGDATA/global目录下名为pg_control的控制文件 可选参数有:   yunbodeMacBook-Pro:~ postgres$ pg_resetxlog –help pg_resetxlog resets the PostgreSQL transaction log. Usage: pg_resetxlog [OPTION]… DATADIR Options:…
#POST 10 MIN READ
2018-11-19

Postgresql 特性分析 checkpoint机制浅析

文章来源:http://mysql.taobao.org/monthly/2017/04/04/   上期月报PgSQL · 特性分析 · Write-Ahead Logging机制浅析中简单介绍了PostgreSQL中WAL机制,其中讲到如果是创建checkpoint会触发刷新xlog日志页到磁盘,本文主要分析下PostgreSQL中checkpoint机制。   checkpoint又名检查点,一般checkpoint会将某个时间点之前的脏数据全部刷新到磁盘,以实现数据的一致性与完整性。目前各个流行的关系型数据库都具备checkpoint功能,其主要目的是为了缩短崩溃恢复时间,以Oracle为例,在进行数据恢复时,会以最近的checkpoint为参考点执行事务前滚。而在WAL机制的浅析中,也提过PostgreSQL在崩溃恢复时会以最近的checkpoint为基础,不断应用这之后的WAL日志。     检查点发生时机   在xlog.h文件中,有如下代码对checkpoint进行了相应的分类:     /* * OR-able…
#POST 6 MIN READ
2018-11-19

postgreSQL pg_resetxlog pg_resetwal 工具介绍

pg_resetxlog – 重置一个 PostgreSQL 数据库集羣的预写日志以及其它控制内容 注意从pg 10开始 pg_resetxlog 被 pg_resetwal  替代    root@vultr:/usr/lib/postgresql/10/bin# ./pg_resetwal --help pg_resetwal resets the PostgreSQL write-ahead…
#POST 4 MIN READ
2018-11-19

postgreSQL使用pg_resetxlog恢复pg_control

文章来源: http://blog.sina.com.cn/s/blog_544a710b0101a6xv.html 上一篇测试了通过pg_resetxlog来清理WAL,我们还可以通过它来恢复pg_control。   pg_control在$PGDATA/global下,很小,很不起眼。但一旦这个文件被损坏,PG就启不来。 cd $PGDATA/global mv pg_control ./.. 看日志,可以看到以下信息:   PANIC: could not open control file "global/pg_control": No…
#POST 4 MIN READ
2018-11-18

MySQL FLUSH TABLE WITH READ LOCK详解

内容来源:https://www.cnblogs.com/cchust/p/4603599.html   FLUSH TABLES WITH READ LOCK简称(FTWRL),该命令主要用于备份工具获取一致性备份(数据与binlog位点匹配)。由于FTWRL总共需要持有两把全局的MDL锁,并且还需要关闭所有表对象,因此这个命令的杀伤性很大,执行命令时容易导致库hang住。如果是主库,则业务无法正常访问;如果是备库,则会导致SQL线程卡住,主备延迟。本文将详细介绍FTWRL到底做了什么操作,每个操作的对库的影响,以及操作背后的原因。   FTWRL做了什么操作?   FTWRL主要包括3个步骤:   1.上全局读锁(lock_global_read_lock) 2.清理表缓存(close_cached_tables) 3.上全局COMMIT锁(make_global_read_lock_block_commit)   FTWRL每个操作的影响   上全局读锁会导致所有更新操作都会被堵塞;关闭表过程中,如果有大查询导致关闭表等待,那么所有访问这个表的查询和更新都需要等待;上全局COMMIT锁时,会堵塞活跃事务提交。由于FTWRL主要被备份工具使用,后面会详细解释每个步骤的作用,以及存在的必要性。FTWRL中的第1和第3步都是通过MDL锁实现,关于MDL的实现,我之前总结了MDL锁的文章,这里主要介绍清理表缓存的流程。  …
#POST 7 MIN READ
2018-11-18

postgreSQL zero_damaged_pages 参数

There is a special option: zero_damaged_pages=on that you can use on postgresql.conf, it is documented here. This option will allow…
#POST 3 MIN READ