一、概述
在数据作为生产资料的今天,数据早已成为各行各业的生命源泉,数据安全的重要性不言而喻。数据备份是数据安全的基础,完整的备份和有效的恢复手段是应对一切突发状况的重要保障。同时数据备份也对数据的重新利用,发挥数据更大价值,有着重大的作用。
而数据备份的重点是对数据库的备份。定期对数据库进行数据备份,以便能在未来发生系统故障、人为误操作等情况时,进行数据恢复,防范于未然。
巨杉数据库作为新一代分布式交易型数据库,采用“计算与存储分离”的架构;和同时期发展分布式数据库的灯塔厂商AWS在架构上不谋而合。能够在微服务时代更好支撑应用便捷开发的需求。
计算与存储分离的架构,也使得巨杉数据库拥有多种多样的备份恢复方法。在巨杉数据库的存储引擎层和SQL实例层都可以达到对数据库备份恢复的目的。
计算与存储分离架构图
二、存储引擎层的备份恢复
巨杉数据库采用自研的 SequoiaDB 分布式存储引擎,支持物理备份(db.backup)与逻辑备份(sdbexprt)。
物理备份是指转储数据库物理文件(如数据文件、日志文件等),一旦数据库发生故障,可以利用这些文件进行还原;通常可以分为全量备份与增量备份。巨杉数据库物理备份可以针对全库进行或者指定数据组进行;
巨杉数据库做物理备份和恢复工作时,要注意分布式数据库与关系型数据库的不同,即分布式数据库数据恢复会涉及到多台服务器的数据库物理文件,而不只是某一台服务器上的数据库物理文件。
逻辑备份是指对数据库对象(如用户、表、存储过程等)利用工具进行导出,同时也可以利用工具把逻辑备份文件导入到数据库。巨杉数据库逻辑备份可以将集合(表)导出为json或者csv 格式,实现快速平滑的迁移。
-
物理备份恢复方法
下面采用3台机器的巨杉数据库级群(3副本),来说明存储引擎层的物理备份恢复方法。
1. 前期准备
-
主机信息备注:
IP |
Hostname |
SequoiaDB用户 |
备注 |
192.168.1.3 |
sdb03 |
sdbadmin |
|
192.168.1.4 | sdb04 | sdbadmin | |
192.168.1.5 | sdb05 |
sdbadmin | 备份磁盘(挂载目录/sdbdata/backup) |
-
通过NFS将备份目录共享
[root@sdb05 ~]# cat /etc/exports
/sdbdata/backup *(insecure,rw,sync,no_wdelay,insecure_locks,no_root_squash)
[root@sdb03 ~]# mount -t nfs -o rw,bg,hard,nointr,tcp 192.168.1.5:/sdbdata/backup /sdbdata/backup
[root@sdb03 ~]# chown -R sdbadmin:sdbadmin_group /sdbdata/backup
[root@sdb04 ~]# mount -t nfs -o rw,bg,hard,nointr,tcp 192.168.1.5:/sdbdata/backup /sdbdata/backup
[root@sdb04 ~]# chown -R sdbadmin:sdbadmin_group /sdbdata/backup
[root@sdb04 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 15G 4.4G 11G 29% /
/dev/vdb 985G 129G 806G 14% /sdbdata
/dev/vda1 497M 172M 326M 35% /boot
/dev/vda3 50G 13G 38G 26% /opt
192.168.1.5:/sdbdata/backup 985G 129G 807G 14% /sdbdata/backup
2. 全量备份
-
全量备份脚本
[sdbadmin@sdb05 ~]#cat backup_full.sh