PostgreSQL备份策略实战:从基础到高级的完整指南
1. 为什么你的数据库需要一个靠谱的备份策略我见过太多因为数据丢失而焦头烂额的团队了。有一次一个朋友半夜给我打电话声音都在抖说他们线上业务的数据库不知道被谁误操作了一张核心表的数据被清空了大半。他们之前只做了每天一次的定时逻辑备份而事故发生在两次备份之间。这意味着他们要么接受丢失大半天的新增数据要么就得手动从乱七八糟的日志里一点点拼凑无论选哪个都是巨大的损失。那一刻我才深刻体会到备份不是“有就行”而是得“足够好”。对于 PostgreSQL 这样的数据库来说备份策略就像给你的数据买保险。你希望它永远用不上但一旦出事它就是救命的稻草。一个完整的备份体系应该能应对各种“意外”程序员的误删、硬盘的突然损坏、甚至整个机房的故障。它不仅仅是把数据复制一份那么简单更关乎恢复的速度、数据的完整性以及业务中断的时间。很多人刚开始接触 PostgreSQL 备份可能只知道一个pg_dump命令。这没错它是一个强大的起点就像你工具箱里的一把螺丝刀。但光有螺丝刀修不了汽车。你需要根据你的业务场景——数据量大小、能容忍的数据丢失量RPO、能容忍的业务中断时间RTO——来组合使用不同的工具和方法。从简单的“快照式”逻辑备份到可以恢复到任意时间点的“时光机”连续归档每一种策略都有它的适用场景和实战技巧。在这篇指南里我不会只给你罗列命令参数虽然这些很重要我会结合我这些年踩过的坑和积累的经验带你从最基础的备份操作开始一步步构建一个既能应对日常需求又能扛住极端情况的 PostgreSQL 备份体系。我们的目标是让你不仅能“做”备份更能“懂”备份最终设计出最适合你自己业务的备份策略。2. 逻辑备份你的第一道安全防线逻辑备份说白了就是把数据库里的数据表、视图、函数等转换成一系列 SQL 语句或者特定格式的归档文件。它的最大优点是灵活和可移植。你可以轻松地只备份单个表可以把备份文件拿到另一个不同版本、甚至不同操作系统的 PostgreSQL 服务器上恢复也可以很方便地查看备份文件里的内容。对于数据量不大比如几十个GB以内、变更不那么频繁的库或者需要做数据迁移、归档的场景逻辑备份通常是首选。2.1 核心工具 pg_dump单库备份的瑞士军刀pg_dump是 PostgreSQL 自带的、最常用的逻辑备份工具。它功能非常强大参数也多但别怕我们抓住最常用的几个就能解决80%的问题。首先一个最基础的完整备份命令长这样pg_dump -h 你的数据库IP -U 用户名 -d 数据库名 -f /路径/备份文件.sql例如备份本机一个叫myapp的数据库到/backups目录pg_dump -h 127.0.0.1 -U postgres -d myapp -f /backups/myapp_$(date %Y%m%d).sql这里$(date %Y%m%d)是 Shell 命令会自动生成当前日期如20231027这样备份文件就自带日期方便管理。我强烈建议你养成这个习惯不然过一阵子你会发现备份目录里一堆分不清谁是谁的.sql文件。但上面这个命令生成的是纯文本 SQL 文件。如果你的数据库比较大或者你想获得更快的备份/恢复速度、更灵活的恢复选项比如只恢复某个表那么你应该使用自定义格式pg_dump -h 127.0.0.1 -U postgres -d myapp -Fc -f /backups/myapp_$(date %Y%m%d).dump这里的-Fc参数就是指定输出为自定义格式Custom format。这种格式是压缩的二进制文件体积更小并且必须用pg_restore工具来恢复它允许你实现很多高级操作比如并行恢复以加快速度 (-j参数)。只恢复数据不恢复表结构 (-a)。只恢复特定的表 (-t)。在恢复前先清空DROP目标数据库中的对象 (-c)配合--if-exists更安全。踩坑提醒使用-c(clean) 参数时一定要小心它会在恢复的 SQL 脚本开头加上DROP TABLE ...这样的语句。如果你不小心把备份恢复到生产库可能会把现有表给删了所以在测试环境或明确知道要覆盖时才用。更安全的做法是恢复到一个新库或者使用--if-exists参数让 DROP 语句变成DROP TABLE IF EXISTS ...这样如果表不存在也不会报错。对于超大型数据库直接备份成一个文件可能不太方便。这时可以用-Fd目录格式它会创建一个目录里面每个大表可能对应一个文件并且支持并行备份 (-j参数)能充分利用多核 CPU显著提升备份速度。pg_dump -h 127.0.0.1 -U postgres -d myapp -Fd -j 4 -f /backups/myapp_$(date %Y%m%d)_dir2.2 全能选手 pg_dumpall搞定整个数据库集群pg_dump一次只能备份一个数据库。那用户、角色、表空间这些全局对象怎么办这时候就需要pg_dumpall出场了。它可以备份整个 PostgreSQL 实例或叫集群中的所有数据库以及全局对象。它的用法比pg_dump更简单pg_dumpall -h 127.0.0.1 -U postgres -f /backups/all_databases_$(date %Y%m%d).sql这个命令会生成一个巨大的 SQL 文件里面包含了创建角色、表空间、数据库的语句然后是对每个数据库调用pg_dump的内容。重要经验我通常建议将pg_dumpall和pg_dump结合使用。用pg_dumpall --globals-only只备份全局对象角色、表空间然后用pg_dump分别备份每个重要的业务数据库。这样做有几个好处一是备份文件更模块化恢复时灵活性更高二是如果某个数据库备份失败不会影响其他数据库的备份流程三是对于特别大的数据库可以单独为其制定备份策略比如使用目录格式并行备份。2.3 逻辑备份的还原操作把数据找回来备份做得再好恢复不了也是白搭。逻辑备份的恢复主要用两个工具psql和pg_restore。怎么选很简单看你备份时用的什么格式。如果你备份出来的是普通的.sql文本文件没用-F参数那就用psql来恢复psql -h 新主机IP -U 用户名 -d 目标数据库名 -f /路径/备份文件.sql例如把备份恢复到本机一个新数据库myapp_restorecreatedb -h 127.0.0.1 -U postgres myapp_restore # 先创建空数据库 psql -h 127.0.0.1 -U postgres -d myapp_restore -f /backups/myapp_20231027.sql这个过程就是让 PostgreSQL 重新执行一遍备份文件里的所有 SQL 命令从头创建表、索引然后插入数据。对于大库来说这个过程可能会比较慢。如果你备份时用了-Fc自定义格式、-Fd目录格式或-Fttar格式那么就必须使用pg_restore。它的功能强大得多# 基本恢复和 psql 效果类似 pg_restore -h 127.0.0.1 -U postgres -d myapp_restore /backups/myapp_20231027.dump # 并行恢复加快速度尤其适合目录格式备份 pg_restore -h 127.0.0.1 -U postgres -d myapp_restore -j 4 /backups/myapp_20231027.dump # 只恢复表结构模式不恢复数据 pg_restore -h 127.0.0.1 -U postgres -d myapp_restore -s /backups/myapp_20231027.dump # 只恢复数据假设表结构已经存在 pg_restore -h 127.0.0.1 -U postgres -d myapp_restore -a /backups/myapp_20231027.dump # 先清空目标库中已有的对象再恢复危险请确认环境 pg_restore -h 127.0.0.1 -U postgres -d myapp_restore -c --if-exists /backups/myapp_20231027.dump恢复实战技巧在真正执行恢复前尤其是生产环境我有个习惯先用-l列出归档内容参数看看备份文件里到底有什么。pg_restore -l /backups/myapp_20231027.dump backup_contents.list打开这个backup_contents.list文件你可以看到备份里包含的所有对象和数据的顺序。你甚至可以编辑这个列表文件注释掉在行首加;你不想恢复的内容然后用-L参数指定这个列表文件进行恢复。这个功能在只想恢复部分数据时非常有用。3. 物理备份与连续归档打造“时间机器”逻辑备份很好但它有一个天生的短板它备份的是某个时间点的静态快照。如果你的数据库在上午10点做了备份下午3点发生故障那么从10点到3点之间产生的所有新数据都会丢失。对于很多业务来说这种数据丢失是不可接受的。这就是我们需要更高级策略——连续归档Continuous Archiving也就是常说的“物理备份WAL归档”的原因。你可以把它想象成一个“时间机器”。我们先做一个完整的数据库文件系统的拷贝这叫基础备份然后从那个时间点开始持续不断地保存数据库产生的所有“重做日志”WAL文件。这样当需要恢复时我们先把基础备份还原然后“重放”从备份点之后直到故障点或任意你想要的点的所有WAL日志数据库就能被恢复到那个精确的状态。理论上你可以恢复到任意一个时间点只丢失最后一秒的数据甚至零丢失。3.1 配置连续归档一步步搭建你的时光机让我们动手配置一个最简单的连续归档环境。假设你的 PostgreSQL 数据目录是/var/lib/pgsql/12/data。第一步准备归档目录我们创建两个目录一个放基础备份一个放归档的WAL日志。mkdir -p /backup/pg_basebackup mkdir -p /backup/pg_wal_archive # 非常重要确保目录权限正确让运行PostgreSQL的用户通常是postgres有读写权限 chown -R postgres:postgres /backup/pg_basebackup /backup/pg_wal_archive chmod 700 /backup/pg_wal_archive # WAL归档目录权限要严格权限问题是我踩过最多的坑之一PostgreSQL 对数据安全很敏感权限不对就直接报错。第二步修改 PostgreSQL 主配置打开postgresql.conf文件找到并修改以下几个关键参数vi /var/lib/pgsql/12/data/postgresql.conf# 将WAL日志级别从默认的 ‘replica’ 改为 ‘replica’ 或更高如 ‘logical’。 # ‘replica’ 级别已经包含了归档和流复制所需的所有信息是最常用的设置。 wal_level replica # 开启归档模式 archive_mode on # 这是核心命令告诉PostgreSQL如何归档WAL日志。 # %p 代表要归档的WAL文件路径%f 代表WAL文件名。 # 下面这个命令的意思是每天按日期创建一个子目录然后把WAL文件拷贝进去。 # 使用 ‘test’ 命令是为了避免重复创建目录和覆盖已有文件更健壮。 archive_command test ! -f /backup/pg_wal_archive/%f cp %p /backup/pg_wal_archive/%f我更喜欢上面这种简单的archive_command它把所有的WAL文件都放在同一个目录下。你也可以用原始文章里那种按日期分目录的方式但对于自动化脚本来说单一目录管理起来有时更简单。关键是这个命令必须成功返回0PostgreSQL才会认为归档成功然后才会删除旧的WAL文件。如果这个命令一直失败你的pg_wal目录会被撑爆导致数据库无法写入新数据而挂起第三步重启数据库使配置生效sudo systemctl restart postgresql-12 # 或者使用 pg_ctl sudo -u postgres pg_ctl -D /var/lib/pgsql/12/data restart重启后检查日志确保没有错误并且archive_mode和archive_command已生效。第四步创建第一个基础备份现在我们可以开始第一次全量备份了。使用pg_basebackup工具它是专门用来做在线基础备份的。sudo -u postgres pg_basebackup -D /backup/pg_basebackup/$(date %Y%m%d_%H%M%S)_full -Ft -z -P参数解释-D指定备份输出的目录。-Ft输出格式为 tar 包。-Fp是原样拷贝文件格式我更习惯用 tar方便管理和压缩。-z在传输过程中对 tar 包进行 gzip 压缩。-P显示进度条让你知道备份进行到哪了。这个命令会在/backup/pg_basebackup下生成一个类似20231027_143000_full.tar.gz的文件。这个压缩包里面就是数据库在备份开始时刻的一个完整的数据目录快照。重要概念pg_basebackup备份期间不需要锁库它对业务影响很小。但它会启动一个特殊的事务确保备份过程中产生的WAL日志也被完整地保留下来。所以你的基础备份必须和从备份开始时刻起的所有归档WAL日志配合使用才能恢复出一致的数据。3.2 从连续归档中恢复演练你的逃生路线备份配置好了不演练恢复就等于没备份。我们模拟一个最经典的场景在某个时间点之后有人误删了数据我们需要恢复到误操作之前。假设我们在今天下午2点做了基础备份。下午4点时发生了误删除。现在时间是下午5点我们需要恢复。第一步停止数据库并准备环境sudo systemctl stop postgresql-12 # 移动或重命名损坏/旧的数据目录 mv /var/lib/pgsql/12/data /var/lib/pgsql/12/data_old_bak # 创建一个新的空数据目录 mkdir /var/lib/pgsql/12/data chown postgres:postgres /var/lib/pgsql/12/data第二步还原基础备份# 切换到数据目录 cd /var/lib/pgsql/12/data # 解压基础备份的tar包 sudo -u postgres tar -xzf /backup/pg_basebackup/20231027_140000_full.tar.gz解压后当前目录 (/var/lib/pgsql/12/data) 就应该包含了所有基础备份的文件。第三步配置恢复参数现在需要告诉 PostgreSQL 如何恢复。在数据目录下创建或编辑postgresql.conf文件从备份里解压出来的已经有这个文件了我们主要关注恢复相关的参数。但更现代、更推荐的方式是使用recovery.signal文件和postgresql.auto.conf或recovery.conf12版本后已合并。首先在数据目录下创建一个空文件告诉 PostgreSQL 要进入恢复模式sudo -u postgres touch /var/lib/pgsql/12/data/recovery.signal然后我们需要指定从哪里获取 WAL 归档文件。编辑postgresql.conf或创建一个postgresql.auto.conf文件这个文件优先级更高且不会被后续的配置覆盖sudo -u postgres vi /var/lib/pgsql/12/data/postgresql.auto.conf加入以下内容# 恢复时使用的命令和 archive_command 对应 restore_command cp /backup/pg_wal_archive/%f %p # 我们希望恢复到下午3点59分也就是误删除发生前的一分钟 recovery_target_time 2023-10-27 15:59:00 # 恢复完成后数据库是变成可读写的普通模式还是保持为只读的“备库”模式我们选前者。 recovery_target_action promoterestore_command是恢复的“引擎”它会不断尝试从你指定的目录 (/backup/pg_wal_archive) 里拷贝需要的 WAL 文件到%p指定的位置通常是pg_wal目录下。recovery_target_time就是我们设定的“时间旅行”目的地。如果不设置这个参数默认会恢复到最新的可用 WAL 日志处。第四步启动数据库并验证sudo systemctl start postgresql-12启动后数据库不会立即接受连接它会进入恢复状态。你可以通过查看数据库日志来跟踪恢复进度tail -f /var/lib/pgsql/12/data/log/postgresql-*.log你会看到类似 “starting archive recovery”, “restored log file”, “recovery stopping before commit” 这样的信息。当看到 “database system is ready to accept connections” 时恢复就完成了。登录数据库检查那张被误删的表数据应该已经恢复到下午3点59分那个时间点的状态了。确认无误后非常重要的一步立即对你的新数据目录做一次全新的基础备份因为恢复后的数据库已经和之前的备份链脱节了旧的 WAL 归档文件对新库不再有效。4. 高级策略与自动化让备份自己运转起来基础的备份和恢复会了但要让这套体系在生产环境真正可靠、省心我们还得往上加几层“保险”和“自动化”。手动执行命令是万恶之源人总会犯错也会忘记。4.1 设计你的备份策略组合拳没有一种备份策略是万能的。我通常建议采用“混合策略”高频逻辑备份对于核心的业务数据库每天用pg_dump -Fc做一次自定义格式的逻辑备份。这个备份的用途是“快速回滚”。如果只是某张表的数据出了问题用pg_restore单独恢复这张表会比做全库的物理恢复快得多。低频基础备份每周或每两周做一次pg_basebackup物理基础备份。这是你连续归档的“基石”。基础备份的频率取决于你的数据变化量和存储空间。变化不大可以两周一次变化剧烈可能需要每周甚至更频繁。持续WAL归档7x24小时不间断地进行。这是保证你RPO恢复点目标的关键。WAL日志通常很小归档速度很快对性能影响微乎其微。务必确保archive_command的可靠性并监控归档目录的空间。异地/云存储至少将一份备份尤其是基础备份和最近的WAL归档拷贝到另一个物理位置或云存储如S3兼容存储、另一台远程服务器。防范机房级灾难。可以用rsync,rclone等工具配合 cron 定时任务实现。定期恢复演练这是最容易被忽略也最重要的一环。我建议至少每季度做一次恢复演练。在一个隔离的环境用你的备份文件完整地走一遍恢复流程。这不仅能验证备份的有效性也能让团队熟悉恢复操作真出事时不慌张。4.2 使用 pgBackRest 或 Barman 等专业工具当你的数据库环境变得复杂比如有多个库、需要管理备份保留策略、需要做增量备份、需要一键恢复等手动写脚本会变得非常痛苦且容易出错。这时候就该请出专业的备份管理工具了。pgBackRest是我个人非常推荐的一个工具。它用起来比原生的工具链要简单很多功能却强大得多。它支持全量、差异、增量备份增量备份可以大大节省存储空间和备份时间。并行备份与恢复速度非常快。加密和压缩保障备份数据安全节省空间。完整的备份仓库管理自动清理过期备份。从时间点恢复命令简单直观。支持备份到S3等云存储。一个简单的 pgBackRest 全量备份配置示例在/etc/pgbackrest.conf中[my-demo-cluster] pg1-path/var/lib/pgsql/12/data [global] repo1-path/backup/pgbackrest repo1-retention-full2 # 保留2个全量备份然后执行备份只需要一条命令sudo -u postgres pgbackrest --stanzamy-demo-cluster --typefull backup恢复也同样简单sudo systemctl stop postgresql-12 sudo -u postgres pgbackrest --stanzamy-demo-cluster --typetime --target2023-10-27 15:59:00 restore sudo systemctl start postgresql-12工具帮你处理了所有复杂的细节比如找到正确的基础备份和一系列WAL日志。对于运维团队来说这极大地降低了心智负担和出错概率。4.3 监控与告警给备份加上“健康检查”备份任务跑起来了但你怎么知道它每次都是成功的如果归档命令因为磁盘满而失败数据库最终会停止工作。因此监控至关重要。监控归档状态查询pg_stat_archiver系统视图。SELECT * FROM pg_stat_archiver;关注last_failed_wal和last_failed_time字段。如果它们不是空的说明归档出过问题。last_archived_time可以告诉你最后一次成功归档是什么时候如果这个时间太久远也可能有问题。监控备份脚本执行结果无论是 cron 任务还是 systemd timer都要捕获命令的退出状态码。非0状态码意味着失败。最简单的办法是在脚本末尾加上错误判断并通过邮件、Slack、钉钉等渠道发送告警。#!/bin/bash pg_dump -h localhost -U postgres -d mydb -Fc -f /backup/mydb.dump if [ $? -ne 0 ]; then echo 数据库备份失败 | mail -s 备份告警 adminexample.com exit 1 fi监控备份文件大小和新鲜度写一个简单的检查脚本定期检查备份目录下最新备份文件的修改时间是否在预期范围内比如24小时内以及文件大小是否正常不能是0字节。这也是发现问题的有效手段。监控存储空间备份目录和归档目录的磁盘空间必须监控。一旦快满了要能及时告警并清理过期备份。数据库备份不是一个“设置好就忘记”的任务。它是一个需要持续维护、监控和验证的体系。花时间搭建一个健壮的备份系统是在为你未来的某个深夜或凌晨买下一份宝贵的安宁。当真的出现问题时一个可靠的备份和清晰的恢复流程就是你最坚实的后盾。

