烟台市网站建设_网站建设公司_表单提交_seo优化
2025/12/30 10:40:32 网站建设 项目流程

1 概述

数据库备份是数据安全与业务连续性的生命线,它如同为珍贵数字资产撑起的一把保护伞。备份的意义不仅在于应对硬件故障、系统崩溃等常见风险,更在于防范人为误操作、恶意攻击、自然灾害等意外威胁。定期可靠的备份策略能在灾难发生时,将业务中断时间缩至最短,做到数据不丢失。在实际应用情况下,备份需要拷贝到异地,保证数据冗余,保证数据库服务器宕机不能启动时,也可以通过异地备份进行数据库恢复。

GBase 8c多模多态数据库支持行存、列存、向量、时序等多种存储模式,以及集中式、分布式等多种部署形态。本文主要介绍如何使用备份服务器,在GBase 8c集中式场景下进行物理备份和恢复操作。备份工具使用GBase 8c内置的命令行工具gs_probackup。过程中,使用一台备份服务器远程对GBase 8c数据库进行备份,备份数据保存在备份服务器上。

2 备份配置

2.1 备份配置

开启数据库归档相关配置参数
gs_guc reload -N all -I all -c "archive_mode=on" gs_guc reload -N all -I all -c "archive_timeout=1800" gs_guc reload -N all -I all -c "archive_command = 'scp %p gbase@192.168.138.202:/data/archivelog/%f'" gs_guc reload -N all -I all -c “enable_cbm_tracking=on”

参数说明:

archive_mode: 是否开启归档操作。
archive_timeout:归档周期。
archive_command:设置的用于归档WAL日志的命令,建议归档路径为绝对路径。
enable_cbm_tracking:数据库实例的全量和增量备份时需要开启此参数。

配置备份服务器的访问权限

远程备份需要开启备份机器对数据库的replication登陆权限,这里可以对指定备份机器开启。

gs_guc reload -N all -I all -h “host replication all 0.0.0.0/0 md5”

远程备份还需要开通备份用户到gbase安装用户的用户的免密ssh权限,配置免密

ssh-keygen -t rsa ssh-copy-id user@remote_host
初始化备份

在备份服务器上初始化一个备份目录,以及GBase8c数据库信息

gs_probackup init -B /home/gbase/backup gs_probackup add-instance -B /home/gbase/backup -D /home/gbase/backup --instance gbase_cluster --remote-host 192.168.138.201 --remote-user gbase gs_probackup set-config -B /home/gbase/backup --instance gbase_cluster --retention-redundancy 7 --retention-window 7 gs_probackup show-config -B /home/gbase/backup --instance gbase_cluster

参数说明:
int:表示初始化一个数据目录用于数据库备份;
add-instance:添加一个备份实例,这里可以一次备份多个实例,但是需要实例名称不能相同;
set-config:写入备份的配置信息,主要是备份实例的名称,备份保留策略;
show-config:打印备份的配置基本信息;

3 物理备份

3.1 全量备份

gs_probackup backup -B /home/gbase/backup -b FULL -h 192.168.138.201 -p 15400 -U backup -W XXXX --instance gbase_cluster --delete-expired -d postgres --compress-algorithm=zlib --compress-level=5 --remote-host 192.168.138.201 --remote-user gbase

参数说明:

-B :备份保存的目录;
-b:指定备份模式,FULL表示全量备份,PTRACK表示增量备份;
-h:指定数据库的ipd地址;
-p:指定数据库端口;
-U:指定数据库备份时使用的gbase的用户名;
-W:指定备份用户的密码;
--instance:数据库实例名称;
--delete-expired:备份后删除过期的备份文件;
-d:备份时连接的数据库名称;
--compress-algorithm:指定备份文件的压缩方法;
--compress-leve:备份文件的压缩级别;
--remote-host:远程服务器,通常和-h参数相同
--remote-user:远程用户,这里指系统用户,非gbase8c的数据库用户

3.2 增量备份

增量备份的前提条件:需要一次完整且正常的全量备份

gs_probackup backup -B /home/gbase/backup -b PTRACK -h 192.168.138.201 -p 15400 -U backup -W XXXX --instance gbase_cluster --delete-expired -d postgres --compress-algorithm=zlib --compress-level=5 --remote-host 192.168.138.201 --remote-user gbase

参数说明:

-b PTRACK 表示备份时采取增量备份

其他参数如全量备份。

4 恢复

避免数据发送二次损坏,把数据库恢复到其他机器或者目录,进行数据核对验证后再导入生产数据库。恢复时可以先将备份文件拷贝指恢复的目标服务器,也可以直接在备份服务器做远程恢复。

4.1 远程恢复

从备份服务器直接恢复到192.168.138.202服务器。

gs_probackup restore -B /home/gbase/backup/ --instance=gbase_cluster -D /home/gbase/restore_test -i SMV8NY --remote-host=192.168.138.202 --remote-user=gbase

启动数据库后比对校验数据:

gs_ctl start -D /home/gbase/restore_test/

参数说明:

-i SMV8NY :表示恢复到备份编号为SMV8NY这次备份。

其他参数和备份一致

4.2 本地恢复

先把备份拷贝到192.168.138.202服务器以后,在202服务器恢复

gs_probackup restore -B /home/gbase/backup/ --instance=gbase_cluster -D /home/gbase/restore_test -i SMV8NY

启动数据库后对比校验数据:

gs_ctl start -D /home/gbase/restore_test/

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询