OceanBase 数据库备份与恢复

1. 物理备份实施

1.1 配置备份参数

– 设置备份根目录

ALTER SYSTEM SET backup_dest=‘file:///obbackup’ tenant=all;

– 设置备份并发度

ALTER SYSTEM SET backup_concurrency=4 tenant=all;

– 启用日志归档

ALTER SYSTEM SET archive_lag_target=‘1h’ tenant=all;

1.2 执行全量备份

使用ob_admin执行物理备份

ob_admin backup \

–cluster=mycluster \

–tenant=mysql \

–backup-dest=file:///obbackup \

–backup-job-id=full_20230601

1.3 增量备份

基于上次备份执行增量

ob_admin backup \

–mode=incremental \

–base-backup-id=full_20230601 \

–backup-job-id=incr_20230602

2. 逻辑备份实施

2.1 使用ob_dumper导出数据

导出单表数据

ob_dumper -h127.0.0.1 -P2881 -uroot -p****** -Dtest -temployees -o/backup/export

导出整个租户

ob_dumper -h127.0.0.1 -P2881 -uroot -p****** --all -o/backup/full_export

2.2 导出元数据

导出数据库结构

ob_dumper --schema-only -h127.0.0.1 -uroot -p****** -o/backup/schema

3. 恢复方案

3.1 物理恢复流程

停止目标集群

ob_admin cluster stop

执行恢复操作

ob_admin restore \

–backup-dest=file:///obbackup \

–backup-job-id=full_20230601 \

–restore-job-id=restore_20230601

应用增量日志

ob_admin replay \

–archive-source=file:///obbackup \

–until-timestamp=‘2023-06-02 12:00:00’

3.2 逻辑导入恢复

使用ob_loader导入数据

ob_loader -h127.0.0.1 -P2881 -uroot -p****** -Dnewdb -i/backup/export

4 备份监控

– 查看备份任务状态

SELECT * FROM oceanbase.__all_backup_job;

– 检查备份文件完整性

SELECT * FROM oceanbase.__all_backup_set_files;

– 监控日志归档状态

SELECT * FROM oceanbase.__all_archive_log;

image

1 个赞