概述 GCC 编译 C/C++ 代码的过程主要分为如下图的 4 个步骤(.i 和 .ii 分别是 .c 和 .cpp 源文件预处理后的中间文件后缀名;.o 和 .obj 分别是 Linux 和 Windows 系统上汇编后的目标文件后缀名;.a 和 .lib 分别是 Linux 和 Windows 系统上静态库文件后缀名;.exe 是 Windows 上可执行文件后缀名,Linux 上可执...
GLIBC 与 Linux 内核的兼容性
根据 glibc 的 release history 整理出自 2.17 以来的版本与 linux 内核版本的兼容性: glibc 版本 兼容的 linux 内核版本 2.17 ~ 2.19 >= 2.6.16 2.20 ~ 2.23 >...
PostgreSQL 配置说明
Preface Write Ahead Log synchronous_commit (enum) 设置事务提交时需要等到 WAL 被保存到何种程度才返回,下表描述了可设置的值及其说明(数据安全程度依次递减): 值 说明 remote_apply 等到同步备节点回放了 WAL ...
Patroni 配置说明
1 配置类型 全局配置(Global Configuration) 作用范围:所有节点。 修改方式:初始化(bootstrap)前,修改配置文件中的 bootstrap.dcs 部分;初始化后,通过 patronictl edit-config 命令或 REST 接口 /config 修改...
PostgreSQL 高可用(high availability)
1 简介 主节点持续归档/传送 WAL,备节点持续恢复/接收 WAL 并回放(replay),以此实现一个高可用集群,这种方式叫做 log shipping,这样的备节点也叫做 warm standby,如果备节点还可以接受 只读查询,则叫做 hot standby。 PostgreSQL 支持 2 种级别的 log shipping: 文件级(file-based):...
PostgreSQL 版本策略(versioning policy)
版本号 时期 格式 major minor V10 以前 X.Y.Z X.Y Z V10 及以后 X.Y X Y 周期 版本类...
使用 iptables 为 KVM 虚拟机实现桥接网络
适用场景 我把一台笔记本电脑安装了 Linux,准备用来作为 KVM 虚拟机服务器,这台笔记本只有无线网卡,当我想把这个无线网卡桥接到虚拟机时,始终无法成功,网上也查了很多资料,始终没有解决。 最终决定放弃桥接网络,改用 NAT 端口转发来实现外部访问虚拟机,然后参考了 Libvirt 文档 通过 iptables 配置了端口转发,用了一段时间后发现把这个配置稍加改造就可以达到和桥接网络...
ETCD 配置 TLS
前提知识: SSL/TLS 笔记 本文章演示如何在已有 ETCD 集群上同时配置开启 客户端与服务端之间(client-to-server) 和 服务端与服务端之间(server-to-server/peer) 的 TLS。 建议在操作前先备份 data 目录和配置文件! 已有集群信息如下: $ etcdctl member list -w table +---------------...
SSL/TLS 笔记
密码学基础 对称加密(又称单钥加密、私钥加密、共享密钥加密):加密和解密使用同一个密钥,常见算法有 AES 和 DES 等。 非对称加密(又称双钥加密、公钥加密):有一对密钥,私钥和公钥,公钥加密的数据,只能用对应的私钥来解密,反之亦然,常见算法有 RSA, DSA, DH, ECDSA 等。 数字签名(Digital Signatu...
PostgreSQL 编码支持(character set/encoding)
编码支持 PostgreSQL 支持的所有编码(包括服务端和客户端): PostgreSQL Character Sets 客户端支持表中所有编码; 服务端支持表中大部分编码; 在服务端,编码设置必须与 locale 设置 LC_CTYPE 和 LC_COLLATE 兼容: 当 locale 设置为 C 或 ...