WAL-G存储工具使用指南:危险操作详解

WAL-G存储工具使用指南:危险操作详解

wal-g Archival and Restoration for databases in the Cloud wal-g 项目地址: https://gitcode.com/gh_mirrors/wa/wal-g

概述

WAL-G作为PostgreSQL的备份恢复工具,提供了一系列强大的存储操作命令。这些命令位于wal-g st子命令下,能够直接与配置的存储后端进行交互。需要特别注意的是,这些命令具有潜在危险性,不当使用可能导致数据丢失,因此在使用前务必确认操作意图。

基本存储操作命令

列出存储内容(ls)

ls命令用于查看存储中的文件和目录列表,类似于Linux系统中的ls命令。

  • 基本用法:wal-g st ls - 显示配置存储中的所有对象和文件夹
  • 递归查看:wal-g st ls -r - 递归显示所有子目录内容
  • 指定路径:wal-g st ls some_folder/some_subfolder - 查看特定路径下的内容

使用场景:在备份恢复前检查存储中的备份文件,或确认WAL日志是否已正确归档。

下载文件(get)

get命令用于从存储中下载文件到本地。

特性

  • 默认会自动解压和解密(如果配置了相关选项)
  • 可通过标志禁用自动处理

常用标志

  • --no-decompress - 禁用自动解压
  • --no-decrypt - 禁用自动解密

示例

  • 基本下载:wal-g st get remote_path local_path
  • 仅下载不解密:wal-g st get remote_path local_path --no-decrypt

查看文件内容(cat)

cat命令将存储中的文件内容输出到标准输出,类似于Linux的cat命令。

特性

  • 默认不会自动解压或解密
  • 适用于查看元数据文件(如sentinel文件)

常用标志

  • --decompress - 启用解压
  • --decrypt - 启用解密

示例wal-g st cat path/to/backup_sentinel.json

删除文件(rm)

rm命令用于删除存储中的文件或目录,操作不可逆,需谨慎使用。

特性

  • 可以删除单个文件或整个目录
  • 删除目录时包含所有子内容

示例

  • 删除文件:wal-g st rm path/to/file
  • 删除目录:wal-g st rm path/to/directory/

注意事项:删除操作前建议先用ls命令确认要删除的内容。

上传文件(put)

put命令用于将本地文件上传到存储。

特性

  • 默认会进行压缩和加密(如果配置)
  • 可通过标志禁用自动处理

常用标志

  • --no-compress - 禁用压缩
  • --no-encrypt - 禁用加密

示例wal-g st put local_path remote_path

高级存储操作:文件传输(transfer)

transfer命令用于在不同存储之间迁移文件,特别适用于故障转移场景。

子命令类型

  1. 普通文件传输transfer files prefix

    • 迁移任意类型的文件
    • 会处理指定前缀下的所有子目录
  2. WAL文件传输transfer pg-wals

    • 专用于PostgreSQL WAL文件迁移
    • 相当于transfer files "wal_005/"的快捷方式
  3. 备份传输transfer backups

    • 专门处理备份文件
    • 确保备份迁移的原子性
    • 支持--max-backups=N限制迁移数量

通用标志参数

  • -s/--source:指定源存储名称(必须)
  • -t/--target:指定目标存储名称(默认主存储)
  • -o/--overwrite:覆盖已存在文件
  • --fail-fast:遇到错误立即停止
  • -c/--concurrency:设置并发工作数
  • -m/--max-files:单次运行最大迁移文件数
  • --appearance-checks:目标存储一致性检查次数
  • --appearance-checks-interval:检查间隔时间
  • --preserve:保留源文件(相当于复制而非移动)

使用场景示例

  1. 从故障转移存储恢复WAL文件wal-g st transfer pg-wals --source='my_failover_ssh'

  2. 迁移特定备份文件wal-g st transfer backups --source='my_failover_s3' --target='default' --max-backups=5

  3. 大规模文件迁移

    wal-g st transfer files basebackups_005/ \
    --source='my_failover_s3' \
    --target='default' \
    --fail-fast \
    -c=50 \
    -m=10000 \
    --appearance-checks=5 \
    --appearance-checks-interval=1s
    

安全注意事项

  1. 操作前验证:执行任何删除或修改操作前,先用ls命令确认目标
  2. 备份重要数据:执行危险操作前确保有备份
  3. 使用--preserve标志:不确定时先复制而非移动文件
  4. 监控传输过程:大规模传输时建议在屏幕会话中运行

最佳实践

  1. 定期检查存储:使用ls命令定期检查备份完整性
  2. 分层存储策略:将旧备份转移到低成本存储
  3. 故障转移测试:定期测试存储迁移流程
  4. 资源限制:大规模传输时适当限制并发数

通过合理使用这些存储工具,可以高效管理PostgreSQL的备份和WAL归档,构建可靠的灾备方案。但切记这些命令的强大功能也伴随着风险,操作时务必谨慎。

wal-g Archival and Restoration for databases in the Cloud wal-g 项目地址: https://gitcode.com/gh_mirrors/wa/wal-g

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

农鸽望

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值