相关新闻

sysfs文件系统深度解析:DEVICE_ATTR_RW的工作原理与调试技巧

sysfs文件系统深度解析:DEVICE_ATTR_RW的工作原理与调试技巧

sysfs文件系统深度解析:DEVICE_ATTR_RW的工作原理与调试技巧 最近在为一个嵌入式项目调试自定义的硬件监控模块时,我遇到了一个颇为棘手的问题:通过sysfs导出的设备属性文件,有时cat命令能正常读取数据,但echo写入新值…

2026/5/17 12:07:29 阅读更多 →
Python入门实战:你的第一个AI项目——调用Lingbot模型测图片深度

Python入门实战:你的第一个AI项目——调用Lingbot模型测图片深度

Python入门实战:你的第一个AI项目——调用Lingbot模型测图片深度 你是不是觉得AI很酷,但总感觉离自己很远?那些复杂的算法、庞大的模型,听起来就让人头大。别担心,今天我们就来打破这个门槛。不需要你懂高深的数学&am…

2026/5/17 12:07:25 阅读更多 →
Quartus II实战:基于状态机的8位LED流水灯设计与时序分析

Quartus II实战:基于状态机的8位LED流水灯设计与时序分析

1. 从零开始:为什么选择状态机来做流水灯? 大家好,我是老张,一个在FPGA和嵌入式领域摸爬滚打了十多年的工程师。今天想和大家聊聊一个非常经典,但又常常让新手感到困惑的入门项目:用状态机实现8位LED流水灯…

