VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

vb_basebackup

背景信息

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

说明

  • vb_basebackup仅支持全量备份,不支持增量。
  • vb_basebackup当前仅支持热备份模式,不支持压缩格式备份。
  • vb_basebackup在备份包含绝对路径的表空间时,不能在同一台机器上进行备份。对于同一台机器,绝对路径是唯一的,因此会产生冲突。可以在不同的机器上备份含绝对路径的表空间。
  • 若打开增量检测点功能且打开双写, vb_basebackup也会备份双写文件

*前提条件

  • 可以正常连接Vastbase数据库,pg_hba.conf中需要配置允许复制链接,需要配置max_wal_senders的数量, 至少有一个可用。

  • 在进行还原时,需要保证各节点备份目录中存在备份文件,若备份文件丢失,则需要从其他节点进行拷贝。

语法

  • 显示帮助信息

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

    vb_basebackup -V | --version
    

参数说明

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

  • -D directory

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

  • 常用参数:

    • -c,–checkpoint=fast|spread

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

    • -l,–label=LABEL

    为备份设置标签

    • -P,–progress

    启用进展报告

    • -v, –verbose

    启用冗长模式

    • -V, –version

    打印版本后退出

    • -?,–help

    显示vb_basebackup命令行参数

    • -F,–format=plain|tar

    指定输出格式

    • -z

    将输出的tar格式文件进一步压缩为.gz格式

    • -T,需备份的表空间路径=表空间备份输出路径

    指定表空间目录映射

  • 连接参数

    • -h, –host=HOSTNAME

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

    • -p,–port=PORT

    指定数据库服务器的端口号。
    可以通过port参数修改默认端口号。

    • -U,–username=USERNAME

    指定连接数据库的用户。

    • -s, –status-interval=INTERVAL

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

    • -w,–no-password

    不出现输入密码提示。

    • -W, –password

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

示例

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

从备份文件恢复数据

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

说明

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

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

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

说明

  • 暂不支持备份文件增量恢复
  • 恢复后需要检查数据库中的连接文件是否连接到正确的文件

PITR支持恢复到指定LSN

功能描述

支持Oracle的DBMS_UTILITY包使用,提供了各种实用子程序。

示例

1.数据库开启归档模式
修改配置文件postgresql.conf,并重启数据库
archive_mode = on
archive_command = 'cp %p /home/vastbase_lst/data/vastbase/arch/%f'
mkdri/home/vastbase_lst/data/vastbase/arch/
vb_ctl restart
2.进行备份
mkdir/home/vastbase_lst/data/vastbase/bak
mkdir /home/vastbase_lst/data/tbs_test1_bak
vb_basebackup -D /home/vastbase_lst/data/vastbase/bak -h 127.0.0.1 -p 6012 -Fplain -P -v -T/home/vastbase_lst/data/tbs_test1=/home/vastbase_lst/data/tbs_test1_bak
3.进入数据库,创建表空间跟表
create tablespace tbs_test1 location '/home/vastbase_lst/data/tbs_test1';
create table t_tbs_backup1(id int)TABLESPACE tbs_test1;
insert into t_tbs_backup1 values(1);
insert into t_tbs_backup1 values(2);
insert into t_tbs_backup1 values(3);
insert into t_tbs_backup1 values(4);
insert into t_tbs_backup1 values(5);
insert into t_tbs_backup1 values(6);
insert into t_tbs_backup1 values(7);
insert into t_tbs_backup1 values(8);
insert into t_tbs_backup1 values(9);
insert into t_tbs_backup1 values(10);
4.查看当前LSN号
select pg_current_xlog_location();
5.继续插入数据
insert into t_tbs_backup1 values(11);
insert into t_tbs_backup1 values(12);
insert into t_tbs_backup1 values(13);
insert into t_tbs_backup1 values(14);
insert into t_tbs_backup1 values(15);
insert into t_tbs_backup1 values(16);
insert into t_tbs_backup1 values(17);
insert into t_tbs_backup1 values(18);
insert into t_tbs_backup1 values(19);
insert into t_tbs_backup1 values(20);
6.进入到备份目录/home/vastbase_lst/data/vastbase/bak,创建recovery.conf文件并写入
restore_command = 'cp /home/vastbase_lst/data/vastbase/arch/%f %p'
recovery_target_lsn='$LSN'
(填写第4步查看到的LSN号)
7.关闭原库
vb_ctl stop
8.启动数据库,完成恢复
vb_ctl start -D /home/vastbase_lst/data/vastbase/bak
9.进入数据库,查询数据
select * from t_tbs_backup1;