postgresql - 使用“pg_basebackup”实用程序进行备份时收到错误
问题描述
我们正在使用以下命令来备份数据库。
$PGHOME/bin/pg_basebackup -p 5433 -U postgres -P -v -x --format=tar --gzip --compress=1 --pgdata=- -D /opt/rao
在进行备份时,我们收到以下错误。</p>
transaction log start point: 285/8F000080 pg_basebackup: could not get transaction log end position from server: FATAL: requested WAL segment 00000001000002850000008F has already been removed
请指导我为什么以及如何处理此错误。您是否希望我更改pg_basebackup
命令中的任何选项让我知道。
请澄清--pgdata=--D
我上面的 pg_basebackup 命令的含义。
解决方案
-D directory
--pgdata=directory
这指定了要将输出写入的目录。当备份处于 tar 模式并且目录指定为 -(破折号)时,tar 文件将被写入标准输出。此参数是必需的。
FATAL: requested WAL segment 00000001000002850000008F has already been removed
意味着主服务器没有保留足够的历史来使备用服务器恢复最新状态。
您可以使用pg_basebackup创建一个新的从站:
pg_basebackup -h masterhost -U postgres -D path --progress --verbose -c fast
拥有 WAL 存档时,您可以尝试 restore_command。pg_basebackup 在一个空目录中创建一个全新的从属。
推荐阅读
- makefile - 无法使 makefile 工作
- c++ - 为什么 `void* = 0` 和 `void* = nullptr` 会有所不同?
- angular - 使用占位符和 ngModel 动态生成输入元素
- primeng - PrimeNG
全局过滤器不工作在角度 - java - 转换列表
- r - 如何合并2个数组
- c# - 有没有办法将注册表项访问权限分配给特定的应用程序?
- c# - Sliders in Unity VR
- python - 错误:draw_bounding_box() 缺少 2 个必需的位置参数:“r”和“d”
- powershell - 如何从快捷方式文件向 PowerShell 传递多个命令?