gs_basebackup

背景信息

openGauss部署成功后,在数据库运行的过程中,会遇到各种问题及异常状态。openGauss提供了gs_basebackup工具做基础的物理备份。gs_basebackup的实现目标是对服务器数据库文件的二进制进行拷贝,其实现原理使用了复制协议。远程执行gs_basebackup时,需要使用系统管理员账户。gs_basebackup当前仅支持热备份模式,不支持压缩格式备份模式。

说明:

  • gs_basebackup仅支持全量备份,不支持增量。
  • gs_basebackup当前仅支持热备份模式,不支持压缩格式备份模式。
  • gs_basebackup在备份包含绝对路径的表空间时,不能在同一台机器上进行备份。对于同一台机器,绝对路径是唯一的,因此会产生冲突。可以在不同的机器上备份含绝对路径的表空间。
  • 若打开增量检测点功能且打开双写, gs_basebackup也会备份双写文件。
  • 若pg_xlog目录为软链接,备份时将不会建立软链接,会直接将数据备份到目的路径的pg_xlog目录下。
  • 备份过程中收回用户备份权限,可能导致备份失败,或者备份数据不可用。
  • 目前openGauss暂不支持版本升级。

前提条件

  • 可以正常连接openGauss数据库。
  • 备份过程中用户权限没有被回收。
  • pg_hba.conf中需要配置允许复制链接,且该连接必须由一个系统管理员建立。
  • 如果xlog传输模式为stream模式,需要配置max_wal_senders的数量, 至少有一个可用。
  • 如果xlog传输模式为fetch模式,有必要把wal_keep_segments参数设置得足够高,这样在备份末尾之前日志不会被移除。
  • 在进行还原时,需要保证各节点备份目录中存在备份文件,若备份文件丢失,则需要从其他节点进行拷贝。

语法

  • 显示帮助信息

    gs_basebackup -? | --help
    
  • 显示版本号信息

    gs_basebackup -V | --version
    

参数说明

gs_basebackup参数可以分为如下几类:

  • -D directory

    备份文件输出的目录,必选项。

  • 常用参数:

    • -c,--checkpoint=fast|spread

      设置检查点模式为fast或者spread(默认)。

    • -l,--label=LABEL

      为备份设置标签。

    • -P,--progress

      启用进展报告。

    • -v, --verbose

      启用冗长模式。

    • -V, --version

      打印版本后退出。

    • -?,--help

      显示gs_basebackup命令行参数。

  • 连接参数

    • -h, --host=HOSTNAME

      指定正在运行服务器的主机名或者Unix域套接字的路径。

    • -p,--port=PORT

      指定数据库服务器的端口号。

      可以通过port参数修改默认端口号。

    • -U,--username=USERNAME

      指定连接数据库的用户。

    • -s, --status-interval=INTERVAL

      发送到服务器的状态包的时间(以秒为单位)

    • -w,--no-password

      不出现输入密码提示。

    • -W, --password

      当使用-U参数连接本地数据库或者连接远端数据库时,可通过指定该选项出现输入密码提示。

示例

gs_basebackup -D /home/test/trunk/install/data/backup -h 127.0.0.1 -p 21233
INFO:  The starting position of the xlog copy of the full build is: 0/1B800000. The slot minimum LSN is: 0/1B800000.

从备份文件恢复数据

当数据库发生故障时需要从备份文件进行恢复。因为gs_basebackup是对数据库按二进制进行备份,因此恢复时可以直接拷贝替换原有的文件,或者直接在备份的库上启动数据库。

说明:

  • 若当前数据库实例正在运行,直接从备份文件启动数据库可能会存在端口冲突,这时需要修改配置文件的port参数,或者在启动数据库时指定一下端口。
  • 若当前备份文件为主备数据库,可能需要修改一下主备之间的复制连接。即配置文件中的postgresql.conf中的replconninfo1,replconninfo2等。

若要在原库的地方恢复数据库,参考步骤如下:

  1. 停止数据库服务器, 具体操作请参见《管理员指南》。
  2. 将原数据库和所有表空间复制到另外一个位置, 以备后面需要。
  3. 清理原库中的所有或部分文件。
  4. 使用数据库系统用户权限从备份中还原需要的数据库文件。
  5. 若数据库中存在链接文件,需要修改使其链接到正确的文件。
  6. 重启数据库服务器,并检查数据库内容,确保数据库已经恢复到所需的状态。

说明:

  • 暂不支持备份文件增量恢复。
  • 恢复后需要检查数据库中的链接文件是否链接到正确的文件。
意见反馈
编组 3备份
    openGauss 2024-03-29 00:43:48
    取消