Rocky_Ansi Blog

修己以清心为要,涉世以慎言为先!


  • 首页

  • 资源导航

  • 归档

  • 标签

  • 转载

  • 搜索

Postgresql Vacuum进程

发表于 2020-01-15 | 分类于 Database

Postgresql数据库为了定时清理因为MVCC引入的垃圾数据,实现了自动清理的机制。[基于pg12]

  • autovacuum launcher
  • autovacuum worker

其中autovaucuum launcher主要负责调度worker,
​ autovacuum worker进程进行具体的自动清理工作。

其中 visibility map[vm:PG8.4版本后增加]起到重要作用,通过为每个数据块设置标志位来标记哪些page是没有dead tuple.
好处:

  • vacuum 进行扫描时,可以跳过page。
  • index-only sacn,可以减少tuple的可见性判断, 减少IO操作. 提高性能。
阅读全文 »

Postgresql Mvcc

发表于 2020-01-09 | 分类于 Database

Pg 锁 与 Mvcc

Mvcc- 事务 多版本并发控制

Postgresql也有表和行级别的锁功能,通常用于不需要完整事务隔离 并且想要显示管理特定冲突点的应用。

MVCC并发控制模型主要优点在MVCC中,对查询(读)数据的锁请求与写数据的锁请求不冲突,所以读不会堵塞写,而写也不堵塞读。

阅读全文 »

uos 安装系统源

发表于 2020-01-02 | 分类于 工具篇

今天在适配所谓UOS系统[deepin v20], 发现并没有默认安装sshd.. 然后无奈之下只能安装uos版本镜像源

发现官网网站提供的信息并不准确.

阅读全文 »

Postgresql with-openssl 异常

发表于 2019-12-28 | 分类于 Database

关于Postgresql 添加编译选项–with-openssl 编译报错. 等一些列问题.
是因为openssl 版本不正常。 其中增删了某些接口函数.
本身使用OpenSSL 1.0.1e 11 Feb 2013 编译报错.

关于postgresql针对openssl的需求. 可在Postgresql源码中找到部分描述configure

阅读全文 »

Postgresql-11 存储过程

发表于 2019-09-27 | 分类于 Database

PG11之前采用Function. 并没有存储过程模式. PG10-存储过程)

PG11新增PROCEDURE[存储过程]模式对象

​ 存储过程与函数类似, 但存储过程并没有返回值.

阅读全文 »

Postgresql max_wal_size与Xlog file

发表于 2019-09-18 | 分类于 Database

​ Pg后台进程在执行用户事务时, 发生的数据更改是先写入缓冲池中, 对应PG就是shared buffers, PG缓冲池一般设置为内存的1/4左右, 缓冲池里边的这些数据修改,在事务提交时,无需同步到磁盘。 因为在事务提交时,会先写入WAL日志, 有wal日志存在,就可以在异常情况下将数据恢复, 保障数据库安全。因此数据本身是否在提交时写入磁盘将没有那么重要。Pg只是在需要时候, 例如脏页较多或者一定时间间隔后, 才将数据写回磁盘。

​ checkPoint会触发刷新xlog日志页到磁盘.

​ checkPoint称之为检查点, 一般checkpoint会将某个时间之前的脏数据全部刷新到磁盘, 以实现数据的一致性与完整性。

CheckPointer进程解析

CheckPoint触发条件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/*
* OR-able request flag bits for checkpoints. The "cause" bits are used only
* for logging purposes. Note: the flags must be defined so that it's
* sensible to OR together request flags arising from different requestors.
* OR-able 请求检查点的标志位
*/

