灾难恢复工具内核细节探究与分享

Linux服务器7大安全防线:从SSH加固到内核级防护 Linux服务器安全本质是构建纵深防御体系,而非单点加固。其核心原理在于通过权限隔离、认证强化、服务最小化、日志不可篡改、内核参数收紧、自动化漏洞修复及原子化备份验证,形成多层成本递增的攻击阻断链。技术价值体现在显著提升攻击者利用门槛与时间成本,支撑Web服务、云主机、容器节点等关键基础设施的稳定运行。本文聚焦真实生产环境(Ubuntu 22.04/CentOS Stream 9)下可落地的7项硬性安全措施,涵盖SSH密钥强制认证、root账户物理封禁、Fail2ban动态封禁、auditd内核审计等高频实 阅读详情

本文整理自 IvorySQL 2025 生态大会暨 PostgreSQL 高峰论坛的演讲分享,演讲嘉宾:张晨,公众号《ZhangChen-PDU》主理人。

前言

在数据库运维中,灾难恢复始终是保障业务连续性和系统可靠性的核心环节。随着数据库规模和复杂性的增加,传统工具在极端场景下的局限性愈发明显,因此需要更专业、高效的解决方案来应对数据损坏或不可启动的情况。

PDU 的快速介绍

在数据库运维场景中,灾难恢复一直是考验系统可靠性与底层机制理解的重要环节。对于 Oracle 等商业数据库来说,已有成熟的内部工具如 DUL 可用于在数据库无法启动时直接从数据文件中提取数据。而在 PostgreSQL 生态中,长期缺乏类似的工具,这也正是 PDU 诞生的初衷。

PDU 是什么

PDU(PostgreSQL Data Unloader)是专门用于 PostgreSQL 系数据库的灾难恢复工具,旨在解决数据库无法正常启动、单表文件损坏或归档丢失等极端情况下的数据恢复问题。其核心功能主要包括:

  • 从 wal 中恢复 delete/update 的原数据。

    图片1.jpg

  • 数据库无法启动时直接从数据文件中提取数据。

    图片2.png

  • 支持单表/整库/自定义数据文件级别的恢复。

    图片3.png

  • 提供事务级/时间区间级数据恢复。

    图片4.png

为什么需要 PDU

在灾难恢复场景下,主流数据库的能力存在明显差异。

  1. Oracle 拥有成熟工具体系,如官方 DUL 与国内 ODU,可在数据库无法启动时直接从数据文件中恢复数据并生成可导入的 dump 文件。
  2. PostgreSQL 的 pg_filedump 工具功能有限,仅能导出已知表结构的单个数据文件,缺乏定制化能力,遇到复杂问题难以应对,且对生产环境适配不足,例如仅通过 xmax != 0 判定元组状态,准确性有限。
  3. PG 系国产数据库 在灾备工具方面几乎空白,多数数据库修改了底层数据文件结构,pg_filedump 无法兼容,且缺乏专业恢复工具,在灾难场景下常束手无策。

基于这一现状,PDU 的开发旨在填补 PG 系数据库在灾难恢复中的空白。

关于 pg_filedump 更详细的技术解析可参考👉作者往期文章

PDU 如何使用

PDU 的使用非常简便,其软件组成仅包含两个部分:可执行文件与配置文件。使用步骤如下:

第一步:填入数据目录与归档目录

图片5.png

第二步:进入 pdu 可执行文件

图片6.png

第三步:通过简化命令 b 执行自动初始化

图片7.png

第四步:自由操作

图片8.png

以下为演示图片:

PDU 程序崩溃了如何反馈

PDU 采用 C 语言开发,能够直接复用 PostgreSQL 内核的数据结构与函数,从而提高数据解析的效率与兼容性。在程序运行过程中,如果出现核心转储或者崩溃(core dumped),用户可通过操作系统配置生成 core 文件 ulimit -c unlimited,将 core 文件提供给开发者以复现问题并进行排查。

数据字典的快速初始化

tuple 数据读取基本原理

在数据库无法启动的情况下,PDU 仍能完成数据字典的初始化,这一过程基于对 tuple 数据读取方式的分析与实现。

