-
使用FIO测试磁盘性能
2018年02月06日 in PG 管理
Fio是一个很好用的磁盘性能测试工具,可以通过以下命令测试磁盘的读写性能。 fio --filename=/tmp/fio.data \ -direct=1 \ -iodepth=32 \ -rw=randrw \ --rwmixread=80 \ -bs=4k \ -size=1G \ -numjobs=16 \ -runtime=60 \ -group_reporting \ -name=randrw \ --output=/tmp/fio_randomrw.txt \ && …
-
空中换引擎 —— PostgreSQL不停机迁移数据
2018年02月06日 in PG 管理
通常涉及到数据迁移,常规操作都是停服务更新。不停机迁移数据是相对比较高级的操作。 不停机数据迁移在本质上,可以视作由三个操作组成: 复制:将目标表从源库逻辑复制到宿库。 改读:将应用读取路径由源库迁移到宿库上。 改写:将应用写入路径由源库迁移到宿库上。 但在实际执行中,这三个步骤可能会有不一样的表现形式。 逻辑复制 使用逻辑复制是比较稳妥的做法,也有几种不同的做法:应用层逻辑复制,数据库自带的逻辑复制(PostgreSQL 10 之后的逻辑订阅),使用第三方逻辑复制插件(例 …
-
PG服务器日志常规配置
2018年02月06日 in PG 管理
建议配置PostgreSQL的日志格式为CSV,方便分析,而且可以直接导入PostgreSQL数据表中。 日志相关配置项 log_destination ='csvlog' logging_collector =on log_directory ='log' log_filename ='postgresql-%a.log' log_min_duration_statement =1000 log_checkpoints =on …
-
第一章 数据库的物理/逻辑结构
2018年01月11日 in PG 内核
第一章和第二章简单介绍了一些PostgreSQL的基础知识,有助于读者理解后续章节的内容。本章包括以下几个主题: 数据库集簇(database cluster) 的逻辑结构 数据库集簇的物理结构 堆表(heap table) 文件的内部布局 从表中读写数据的方式 如果你已经熟悉这些内容,可以跳过本章。 1.1 数据库集簇的逻辑结构 数据库集簇(database cluster) 是一组 数据库(database) 的集合,由一个PostgreSQL服务器管理。第一次听到这个定义也许会令人疑 …
-
第二章 进程和内存架构
2018年01月10日 in PG 内核
本章总结了PostgreSQL中进程与内存的架构,有助于读者理解后续章节。 如果读者已经熟悉这些内容,可以直接跳过本章。 2.1 进程架构 PostgreSQL是一个客户端/服务器风格的关系型数据库管理系统,采用多进程架构,运行在单台主机上。 我们通常所谓的“PostgreSQL服务器(PostgreSQL Server)” 实际上是一系列协同工作的进程集合,包含着下列进程: Postgres服务器进程(Postgres Server Process) 是所有数据库集簇管理进程的父进程。 每个后 …
-
第四章 外部数据包装器
2018年01月08日 in PG 内核
本章将介绍一种相当实用,而且很有趣的特性:外部数据包装器(Foreign Data Wrapper FDW)。 4.1 外部数据包装器(FDW) 2003年,SQL标准中添加了一个访问远程数据的规范,称为SQL外部数据管理(SQL/MED)。PostgreSQL在9.1版本开发出了FDW,实现了一部分SQL/MED中的特性。 在SQL/MED中,远程服务器上的表被称为外部表(Foreign Table)。 PostgreSQL的外部数据包装器(FDW) 使用与本地表类似的方式,通过SQL/MED …
-
批量配置SSH免密登录
2018年01月07日 in PG 管理
配置SSH是运维工作的基础,有时候还是要老生常谈一下。 生成公私钥对 理想的情况是全部通过公私钥认证,从本地免密码直接连接所有数据库机器。最好不要使用密码认证。 首先,使用ssh-keygen生成公私钥对 ssh-keygen -t rsa 注意权限问题,ssh内文件的权限应当设置为0600,.ssh目录的权限应当设置为0700,设置失当会导致免密登录无法使用。 配置ssh config穿透跳板机 把User换成自己的名字。放入.ssh/config,这里给出了有跳板机环境下配置生产网数据库免密 …