暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

Halo数据库备份与恢复

冷狼 2024-01-06
180

备份是指对Halo数据库或事务日志进行的复制,数据库备份记录了在进行备份操作时数据库中所有数据的状态,如果数据库因意外而损坏,这些备份文件将在数据库恢复时被用来恢复数据库。


逻辑备份与恢复

逻辑备份的原理是将数据库中的对象和数据转储成对应的SQL命令。通常我们使用pg_dump/pg_restore命令来完成逻辑备份和恢复。


假设我们要备份名为halotest的数据库,我们可以使用如下命令:

pg_dump -Fc -v -f halotest.dump halotest

假设我们需要对halotest进行恢复,我们可以使用如下命令:

pg_restore -v -C -d halo0root halotest.dump

物理备份与恢复

(一)完全备份

1.设置归档,修改postgresql.conf文件

archive_mode   设置为onarchive_command 归档命令。即复制 WAL 日志的命令。简单的命令可参考:test ! -f /data/halo/pg_archive/%f && cp %p /data/halo/pg_archive/%f

图片


2.创建归档日志目录

mkdir /data/halo/pg_archive

3.设置一个目录来存放备份文件,该目录需要进行初始化操作

mkdir -p /data/halo_backupchown halo:halo /data/halo_backup---配置环境变量vi /home/halo/.bash_profile  export BACKUP_PATH=/data/halo_backup---重载source /home/halo/.bash_profile

4.使用rman命令进行备份

rman initrman backup -b full -d halo0rootrman validaterman show detail --查看备份信息

图片

(二)增量物理备份

增量备份即只备份变化的数据块和归档日志。

使用下面的命令即可完成增量备份

rman backup -b incremental -d halo0root

有效性检验

rman validate

查看备份信息

rman show detail  

备份归档日志

顾名思义,即只备份归档日志文件。备份数据库需要消耗大量的I/O,因此我们不可能在业务时段进行数据库备份作业。通常会安排在业务低峰期,比如夜间进行数据库备份作业。但是如果只进行数据库备份,我们很可能会丢失较长一段时间内的数据,即RPO无法达到较好的值。通过合理备份归档,我们可以有效的降低RPO,这也是数据库备份很重要的一个环节。

rman backup -b archive -d halo0root --归档备份rman validate   --有效性检验rman show detail  --查看备份信息

备份恢复

(一)完全恢复

要进行数据库的完全恢复,前置条件是数据库已停止并且已完成备份。

1 将数据库停止运行

pg_ctl stop

2 使用rman命令将备份恢复

rman restore

3 启动数据库

pg_ctl start

(二)基于时间点的恢复

Halo的备份管理器也支持基于时间点的不完全恢复。前置条件需要已经做好完全备份及归档备份。例如,我们要将数据库恢复到2022-04-18 10:20:00,我们可以使用以下命令:‍

rman backup -b full -d halo0rootrman validate
rman backup -b archive -d halo0rootrman validate
pg_ctl stoprman restore --recovery-target-time '2022-04-01 11:26:00'pg_ctl start
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论