yanzongshuai的专栏

专注于MySQL、MariaDB、Percona、PostgreSQL数据库及Aerospike等nosql数据库

我的微信二维码

2019-05-18 20:25:00

阅读数 7

评论数 0

PostgreSQL pg_rewind实例--could not find previous WAL record at

一、介绍 作为pg_rewind报错章节补充一个用例,说明其用法。 二、实例 1、history文件 --新主 $ cat 00000004.history 1 0/140000C8 no recovery target specified 2 0/19000060 ...

2019-05-17 23:10:39

阅读数 10

评论数 0

PostgreSQL如何删除XLOG文件【补充】

StartupXLOG: do{ bool switchedTLI = false; ... /* 在回放记录前,检查该wal记录是否会引起时间线的改变。 该记录被视为新时间线的一部分,因此需要在回放前更新时间线。 */ if (record->x...

2019-05-04 15:13:33

阅读数 24

评论数 0

PostgreSQL统计信息的几个重要视图

1、pg_stat_database yzs=# select *from pg_stat_database; -[ RECORD 1 ]--+------------------------------ datid | 13156 ...

2019-05-03 11:56:29

阅读数 11

评论数 0

PostgreSQL备机checkpoint

数据库异常关闭时,数据库关闭时来不及或者没机会做checkpoint,则需要从上一个一致性检查的开始恢复。 PostgreSQL备机checkpoint是不能产生checkpoint WAL的,因为如果写这样类型的checkpoint的话,就会将接收的WAL打乱,那么日志将混乱,回放会出问题...

2019-04-19 21:43:35

阅读数 33

评论数 0

PostgreSQL pg_rewind流程报错退出分析

2019-03-24 20:49:29

阅读数 39

评论数 0

PostgreSQL逻辑备份pg_dump使用及其原理解析

一、原理分析 1、循环调用getopt_long解析命令行参数,将参数保存到static DumpOptions dopt;中 2、判断参数是否相容,不相容则退出: options -s/--schema-only and -a/--data-only cannot be used tog...

2019-03-23 21:33:19

阅读数 147

评论数 0

PostgreSQL逻辑备份恢复--pg_dump导出及psql导入案例

数据库导入导出是最常用的功能之一。PostgreSQL的备份工具可以使用pg_dump及pg_dumpall。可以通过pg_dump --help获取其使用方法。这里不对其做过多介绍。主要介绍在使用pg_dump及恢复过程中遇到的一个问题。 1、问题 使用pg_dump -c导出后,通过psql...

2019-03-17 19:59:45

阅读数 95

评论数 0

PostgreSQL用户密码如何通过md5加密存储,是否加了salt

一、PG用户的密码如何通过md5加密,并且是否加了salt?本文将从源码角度跟踪分析。 PG用户通过md5加密时,加了salt,而这个salt是用户名字符串。 二、源码分析 CreateRole: shadow_pass = encrypt_password(Password_encry...

2019-03-08 20:29:29

阅读数 79

评论数 0

PostgreSQL如何删除不使用的xlog文件

一、问题 经常会在复制的时候遇到这样的问题,需要复制的xlog文件找不到了。那么xlog文件什么时候删除?又会删除多少保留多少个xlog文件?都有哪些xlog文件需要保留?本文将从原理上对这些问题进行解读。 二、原理 每次checkpoint后都会根据需要删除或者回收不再需要的xlog文件。...

2019-02-24 11:08:10

阅读数 161

评论数 0

PostgreSQL checkpoint--shutdown

PostgreSQL在shutdown时会进行checkpoint。其流程如下。 1、在主进程中,会首先注册一个信号处理函数reaper,用于向checkpoint等子进程发送信号。向checkpoint进程发送SIGUSR2信号 PostmasterMain(int argc, char ...

2019-02-09 22:12:18

阅读数 586

评论数 1

PostgreSQL pg_ctl start超时分析

一、问题 pg_ctl start启动时报错退出:pg_ctl:server did not start in time。超时时间是多少?从什么时候到哪个阶段算超时? 二、分析:该信息打印位置,从后面代码段do_start函数中可以看出 1、pg_ctl start调用start_postm...

2019-01-25 20:59:02

阅读数 182

评论数 1

PostgreSQL何时执行checkpoint--发送checkpoint信号的函数

RequestCheckpoint(int flags): /* 1、如果checkpoint进程没有起来,则尝试20次大概2s 2、通过kill命令向checkpoint进程发送信号,通知做checkpoint,发送成功则退出循环,否则也尝试20次 */ for (ntries = ...

2019-01-01 19:39:43

阅读数 76

评论数 0

PostgreSQL pg_rewind原理

一、背景 常见的高可用架构中,如果master挂了且有数据没有同步到备,高可用系统会提升备为主对外服务。对于老主有可能再以备的身份加入集群时,可能搭建流复制关系失败。可以用pg_rewind工具使主备的数据一致。 二、pg_rewind原理 三、相关代码 1、每个文件(目录)的差异被...

2018-12-23 19:54:03

阅读数 211

评论数 0

PostgreSQL问题分析1:requested timeline %u does not contain minimum recovery point %X/%X on timeline %u

一、问题:requested timeline %u does not contain minimum recovery point %X/%X on timeline %u 该日志在代码中的位置如下: StartupXLOG: if (!XLogRecPtrIsInvalid(Co...

2018-12-12 21:01:35

阅读数 80

评论数 0

PostgreSQL存储引擎之heap tuple结构

struct HeapTupleHeaderData { union { HeapTupleFields t_heap; DatumTupleFields t_datum; }t_choice; ItemPointerData t_ctid;//block号及item 号 ...

2018-11-18 09:14:20

阅读数 287

评论数 0

PostgreSQL存储引擎之page结构

2018-11-11 15:26:20

阅读数 194

评论数 0

PostgreSQL构建流复制拉取日志的起始位置在哪里

WaitForWALToBecomeAvailable: if (!InArchiveRecovery) currentSource = XLOG_FROM_PG_WAL; else if (currentSource == 0) currentSource = XLOG_FROM_...

2018-11-04 17:52:29

阅读数 152

评论数 0

PostgreSQL插件hook机制

internal_load_library postgresql-> PG_init = (PG_init_t) pg_dlsym(file_scanner->handle, "_PG_init"); if (P...

2018-10-31 19:37:21

阅读数 158

评论数 0

PostgreSQL启动恢复过程中日志源的切换

日志源会在XLOG_FROM_ARCHIVE->XLOG_FROM_STREAM->XLOG_FROM_ARCHIVE直接切换,只有读取过程中出错,就会切换到另外一个日志源。但实际执行过程中,XLOG_FROM_ARCHIVE出错后会到XLOG_FROM...

2018-10-21 11:02:35

阅读数 103

评论数 0

提示
确定要删除当前文章?
取消 删除