在 PostgreSQL 中,每个数据页(Page)开头的页头(Page Header)存储了页的基本信息。页头中各字段都有固定的字节长度与偏移量,例如 pd_lower 占 2 个字节,表示空闲空间的起始位置,即最后一个行指针(Line Pointer)的结束地址。在数据文件中,每行显示 8 个字节,通过偏移量即可确定各结构的具体位置。

图片10.png

数据页的核心构成

数据页主要由两部分组成:目录(Line Pointer 数组) 和 数据区域(Tuple Data)。目录用于记录每条元组在页内的偏移量、标志位及长度信息,每个行指针占 4 个字节,用于定位对应的数据记录。

图片11.png

获取到单条 ltemld 之后,在偏移量 lp_off 获取 tuple。

图片12.png

从 tuple 中定位数据区域

当定位到具体元组后,可通过行指针获取其头部信息(Tuple Header)。其中,t_hoff 表示元组头长度,用于计算实际数据的起始位置;lp_len 表示元组总长度。由于 PostgreSQL 的数据存储中列与列之间不存在分隔符,因此在解析时必须严格按照数据类型定义逐字节读取,确保解析出的长度与目录记录一致,才能确认数据读取正确。

图片13.png

5 张基表

聚焦于系统在解析存储文件中 5 张基表 时的处理机制。通过读取并解析这些基表中的 tuple,系统能够还原数据库对象的定义信息,包括表结构、字段属性以及对象间的依赖关系。该过程为数据字典的初始化提供了底层支撑,是数据库启动阶段恢复核心元数据的关键步骤。

图片14.png

  1. 从 global/1262 中获取数据库的 oid 得到对应目录。
  2. 从“数据库 oid/2615”“数据库 oid/1259”“数据库 oid/1249”“数据库 oid/1247”5 张基表中获取整库的所有记录。
  3. 按照上图的对应关系拼凑出每张表的所有信息。

PDU 数据字典最终形态

PDU 在获取数据字典后,会将解析结果存储在可执行目录下的 meta 原数据目录中。系统会为每个数据库生成对应的 _tables.txt 文件,例如检测到数据库 alldb,则会在 meta 下生成 clothes_space_tables.txt 文件。
文件中每一行代表一张表,包含表 ID、文件号(默认一致)、TOAST ID 及文件号、模式 ID、表名、列名、列类型名、列数量与类型长度等。最后两列为列长度和类型对齐方式,其中列长度为 -1 表示变长类型(如 varchar、numeric),定长类型(如 int、float)则对应具体字节长度。对齐方式用于控制字节排列,以保障解析与计算的准确性。

下图为数据字典最终形态:

图片15.png

踩坑指南

在 PostgreSQL 数据文件和 TOAST 文件的脱离数据库读取过程中,有几类情况需要格外注意,以避免解析错误或数据丢失。

  1. drop 列需在初始化与数据解析阶段进行特殊处理。

    图片16.png

  2. reltoastrelid 不是 filenode,只是 oid。

    图片17.png

  3. 在脱离数据库环境读取 TOAST 数据时,需要格外谨慎。

默认情况下,toast oid 与 toast filenode 一致, external 结构体中保存的是 toast oid 。

vacuum full/truncate 之后,两者不再一致,但是 external 结构体中存的依然是 toast oid。

图片18.png

国产 PG 系数据库适配

在国产 PostgreSQL 系数据库的适配过程中,不同厂商对数据文件和 WAL 日志均有一定修改。

在数据文件页头方面,一些数据库增加了额外字节或填充零,使得原生读取函数无法直接解析。通过分析固定的字节模式,可以推断新增字段或填充值的位置,从而调整读取逻辑,使页头的 lower、upper 等关键字段正确解析。

在 WAL 日志适配方面,部分数据库增加了额外类型,改变了原有类型的编号顺序。为保证数据恢复功能,需要重新映射类型 ID,以正确识别 XLOG、HEAP、BTREE 等关键记录。

PDU 核心价值与性能优化

PDU 分为社区版和专业版,专业版的许可与服务器绑定。PDU 的核心价值在于数据恢复的速度——对于急需恢复生产环境的客户,解析数据的效率至关重要。