2026/7/3 0:33:12 阅读更多 →

最新新闻

研一快速产出AI论文:利用AI工具与开源资源实现高效科研

研一快速产出AI论文:利用AI工具与开源资源实现高效科研

这次我们来看一个研究生同学普遍关心的问题:导师放养,研一如何快速完成一篇毕业论文,甚至冲击SCI?这不是一个具体的软件项目,而是一套结合AI工具与系统化科研方法的实战策略。核心目标很明确:在有限的时间和…

2026/7/3 15:31:36 阅读更多 →
戴尔笔记本风扇终极控制指南:DellFanManagement让你告别噪音与过热烦恼

戴尔笔记本风扇终极控制指南:DellFanManagement让你告别噪音与过热烦恼

戴尔笔记本风扇终极控制指南:DellFanManagement让你告别噪音与过热烦恼 【免费下载链接】DellFanManagement A suite of tools for managing the fans in many Dell laptops. 项目地址: https://gitcode.com/gh_mirrors/de/DellFanManagement 还在为戴尔笔记…

2026/7/3 15:31:36 阅读更多 →
utdnsmasq源码解析:Rust实现的DNS缓存机制

utdnsmasq源码解析:Rust实现的DNS缓存机制

utdnsmasq源码解析:Rust实现的DNS缓存机制 【免费下载链接】utdnsmasq utdnsmasq is a refactoring of dnsmasq. 项目地址: https://gitcode.com/openeuler/utdnsmasq 前往项目官网免费下载:https://ar.openeuler.org/ar/ utdnsmasq是openEuler项…