/* These directly affect the behavior of CreateCheckPoint and subsidiaries */
#define CHECKPOINT_IS_SHUTDOWN 0x0001 /* Checkpoint is for shutdown */
#define CHECKPOINT_END_OF_RECOVERY 0x0002 /* Like shutdown checkpoint, but
* issued at end of WAL recovery */
#define CHECKPOINT_IMMEDIATE 0x0004 /* Do it without delays */ //finish the checkpoint ASAP, ignoring checkpoint_completion_target_parameter
#define CHECKPOINT_FORCE 0x0008 /* Force even if no activity */ //force a checkpoint even if no XLOG activity has occurred since the last one (implied by CHECKPOINT_IS_SHUTDOWN or CHECKPOINT_END_OF_RECOVERY)
#define CHECKPOINT_FLUSH_ALL 0x0010 /* Flush all pages, including those
* belonging to unlogged tables */
/* These are important to RequestCheckpoint */
#define CHECKPOINT_WAIT 0x0020 /* Wait for completion */
/* These indicate the cause of a checkpoint request */
#define CHECKPOINT_CAUSE_XLOG 0x0040 /* XLOG consumption */ // checkpoint is requested due to xlog filling. (This affects logging, and in particular enables CheckPointWarning.)
#define CHECKPOINT_CAUSE_TIME 0x0080 /* Elapsed time */

以上几种情况分别对应:

  1. 数据库shutdown操作
  2. 数据库recovery完成
  3. 管理员强制执行 checkpoint [CHECKPINT_FORCE]
  4. xlog日志量触发checkpoint阈值
  5. 周期进行checkpoint [ Elapsed time >= CHeckPointTimeOut ]
  6. 需要刷新所有脏页

辅助性子进程checkpoint,会不断周期性检查以及xlog阈值是否达到. 而周期时间 与xlog日志量的阈值通过参数 max_wal_size 与 checkpoint_completion_target设置.

阅读全文 »

Debug size_t

发表于 2019-09-16 | 分类于 Debug

调试BUG时发现,以下问题:

1568712490080

由代码中发现

BYTES_INVALID 定义如下:

1568712510794

奇怪问题:在于file->write_size == -1; 但是if判断中却没有走到contine代码分支, 而是继续走到 validate.c 351行输出;

阅读全文 »

safe-rm

发表于 2019-09-11 | 分类于 命令

声明alias rm='safe-rm.sh'

主要用于放置rm误删除操作. 建立隐藏文件夹[按日期建立]用于保存删除文件

阅读全文 »

飞腾 aarch64安装Docker

发表于 2019-09-06 | 分类于 工具篇

设置中科大源:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
### 默认注释了源码仓库,如有需要可自行取消注释
#deb https://mirrors.ustc.edu.cn/ubuntu-ports/ trusty main restricted universe multiverse
## deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ trusty main main restricted universe multiverse
#deb https://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-updates main restricted universe multiverse
## deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-updates main restricted universe multiverse
#deb https://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-backports main restricted universe multiverse
## deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-backports main restricted universe multiverse
#deb https://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-security main restricted universe multiverse


###备用;
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-backports main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-proposed main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-security main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-updates main multiverse restricted universe
#deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty main multiverse restricted universe
#deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-backports main multiverse restricted universe
#deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-proposed main multiverse restricted universe
#deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-security main multiverse restricted universe
#deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty-updates main multiverse restricted universe
阅读全文 »

Linux tar 协议格式解析

发表于 2019-08-28 | 分类于 工具

Tar仅仅是归档文件, 用于多个文件合并. 并不进行压缩;

  • 介绍Tar结构体
  • 以及如何归档
阅读全文 »

Postgresql Arch process

发表于 2019-08-26 | 分类于 Database
  1. 归档信息文件 .backup
  2. archive_status文件夹
  3. Postgresql arch process 进程解析
阅读全文 »

git command

发表于 2019-08-25 | 分类于 工具

git 常用命令:

  • git stat
  • git command
  • git whatchanged
  • git show
  • git checkout
  • git reset
  • git commit
  • git diff/apply
  • git clean
  • git branch
  • git log
  • git cherry-pick
  • git rebase
  • git merge
阅读全文 »
12…10
Rocky_Ansi

Rocky_Ansi

vagabond1132@gmail.com

118 日志
20 分类
25 标签
GitHub 博客园
Links
  • 新博客地址
  • 狗哥
  • Python 在线手册
  • 安全类书籍
© 2020 Rocky_Ansi
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4