Wener Notes

WAL-G

约 3 分钟阅读
  • wal-g/wal-gGitHubwal-g/wal-gwal-g/wal-g 是什么? · Apache 2.0, lzo 部分 GPL 3.0+ · PostgreSQL 备份、恢复工具 · WAL-E 后继 - Golang 重写 Python - 性能 x4 · 支持 PostgreSQL, MySQL/MariaDB, Mongo, FoundationDB, Redis, Greenplum笔记:WAL-G 是什么?
    • Apache 2.0, lzo 部分 GPL 3.0+
    • PostgreSQL 备份、恢复工具
    • WAL-E 后继 - Golang 重写 Python - 性能 x4
    • 支持 PostgreSQL, MySQL/MariaDB, Mongo, FoundationDB, Redis, Greenplum
    • 支持 S3, GCS, Azure, Swift, 本地, SSH 存储
    • PostgreSQLGitHub Filewal-g/wal-g/PostgreSQL.md
  • WAL-E 不支持关闭 S3 SSE - SelfHost 常见,不便于使用
  • 参考
envdesc
WALG_S3_PREFIXs3://bucket/path/to/folder
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN,~/.aws/credentials,AWS_PROFILE
AWS_REGIONus-west-2
AWS_ENDPOINTs3-like-service
AWS_S3_FORCE_PATH_STYLEfalse
http://BUCKET.s3.amazonaws.com/KEY -> http://s3.amazonaws.com/BUCKET/KEY
WALG_FILE_PREFIX/tmp/wal-g-test-data
WALG_SSH_PREFIXssh://localhost/walg-folder
SSH_PORT
SSH_USERNAME
SSH_PASSWORD
TOTAL_BG_UPLOADED_LIMIT32
WALG_S3_STORAGE_CLASSSTANDARD
WALG_S3_SSEfalse
WALG_S3_SSE_KMS_ID
WALG_COMPRESSION_METHODlz4,lzma,brotli
S3_USE_LIST_OBJECTS_V1false
yaml
# Minio
AWS_ACCESS_KEY_ID: '<minio-key>'
AWS_SECRET_ACCESS_KEY: '<minio-secret>'
WALG_S3_PREFIX: 's3://my-minio-bucket/sub-dir'
AWS_ENDPOINT: 'http://minio:9000'
AWS_S3_FORCE_PATH_STYLE: 'true'
AWS_REGION: us-east-1
WALG_S3_CA_CERT_FILE: '/path/to/custom/ca/file'
bash
docker pull bitnami/wal-g
bash
# --pretty --json --detail
wal-g backup-list
namelast_modifiedwal_segment_backup_startstart_timefinish_timehostnamedata_dirpg_versionstart_lsnfinish_lsnis_permanent
base_0000000200000000000000052021-03-09T08:07
000000020000000000000005Tuesday, 09-Mar-21 08:07
UTC
Tuesday, 09-Mar-21 08:07
UTC
acid-demo/home/postgres/pgdata/pgroot/data1300028388612083927800false
base_0000000300000000000000082021-03-09T08:14
000000030000000000000008Tuesday, 09-Mar-21 08:14
UTC
Tuesday, 09-Mar-21 08:14
UTC
acid-demo/home/postgres/pgdata/pgroot/data130002134217768134250592false
bash
# --confirm
# retain, before, everything, target
wal-g delete

目录结构

  • /
    • basebackup_005/
      • base_000000020000000000000005_backup_stop_sentinel.json
      • base_000000020000000000000005/
        • metadata.json
        • tar_partitions/
          • pg_control.tar.lz4
          • part_001.tar.lz4
    • wal_005/
      • 00000002.history.lz4
      • 000000020000000000000005.lz4
      • 000000020000000000000007.partial.lz4
      • 000000020000000000000005.00000028.backup.lz4

PostgreSQL

| env | | ---------------------------- | --- | | WALG_DISK_RATE_LIMIT | | WALG_NETWORK_RATE_LIMIT | | WALG_DOWNLOAD_CONCURRENCY | | WALG_PREFETCH_DIR | | WALG_UPLOAD_CONCURRENCY | 16 | | WALG_UPLOAD_DISK_CONCURRENCY | | TOTAL_BG_UPLOADED_LIMIT | | WALG_SENTINEL_USER_DATA | | WALG_PREVENT_WAL_OVERWRITE | | WALG_DELTA_MAX_STEPS | | WALG_DELTA_ORIGIN | | WALG_TAR_SIZE_THRESHOLD | | WALG_TAR_DISABLE_FSYNC | | WALG_PG_WAL_SIZE | | WALG_UPLOAD_WAL_METADATA | | WALG_ALIVE_CHECK_INTERVAL | | WALG_STOP_BACKUP_TIMEOUT |

Redis

  • 只能是全量
  • backup-push, backup-list, backup-fetch, delete
env
WALG_STREAM_CREATE_COMMAND
WALG_STREAM_RESTORE_COMMAND
WALG_REDIS_PASSWORD
bash
WALG_STREAM_CREATE_COMMAND='redis_cli --rdb /dev/stdout'
WALG_STREAM_RESTORE_COMMAND='cat > /var/lib/redis/dump.rdb'

操作

bash
# Push base backup
wal-g backup-push /data
# Push WAL 片段
wal-g wal-push /data

postgresql.conf

ini
wal_level = archive # hot_standby and logical in 9.x is also acceptable
archive_mode = on
archive_command = 'envdir /etc/wal-e.d/env wal-e wal-push %p'
archive_timeout = 60
bash
wal-g backup-fetch /data LATEST
wal-g backup-fetch /data base_LONGWALNUMBER_POSITION_NUMBER

recovery.conf

ini
# https://www.postgresql.org/docs/11/recovery-config.html
restore_command = 'envdir /etc/wal-e.d/env wal-e wal-fetch %f %p'
standby_mode = on
bash
# 提升 standby
# https://www.postgresql.org/docs/current/app-pg-ctl.html
pg_ctl promote

关联信息

反向链接、本文链接的其他页面和外部资料。

反向链接

  • Postgresql Scale
    笔记 · wal-g

    scale up · 堆硬件 · scale out replicas · 读写分离 · pub/sub · scale out sharding · 分片 - 多节点 · 应用分片 - 逻辑映射 · 可控性高、特殊场景 · 服务分片 - cdb、citus

References

GitHub5 条
其他外链2 条
最近更新commit c48877aEdit

On this page