2026/7/3 15:29:34 阅读更多 →
智驾不是自动驾驶:L2级辅助驾驶的本质与安全边界

智驾不是自动驾驶:L2级辅助驾驶的本质与安全边界

1. 项目概述:一场被误读的技术概念纠偏“智驾”不是“自动驾驶”——这句话从公安部官网发布后,迅速登上各大平台热搜。但很多人点进去只扫了一眼标题就划走,以为又是官媒在喊口号、打预防针。其实这短短十个字背后,是一次对行业术…

2026/7/3 15:27:29 阅读更多 →
AD74413R与PIC32MX675F512L的高精度混合信号系统设计

AD74413R与PIC32MX675F512L的高精度混合信号系统设计

1. 项目概述:AD74413R与PIC32MX675F512L的协同工作 在嵌入式系统设计中,同时实现高精度模拟信号采集(ADC)和输出(DAC)是工业控制、测试测量等领域的常见需求。AD74413R作为ADI公司推出的软件可配置输入/输出…

2026/7/3 15:27:29 阅读更多 →
SIP工艺在电流频率转换模块中的应用:陶瓷封装、金丝键合与气密性设计的技术优势

SIP工艺在电流频率转换模块中的应用:陶瓷封装、金丝键合与气密性设计的技术优势

电流频率(I/F)转换模块作为测控系统中的关键信号链路器件,其封装形式直接影响整体系统的集成度、可靠性和环境适应性。本文从SIP(System in Package)封装工艺的角度,分析将I/F转换电路集成到SIP模块中的技术…

2026/7/3 15:25:28 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