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等。
若要在原库的地方恢复数据库,参考步骤如下:
- 停止数据库服务器, 具体操作请参见《管理员指南》。
- 将原数据库和所有表空间复制到另外一个位置, 以备后面需要。
- 清理原库中的所有或部分文件。
- 使用数据库系统用户权限从备份中还原需要的数据库文件。
- 若数据库中存在链接文件,需要修改使其链接到正确的文件。
- 重启数据库服务器,并检查数据库内容,确保数据库已经恢复到所需的状态。
说明:
- 暂不支持备份文件增量恢复。
- 恢复后需要检查数据库中的链接文件是否链接到正确的文件。