我在 Windows 10 (Pro) 上运行 PostgreSQL 14.1。计算机有多个内部存储磁盘。PostgreSQL“数据目录”设置为C:\whatever\PGDB
。
我确实每天都会进行完整备份,但除非C:
驱动器在每日备份完成后一纳秒内出现故障,否则我显然会丢失一些数据,而这正是我试图避免的。
我想使C:\whatever\PGDB
目录树始终“原子地”镜像到:
D:\mirror\PGDB
E:\mirror\PGDB
F:\mirror\PGDB
也就是说,不是整个驱动器。只是 上的目录树C
,以及提到的其他本地驱动器上的目录树。
我已经向 PostgreSQL 人员询问过这个问题,不幸的是,PostgreSQL 本身不支持这一点。他们希望我使用 RAID,但我没有 RAID 硬件或软件(除了 Windows 10 中可能内置的软件)。
我确实ROBOCOPY
一直在使用它,它确实可以很好地用于“镜像”目录树,但问题是它ROBOCOPY
必须作为命令执行;它不会在后台持续运行。我相信我曾在某处读到过,你根本无法使用任何“普通”/用户级工具复制 PG datadir,因为它是由数据库本身持续写入的方式。
我需要镜像 PGDB 目录树完全相同的C:
到主/“真实”驱动器,PostgreSQL 一直在积极使用它。目的是当它停止工作时,能够将任何其他驱动器的 PGDB 目录树复制到新驱动器上。
我对此的感觉是,它必须是操作系统中非常“低级”的东西,它肯定能够保证原版和镜像之间没有任何差异。
我没钱,我非常希望不必安装任何额外的软件,即使是免费的。我还希望解决方案是一个简单的命令(或一系列命令),而不是必须点击 GUI 元素。