在实际使用中,TOAST 数据的解析是性能瓶颈所在。社区版存在限速,专业版全速解析时也会因 TOAST 数据量大而明显下降。为提升性能,开发者尝试了多线程,但发现瓶颈依然在 TOAST 解析上。针对这一问题,进行了结构优化:原本的全表扫描方式改为类似目录索引的解析方式。以一张 200MB、含 18,045 条数据的高密度 TOAST 表为例,优化前解析耗时约 800 秒,优化后降至 1.6 秒,同时解析结果与原数据完全一致。

这一优化显著提升了 PDU 的实际应用效率,也体现了其在灾难恢复场景下的核心价值。

结语

通过对 PostgreSQL 内核数据结构的深度解析和性能优化,PDU 显著提升了大规模数据恢复的效率与准确性,为数据库运维提供了可靠、可落地的灾难恢复能力,同时兼顾不同厂商版本的兼容性,实现了高效、安全的数据恢复实践。

利用NotMyFault工具在虚拟机中安全触发与分析Windows蓝屏 系统崩溃与蓝屏是操作系统内核遇到无法恢复的严重错误时触发的保护机制,通常由内存访问违规、驱动冲突或内核堆栈溢出等问题引起。理解其原理对于系统稳定性保障和故障诊断至关重要。在软件工程实践中,主动进行故障注入测试是验证系统健壮性和恢复能力的有效手段,尤其在驱动开发、系统测试和安全研究领域。通过模拟蓝屏场景,开发者可以测试监控告警系统的有效性,验证错误恢复流程,并深入分析内存转储文件。本文以微软官方NotMyFault工具为例,结合虚拟机环境,演示如何安全可控地触发蓝屏,并解读Dump文件中的关键调试信息,将蓝屏 阅读详情

相关推荐

全志 H3 Armbian 系统克隆实战:dd 镜像备份与恢复指南

本文详细介绍了使用 dd 命令为全志 H3 开发板克隆 Armbian 系统的完整实战指南。内容涵盖从备份前的设备识别、风险规避,到使用 dd 命令创建和压缩系统镜像,再到将镜像部署到新硬件并进行克隆后的必要系统调整(如修改主机名、重置SSH密钥),旨在帮助用户安全、高效地实现系统的精确复制与批量部署。

yy01234的博客 616

PostgreSQL 17.6 表数据被误删除,无备份,如何恢复?

PostgreSQL 17.6 表数据被误删除,无备份,如何恢复?

chenoracle的博客 552

麒麟Kylin OS下高效创建与还原Ghost镜像的完整指南

本文提供了在麒麟Kylin OS下创建与还原Ghost镜像的完整指南。详细介绍了从系统备份准备、使用系统工具一键生成Ghost镜像文件,到镜像验证、管理及多种还原方式的实战流程。旨在帮助用户高效实现系统迁移、批量部署与灾难恢复,提升运维效率与数据安全性。

weixin_29202687的博客 418

IvorySQL 专家顾问委员会成立啦!

Oracle 作为企业级数据库市场的领导者,凭借其强大的功能、广泛的市场影响力以及完善的技术支持和推广体系,长期占据行业主导地位。但近几年来,PostgreSQL 凭借卓越的性能和灵活性,成为备受瞩目的开源数据库软件。IvorySQL 基于 PostgreSQL 开发,新增了与 Oracle 数据库的兼容功能,旨在结合开源优势与企业级需求。为推动 IvorySQL 的生态发展,IvorySQL 2025 生态大会暨 PostgreSQL 高峰论坛近日隆重召开。本次大会汇聚了、国际开源社区领袖及,阵容强大。

IvorySQL的博客 786

从零开始:基于QEMU的ESL功能模型开发指南(含ARM虚拟原型搭建技巧)

本文提供了一份基于QEMU开发ESL功能模型的完整实战指南。详细介绍了如何从零开始搭建ARM虚拟原型开发环境,并深入讲解了为自研IP创建QEMU设备模型的核心技巧,包括寄存器映射、中断处理和DMA模拟。指南还涵盖了设备树定制、DMI接口实现及高效调试策略,旨在帮助团队实现软硬件并行开发,大幅缩短芯片开发周期。

backprop5master的博客 461

局域网高效数据复制解决方案:内部BT工具

