-
pg_basebackup工具备份的时候,会不会把 服务端 表空间里面的数据备份?
绝对会!百分之百会!它不仅会备份,而且会把表空间里最底层的真实物理数据块,一字节不差地全部抽空带走! 🧲 物理抓取全过程(拒绝空壳) 当 pg_basebackup 在主库上开始收容数据时: 扫描与发现:它扫描主数据目录($PGDATA),来到了 $PGDATA/pg_tblspc/ 目录。 识破软链接:它看到了里面名叫 16384 ...
-
pg_basebackup备份的文件有哪些??
📦 阵营一:被完整打包的核心数据(在 $PGDATA 内部) 这是数据库的“肉身”,pg_basebackup 会毫不犹豫地将它们按原样复制(或打包成 base.tar): base/:默认表空间。里面按 OID 存放了你创建的各个数据库的真实表数据和索引数据(也就是那些 8KB 的数据块)。 global/:全局字典。包含整个集群的共享系统 ...
-
🟢 第一阶段:握手与特权建立 (进度:0%)
📡 微操一:Startup Packet 中的“特洛伊木马”(客户端突入) 常规的认知:普通业务(比如 Java/Python 程序)连数据库,发的是账号、密码和要连接的数据库名。 底层的异变:当你在终端敲下 pg_basebackup 时,它底层的 libpq 驱动在发起 TCP 三次握手后,向主库发送的第一个数据包叫 StartupPacket(启动报文) ...
-
🔴 第五阶段:防篡改与绝对落地 (备份结束)
🔐 动作一:签发终极密码本(backup_manifest 的诞生) 物理背景:主库的 walsender 进程已经把所有数据块和 backup_label 发完了,并且等到了归档成功的信号。它准备断开网络了。 合规与防篡改逻辑:但在断开前的最后一秒,PG 13+ 的内核会执行一个神圣的动作——它会把这 3 个小时内发送给你的成千上万个文件, ...
-
pg_basebackup()原理, 这个工具的运行机制逻辑推演
🟢 第一阶段:握手与特权建立 (进度:0%) 目标:让主库知道“我不是来查数据的,我是来拷全库的”。 💻 客户端 (pg_basebackup): 发起数据库连接。但在底层连接报文里,悄悄塞入一个特权参数:replication=true。 🖥️ 服务端 (PostgreSQL 主库): 主进程 (Postmaster) 收到连接,看到 replication=tru ...