-
Pgbouncer快速上手
2018年02月07日 in PG 管理
Pgbouncer是一个轻量级的数据库连接池。 概要 pgbouncer [-d][-R][-v][-u user] <pgbouncer.ini> pgbouncer -V|-h 描述 pgbouncer 是一个PostgreSQL连接池。 任何目标应用程序都可以连接到 pgbouncer, 就像它是PostgreSQL服务器一样,pgbouncer 将创建到实际服务器的连接, 或者它将重用其中一个现有的连接。 pgbouncer 的目的是为了降低打开PostgreSQL新连接时的 …
-
PgBackRest2中文文档
2018年02月07日 in PG 管理
pgBackRest主页:http://pgbackrest.org pgBackRest Github主页:https://github.com/pgbackrest/pgbackrest 前言 pgBackRest旨在提供一个简单可靠,容易纵向扩展的PostgreSQL备份恢复系统。 pgBackRest并不依赖像tar和rsync这样的传统备份工具,而在内部实现所有备份功能,并使用自定义协议来与远程系统进行通信。 消除对tar和rsync的依赖可以更好地解决特定于数据库的备份问题。 自定义 …
-
使用sysbench测试PostgreSQL性能
2018年02月06日 in PG 管理
sysbench首页:https://github.com/akopytov/sysbench 安装 二进制安装,在Mac上,使用brew安装sysbench。 brew install sysbench --with-postgresql 源代码编译(CentOS): yum -y install make automake libtool pkgconfig libaio-devel # For MySQL support, replace with mysql-devel on …
-
使用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) 是所有数据库集簇管理进程的父进程。 每个后 …