跳转至

sdBackRest备份恢复管理工具

sdBackRest备份恢复管理工具

备份恢复是数据库的一项核心功能,在发生意外情况时,可以最大程度上确保用户的数据安全。 sdBackRest实现了seabox数据库数据的全量备份、增量备份、差异备份、按时间点数据恢复、备份文件加密等丰富的备份恢复功能,提供了对用户数据的全面保护。

使用前配置

环境准备

以默认用户seabox为例,在root下执行:

mkdir -p -m 770 /var/log/sdbackrest
chown seabox:seabox /var/log/sdbackrest
mkdir -p /etc/sdbackrest
mkdir -p /etc/sdbackrest/conf.d
touch /etc/sdbackrest/sdbackrest.conf
chmod 640 /etc/sdbackrest/sdbackrest.conf
chown seabox:seabox /etc/sdbackrest/sdbackrest.conf

mkdir -p /var/lib/sdsql/sdbackrest;
chmod 750 /var/lib/sdsql/sdbackrest;
chown seabox:seabox /var/lib/sdsql/sdbackrest
chmod 777 /var/lib/sdsql

mkdir /var/spool/sdbackrest
chown seabox:seabox /var/spool/sdbackrest
修改配置文件

修改sdBackRest的配置文件

修改/etc/sdbackrest/sdbackrest.conf,添加如下内容:

[sd1-data]
sd1-path=/home/seabox/ssql/data

[global]
archive-async=y
process-max=2
start-fast=y
repo1-path=/var/lib/sdsql/sdbackrest
repo1-retention-full=5

[global:archive-push]
process-max=2
compress-level=3

[global:archive-get]
process-max=2

修改seabox的配置文件

修改/home/seabox/data/seaboxsql.conf,修改内容如下:

archive_command = 'sdbackrest --stanza=sd1-data archive-push %p'
archive_mode = on
listen_addresses = '*' 

然后重启seaboxsql数据库服务。

功能说明

SeaboxSQL数据库使用sdBackRest工具,工具用法如下

sdbackrest 2.27 - General help

Usage:
    sdbackrest [options] [command]

Commands:
    backup          Backup a database cluster.
    check           Check the configuration.
    expire          Expire backups that exceed retention.
    help            Get help.
    info            Retrieve information about backups.
    restore         Restore a database cluster.
    stanza-create   Create the required stanza data.
    stanza-delete   Delete a stanza.
    version         Get version.

Use 'sdbackrest help [command]' for more information.
备份操作

对seabox数据库进行数据备份操作

命令格式

sdbackrest [options] backup 

参数介绍

--force
强制进行一个离线的备份,默认为关
--online
进行一个在线的备份,默认为开
--start-fast
强行创建一个checkpoint,并迅速启动备份操作
--type
指定备份类型,full:全量备份,incr:增量备份,diff:差异备份
恢复操作

选择一个备份文件,对seabox数据库进行数据恢复操作

命令格式

sdbackrest [options] restore

参数介绍

--db-include
恢复指定的databases
--force
强制进行数据恢复,默认为关
--set
选择备份文件进行数据恢复,默认为latest
--tablespace-map
恢复一个tablespace到指定的路径
--tablespace-map-all
恢复所有的tablespace到指定的路径
--target
当数据恢复类型为name、xid或者time时,确定恢复完成的目标
--target-action
当数据恢复到targe时,执行的动作,默认为pause
--type

数据恢复的类型,默认为default,有如下的可选值:

default
将备份文件中的所有数据恢复完成
name
数据恢复到的指定的point,在–target中确定
xid
数据恢复到指定的事务ID,在–target中确定
preserver
保留已经存在的recovery.conf文件
查看备份文件列表

列出已存在的备份文件列表

命令格式

sdbackrest [options] info

参数介绍

--set
显示详细信息的备份文件ID
--output
信息显示格式,有text和json两种格式,默认为text
创建stanza

创建备份需要的stanza。stance-create命令必须运行在备份文件库所在的节点上并且stanza已经配置到sdbackrest.conf文件中

命令格式

sdbackrest [options] stanza-create

参数介绍

--online
在已运行的seabox数据库上,创建stanza,默认为开
--stanza
指定stanza
删除stanza

删除一个stanza,需要注意的是,一旦指定的stanza被删除,将会删除备份文件库中,此stanza下的所有备份文件和归档文件.

在执行删除stanza之前,需要执行如下操作:

  1. 关闭seabox数据库

  2. 在备份文件库所在的节点上执行stop操作

  3. 在备份文件库所在的节点上执行stanza-delete操作

命令格式

sdbackrest [options] stanza-delete

参数介绍

--force
强制删除stanza
--stanza
指定stanza
保留指定的备份文件

sdBackRest会进行循环备份,已经超时的备份文件会被删除

可以指定保留某些备份文件,使这些文件不被删除

命令格式

sdbackrest [options] expire

参数介绍

--set
需要保留的备份文件ID

sdBackRest版本

查看安装的sdBackRest版本

命令格式

sdbackrest version

参数介绍

通用参数介绍
--buffer-size
文件操作的缓冲区大小,默认为1KB
--config
sdBackRest的配置文件,默认为/etc/sdbackrest/sdbackrest.conf
--io-timeout
IO超时时间,默认为60s
--sck-keep-alive
是否使用保活机制,默认为开
--tcp-keep-alive-count
保活失败的次数,超过此值,则认为对方断开
--stanza
指定stanza
--repo-path
备份文件的存储路径,默认为:/var/lib/sdbackrest
--log-level-console
显示的日志类型,默认为warn
--log-level-file
文件中记录的日志类型,默认为info
--log-path
日志文件路径,默认为/var/log/sdbackrest
--log-timestamp
是否记录日志时间戳,默认为开