P2P(Peer-to-Peer,对等网络)是一种网络结构模式,在该模式下,每个节点既可以充当客户端也可以充当服务器的角色。P2P网络中的每个节点都能够直接与其他节点进行交互,而不依赖于中央服务器,这与传统的客户端-服务器模型形成鲜明对比。P2P网络的优势在于其可扩展性、鲁棒性以及成本效益。由于P2P网络中的每个节点都可能提供数据和资源,因此,随着用户数量的增加,网络提供的带宽和存储能力也随之增加。这种分布式特性使得P2P网络在面对大规模用户时仍能保持高效运行,而不会像传统服务器那样产生性能瓶颈。

weixin_42174098的博客 795

PostgreSQL数据库恢复工具FGPDU(FGEDU PostgreSQL DUL)

在企业级数据库运维场景中,数据丢失和数据库无法启动是最严重、最令人紧张的故障之一。硬件故障或文件系统损坏导致数据文件损坏;误操作(误执行DELETEDROP TABLEPostgreSQL 升级失败、系统表(pg_class)损坏;控制文件pg_control丢失或不可读,实例启动时直接抛出PANIC;WAL 日志损坏、回放失败,数据库无法到达一致状态;误删除数据库目录或被加密;备份策略失效,没有可用的物理/逻辑备份。

风哥oracle/mysql/pg技术教程 306

FPGA 核脉冲梯形成型 Verilog 实现:从 MATLAB 到 50MHz 采样率部署

本文详细解析了FPGA实现核脉冲梯形成型的完整流程,从MATLAB仿真到50MHz采样率的Verilog硬件部署。重点探讨了梯形成型算法对负指数信号的优化处理,包括定点数量化、流水线架构设计及资源优化技巧,为核辐射探测与高能物理实验提供高效解决方案。

weixin_30920513的博客 389

CAN缩写

PG, Parameter Group 参数组 PGN, Parameter Group Number 参数组编号 PDU, Protocol Data Unit 协议数据单元 PF, Protocol Data Unit Format 协议数据单元格式 PS, PDU Specific 特定协议数据单元 DF, Data File 数据域 DP, Data Page 数据页 DA, Destination Address 目标地址 DLC, 数据长度码 ...

东川 2453

两相变频交错PFC实战:从论文理论到PSIM仿真的完整避坑指南

本文详细解析了两相变频交错PFC技术从理论到PSIM仿真的完整实现过程,特别针对CRM模式下的BOOST PFC设计挑战提供实用解决方案。涵盖周期值比较法与RS触发器法的对比实施、PSIM仿真中的过零处理与收敛性优化等核心问题,并给出硬件实现的进阶建议,助力工程师高效完成高功率密度PFC设计。

weixin_30632089的博客 422

5G LDPC编码实战:从校验矩阵到Matlab代码实现(附完整源码)

本文深入解析5G NR标准中的LDPC编码工程实现,聚焦于从3GPP协议中的QC-LDPC校验矩阵到高效Matlab代码的转换。文章详细阐述了基础矩阵(BG1/BG2)选择、提升因子确定以及利用双对角结构的快速编码算法,并提供了完整的、可优化的Matlab源码,旨在帮助通信算法工程师和开发者快速构建5G LDPC编码仿真原型,为硬件实现奠定基础。

table的专栏 376

Poznote 备份与灾难恢复完全指南:手动、定时、S3、脚本 4 种方法及回滚实操

Poznote 是一款免费、自托管、开源的笔记应用,而 **Poznote 备份** 是每位自建用户必须掌握的基本功。本文带你完整掌握 Poznote 备份与灾难恢复的全部玩法:手动导出 ZIP、服务器本地定时备份、S3 存储桶备份、脚本 + cron 自动化,以及数据丢失后如何用备份一键回滚,最后还包括管理员专属的“重建主数据库”灾难恢复操作。 [![Poznote 备份与恢复界面概览](ht

gitblog_00075的博客 381

Synares病毒实战:如何手动清除C盘隐藏的Synaptics.exe(附资源修复脚本)

本文详细介绍了Synares感染型病毒的手动清除方法,该病毒伪装成Synaptics触摸板驱动,感染EXE和XLSX文件。文章提供了从病毒行为分析、母体清除到被感染文件修复的全流程指南,并附有实用的资源修复脚本和防御加固方案,帮助用户彻底清除这一顽固病毒。

lg888的博客 2338

推荐文章:深度探索UniFi备份与支持文件解密工具——解锁你的数据潜力

推荐文章:深度探索UniFi备份与支持文件解密工具——解锁你的数据潜力 在数字化时代,数据安全与管理尤为重要。对于UniFi系统的用户而言,保护和理解他们的.unf和.supp文件变得越发关键。今天,我们带来一个开源宝藏——一款专为解密这些神秘文件而生的工具。让我们一同深入了解这个项目,探索其技术内核、应用场景以及独特魅力。 项目介绍 本项目旨在解决UniFi系统用户面临的备份与支持文件加密问题。...

gitblog_01128的博客 995

配置Dot1q终结子接口实现跨设备VLAN间通信示例

示例图 一.实验目的 1.配置Dot1q终结子接口实现跨设备VLAN间通信示例 二.注意事项 1.Dot1q终结子接口和QinQ终结子接口不支持透传不带VLAN Tag的报文, 收到不带VLAN Tag的报文会直接丢弃 2.由于三层以太网子接口不支持VLAN报文,当它收到VLAN报文时,会将VLAN报文当成是 非法报文而丢弃,因此,需要在子接口上将VLAN Tag剥掉,也就是需要VLAN终结 三.VLAN终结简介 1.VLAN终结的实质包含两个方面: ①.对接口接收到报文,剥除VLAN标

qq_44751470的博客 7097

【Gazebo安装指南】Ubuntu22.04LTS环境下的高效配置与常见问题解决

本文提供了在Ubuntu 22.04 LTS系统上高效安装和配置Gazebo仿真环境的详细指南。针对Gazebo Classic版本,文章对比了通过ROS 2仓库和Ubuntu官方仓库两种主流安装方法,并重点解决了安装过程中常见的软件包定位、模型下载及图形驱动等问题,帮助用户快速搭建稳定的机器人仿真开发环境。

weixin_29279101的博客 435

Linux内核定制实战:从源码编译到裁剪部署完整指南

操作系统底层驱动硬件与资源调度的核心,其定制能力是构建高性能或嵌入式系统的关键技能。理解内核编译的原理,不仅关乎系统启动过程的每个细节,更决定了能否按需裁剪。在资源受限的嵌入式设备或追求极致性能的服务器场景中,通过 menuconfig 进行模块化配置,能够有效缩减镜像体积、提升运行效率,实现安全可控的定制化。掌握从源码获取、环境搭建到内核编译安装的完整链路,是进行内核优化与故障排查的基础。深入拆解 Linux 内核定制的主流技术路线、配置裁剪逻辑与编译安装中的常见问题,帮助开发者构建可复现、可回滚的内核定

weixin_33806300的博客 318

避坑指南:Cursor AI生成Flutter代码时最容易翻车的5个配置细节

本文深入剖析了使用Cursor AI生成Flutter代码时,因.cursorrules配置文件不当而导致的五大常见问题。重点探讨了如何通过制定清晰、具体的规则,避免状态管理混乱、设计图输入低效、项目架构脱节、性能隐患及规则维护缺失等陷阱,从而将AI转化为高效、可靠的开发伙伴,提升代码质量和团队协作效率。

wdx0123456的博客 415

Linux系统root密码遗忘?急救模式与单用户模式双保险解决方案

本文详细介绍了Linux系统root密码遗忘时的两种专业解决方案:急救模式与单用户模式。通过分析Linux启动流程和权限控制机制,提供从GRUB引导菜单操作到chroot环境的完整密码恢复指南,特别涵盖LVM分区和SELinux等企业级场景的实战技巧,帮助管理员快速安全地重获系统控制权。

weixin_30352645的博客 366

【学术情报智库】目录学的数字化蜕变:从古籍整理到AI知识图谱的跨越

我们既是浩瀚知识的守望者,也是数字智识的开拓者。目录学数字化不是技术替代传统,而是融合创新,让学术的系统性与多样性在新媒介下焕发新的生命。以AI为桥,既要智能链接,也要人文关照——这是对自我文明的深情回应,也是新知时代的庄严约定。

高校图书馆高级系统架构师/研究馆员,推动高校AI从概念演示到可评审、可交付、可运维:路线图与立项评审、PoC交付、评测回归与上线运维(Baseline/Eval/Ops)。 1420

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

开源数据库管理软件_跟上开源数据库管理的发展

开源数据库管理软件 开源数据库的世界正在Swift发展。 似乎每天都有开源技术的新版本发布,这可能会使数据库管理员的生活变得更轻松,即使只有他/她知道这一点。 幸运的是,有许多方法可以掌握开源数据库技术的最新发展。 一种方法是下周在爱尔兰都柏林举行的Percona实时开源数据库会议。 我们之前已经介绍了Percona Live,并邀请您回顾一下我们以前的故事 。 从物联网到大数据再到与云的协...

cumj63710的博客 368

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

slock:极简X11锁屏工具的原理、安全设计与嵌入式实践

锁屏工具是操作系统安全链路的基础组件,其核心在于密码验证机制、输入事件控制与进程权限管理。slock作为遵循Unix哲学的轻量级实现,摒弃图形栈依赖,采用原生X11协议通信与crypt(3)内核态哈希比对,实现毫秒级响应与亚微秒级密码验证延迟。其技术价值体现在极致资源占用(<32KB内存)、零日志泄露风险及setuid原子化降权等硬性安全约束,适用于i3wm/dwm等手动窗口管理器、树莓派等嵌入式平台及金融/工控等高敏生产环境。本文深入解析slock的设计边界、编译定制要点与真实产线故障应对策略。

weixin_33976072的博客 317

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

开源磁盘克隆神器Clonezilla:从原理到实战的整机备份与恢复指南

在数据安全和系统运维领域,磁盘备份与恢复是一项基础且关键的技术。其核心原理是通过创建存储设备(如硬盘、分区)的完整副本或镜像,确保在系统崩溃、硬件故障或数据丢失时能够快速复原。这项技术的价值在于为业务连续性和数据完整性提供了底层保障,广泛应用于服务器灾难恢复、批量系统部署、硬件升级迁移等场景。其中,基于块级别的全量备份能确保系统状态的一致性,而增量备份则在此基础上优化了存储空间与备份效率。本文将聚焦于一款功能强大且完全免费的开源工具——Clonezilla(再生龙),它原生支持Linux与Windows文件

weixin_33762130的博客 476

Heartbeat+DRBD+MySQL高可用架构方案与实施过程细节

恭喜郑东旭同学51CTO博客大赛获奖,特转载此文与博友们分享!Heartbeat+DRBD+MySQL高可用架构方案与实施过程细节互联网公司从初期到后期的数据库架构拓展Heartbeat介绍官方站点:http://linux-ha.org/wiki/Main_Pageheartbeat可以资源(VIP地址及程序服务)从一台有故障的服务器快速的转移到另一台正常的服务器提供服务,heartbeat和k...

weixin_33898876的博客 78

Arch Linux包管理深度解析:pacman原理、信任链与故障恢复

Linux包管理是操作系统稳定运行的核心机制,其本质是依赖解析、元数据验证与事务一致性保障的技术体系。Arch Linux采用独特的分层密钥环(Web of Trust)和SQLite元数据库设计,使pacman在签名验证、仓库隔离、DAG依赖图构建等方面迥异于apt/yum等通用方案。这种极简而严谨的架构赋予系统高度可控性,但也要求用户深入理解信任链设计与原子升级协议。典型应用场景包括生产环境灾备恢复、离线CI构建基座搭建、AUR安全集成及多架构节点统一运维——尤其在镜像同步异常、登录管理器黑屏、firm

weixin_33827731的博客 434

Window逆向基础之逆向工程介绍

以设计方法学为指导,以现代设计理论、方法、技术为基础,运用各种专业人员的工程设计经验、知识和创新思维,对已有产品进行解剖、深化和再创造。逆向工程不仅仅在计算机行业、各行各业都存在逆向工程。计算机行业逆向工程计算机行业中的逆向工程有两种分类:1、硬件逆向;2、软件逆向;软件逆向包括:系统级逆向和代码级逆向。

yy1715713348的博客 3016
上一篇: 在一台机器上搭建一体化 Ceph 存储集群
下一篇: 1024程序员节福利!参与互动,5分钟赢好礼!
IvorySQL
博客等级 码龄5年 745粉丝 557原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值