环境

系统平台:Linux x86-64 Red Hat Enterprise Linux 7
版本:4.5.8

文档用途

pg_basebackup 是 PostgreSQL 提供的用于物理备份和恢复数据库的工具。通过 pg_basebackup 工具,可以创建数据库的完整拷贝,用于备份或者恢复目的。本文将详细介绍如何使用 pg_basebackup 工具进行备份和恢复 PostgreSQL 数据库。

详细信息

pg_basebackup 用法

pg_basebackup [选项] …

控制输出的选项:

-D, --pgdata=DIRECTORY 接收基本备份到目录,如果不存在会自动创建

-F, --format=p|t 输出格式(plain,直接拷贝数据文件,tar 配合 -z -Z 进行打包压缩)

-r, --max-rate=RATE 传输数据目录的最大传输速率(以 kB/s 为单位,或使用后缀“k”或“M”)

-R,–write-recovery-conf 是否输出recovery-conf文件,方便后续使用备份快速搭建出从节点

-T, --tablespace-mapping=OLDDIR=NEWDIR 将 OLDDIR 中的表空间重定位到 NEWDIR

-X, --wal-method=none|fetch|stream 包含指定方法所需的 WAL 文件

-z, --gzip 压缩 tar 输出

-Z, --compress=0-9 使用给定的压缩级别压缩 tar 输出

常规选项:

-c, --checkpoint=fast|spread 设置快速或扩展检查点

-C, --create-slot 创建复制槽

-l, --label=LABEL 设置备份标签

-n, --no-clean 出错后不清理

-N, --no-sync 不等待更改安全写入磁盘

-P, --progress 显示进度信息

-S, --slot=SLOTNAME 要使用的复制槽

-v, --verbose 输出详细信息

-V, --version 输出版本信息,然后退出

–no-slot 防止创建临时复制槽

–no-verify-checksums 不验证校验码

-?, --help 显示此帮助,然后退出

连接选项:

-d, --dbname 数据库名称

-h, --host 数据库服务器主机ip或套接字目录

-p, --port 数据库口号

-s, --status-interval=状态包发送到服务器的间隔时间(以秒为单位)

-U, --username 连接用户,要有super权限

-w, --no-password 从不提示输入密码

常用示例

数据库物理备份:
(1)以完整文件的形式备份数据库

pg_basebackup -U sysdba -Fp -v -D /opt/highgo/data

(2)以压缩的文件形式备份数据库

pg_basebackup -U sysdba -Ft -v -D /opt/highgo/data

(3)存在创建的新表空间时,进行备份数据库(如下原表空间为/highgo/cheshi)

pg_basebackup -U sysdba -Fp -v -D /opt/highgo/data -T "/highgo/cheshi=/opt/highgo/data/ceshibase"

数据库还原:
(1)如果数据库备份为文件的形式,未进行压缩可直接进行数据库文件的替换

mv   /opt/highgo/data  $HGDB_HOME/

启动数据库

pg_ctl start

(2) 如果数据库备份为压缩的形式,需进行解压到数据文件夹内

mkdir -p  $HGDB_HOME/data    

tar -xvf  /opt/highgo/data/base.tar  -C  /opt/highgo/hgdb-see-4.5.8/data

tar -xvf  /opt/highgo/data/pg_wal.tar -C  /opt/highgo/hgdb-see-4.5.8/data/pg_wal/

启动数据库

pg_ctl start
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