【OceanBase系列】—— OceanBase V4.x 中的常用备份恢复 SQL 总结

embedded/2024/10/20 17:14:52/

OceanBase 数据库的物理备份分为数据备份和日志归档。

  • 数据备份指的是备份数据的功能,分为全量备份和增量备份两种:
    • 全量备份是指备份所有的宏块
    • 增量备份是指备份上一次备份以后新增和修改过的宏块
  • 日志归档是基于 clog 日志数据的一种流式的自动归档功能,OBServer 会定期将日志数据归档到指定的备份路径。这个动作是全自动的,由后台日志归档工作线程自动完成,不需要外部定期触发。

在进行物理备份操作时,需要先开启日志归档模式后,然后才能执行数据备份。

跟之前的 OceanBase 数据库 V2.x/V3.x 版本相比,OceanBase 数据库 V4.x 版本最大的改变是将物理备份的配置和调度从以前的集群级别下拆到了租户级别,对应的,相关的 SQL 语句和查询视图也有了较大的调整。

本文总结了 OceanBase 数据库 V4.x 中常用的备份恢复相关的 SQL 语句。

适用版本

OceanBase 数据库 V4.x 版本

配置日志归档的路径

连接到 root@sys 租户,执行以下命令。

MySQL [oceanbase]> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///obbackup/obcluster/1661253029/tenant_incarnation_1/1006/clog BINDING=Optional PIECE_SWITCH_INTERVAL=1d' TENANT=obmysql;

连接到普通业务租户的管理员用户,执行以下命令。

obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///obbackup/obcluster/1661253029/tenant_incarnation_1/1006/clog BINDING=Optional PIECE_SWITCH_INTERVAL=1d';

查看日志归档的参数

连接到 root@sys 租户查看日志备份的路径,执行以下命令。

MySQL [oceanbase]> select * from cdb_ob_archive_dest;
+-----------+---------+-----------------------+--------------------------------------------------------------------+
| TENANT_ID | DEST_NO | NAME                  | VALUE                                                              |
+-----------+---------+-----------------------+--------------------------------------------------------------------+
|      1002 |       0 | binding               | OPTIONAL                                                           |
|      1002 |       0 | dest_id               | 1002                                                               |
|      1002 |       0 | path                  | file:///obbackup/obcluster/1661253029/tenant_incarnation_1/1002/clog |
|      1002 |       0 | piece_switch_interval | 1d                                                                 |
|      1002 |       0 | state                 | ENABLE                                                             |
+-----------+---------+-----------------------+--------------------------------------------------------------------+
5 rows in set (0.049 sec)

连接普通业务租户查看日志备份的路径,执行以下命令。

obclient> select * from dba_ob_archive_dest;
+---------+-----------------------+--------------------------------------------------------------------+
| DEST_NO | NAME                  | VALUE                                                              |
+---------+-----------------------+--------------------------------------------------------------------+
|       0 | binding               | OPTIONAL                                                           |
|       0 | dest_id               | 1002                                                               |
|       0 | path                  | file:///obbackup/obcluster/1661253029/tenant_incarnation_1/1002/clog |
|       0 | piece_switch_interval | 1d                                                                 |
|       0 | state                 | ENABLE                                                             |
+---------+-----------------------+--------------------------------------------------------------------+
5 rows in set (0.042 sec)

启动日志归档

使用 root 用户登录 sys 租户,执行以下命令。

MySQL [oceanbase]> ALTER SYSTEM ARCHIVELOG;

或者:

MySQL [oceanbase]> ALTER SYSTEM ARCHIVELOG TENANT=ALL;

或者:

MySQL [oceanbase]> ALTER SYSTEM ARCHIVELOG TENANT = mysql_tenant;

使用 root 用户登录 MySQL 模式租户,执行以下命令。

MySQL [(none)]> ALTER SYSTEM ARCHIVELOG;

使用 SYS 用户登录 Oracle 模式租户,执行以下命令。

obclient [SYS]> ALTER SYSTEM ARCHIVELOG;

查看当前日志归档的状态

使用 root 用户登录 sys 租户,执行以下命令。

MySQL [oceanbase]> select * from cdb_ob_archivelog\G

使用 root 用户登录 MySQL 模式租户,执行以下命令。

MySQL [oceanbase]> select * from dba_ob_archivelog\G

使用 SYS 用户登录 Oracle 模式租户,执行以下命令。

obclient [SYS]> select * from dba_ob_archivelog\G

查看历史以及当前所有的日志归档的状态

使用 root 用户登录 sys 租户,执行以下命令。

MySQL [oceanbase]> select * from cdb_ob_archivelog_summary\G

使用 root 用户登录 MySQL 模式租户,执行以下命令。

MySQL [oceanbase]> select * from dba_ob_archivelog_summary;

使用 SYS 用户登录 Oracle 模式租户,执行以下命令。

obclient [SYS]> select * from dba_ob_archivelog_summary;

查看日志归档中的 piece 信息

连接到 root@sys 租户,执行以下命令。

MySQL [oceanbase]> select * from cdb_ob_archivelog_piece_files;   -- 查看集群中所有租户的所有 Piece 信息

连接到普通业务租户的管理员用户,执行以下命令。

obclient> select * from dba_ob_archivelog_piece_files;   -- 查看本租户的所有 Piece 信息

关闭日志归档

使用 root 用户登录 sys 租户,执行以下命令。

MySQL [oceanbase]> ALTER SYSTEM NOARCHIVELOG;

或者:

MySQL [oceanbase]> ALTER SYSTEM NOARCHIVELOG TENANT=ALL;

或者:

MySQL [oceanbase]> ALTER SYSTEM NOARCHIVELOG TENANT = mysql_tenant;

使用 root 用户登录 MySQL 模式租户,执行以下命令。

MySQL [(none)]> ALTER SYSTEM NOARCHIVELOG;

使用 SYS 用户登录 Oracle 模式租户,执行以下命令。

obclient [SYS]> ALTER SYSTEM NOARCHIVELOG;

配置数据备份的路径

系统租户为指定租户配置备份目的端。

ALTER SYSTEM SET DATA_BACKUP_DEST = 'file:///obbackup/obcluster/1661253029/tenant_incarnation_1/1006/data' TENANT = mysql_tenant;

用户租户配置本租户的备份目的端。

ALTER SYSTEM SET DATA_BACKUP_DEST = 'file:///obbackup/obcluster/1661253029/tenant_incarnation_1/1006/data';

查看数据备份的参数

连接 root@sys 租户查看数据备份的参数。

MySQL [oceanbase]> select * from cdb_ob_backup_parameter;
+-----------+------------------+--------------------------------------------------------------------+
| TENANT_ID | NAME             | VALUE                                                              |
+-----------+------------------+--------------------------------------------------------------------+
|      1002 | data_backup_dest | file:///obbackup/obcluster/1661253029/tenant_incarnation_1/1002/data |
+-----------+------------------+--------------------------------------------------------------------+
1 row in set (0.054 sec)

连接普通业务租户查看数据备份的参数。

obclient> select * from dba_ob_backup_parameter;
+------------------+--------------------------------------------------------------------+
| NAME             | VALUE                                                              |
+------------------+--------------------------------------------------------------------+
| data_backup_dest | file:///obbackup/obcluster/1661253029/tenant_incarnation_1/1002/data |
+------------------+--------------------------------------------------------------------+
1 row in set (0.015 sec)

发起全量数据备份

连接到 root@sys 租户,执行以下命令。

obclient [(none)]> ALTER SYSTEM BACKUP DATABASE;   -- 对集群中的所有租户发起全量数据备份
obclient [(none)]> ALTER SYSTEM BACKUP TENANT = mysql_tenant;   -- 仅对指定租户发起全量数据备份,不会影响集群中的其他租户

连接到普通业务租户的管理员用户,执行以下命令。

obclient> ALTER SYSTEM BACKUP DATABASE;   -- 对本租户发起全量数据备份

发起增量数据备份

连接到 root@sys 租户,执行以下命令。

obclient [(none)]> ALTER SYSTEM BACKUP INCREMENTAL DATABASE;   -- 对集群中的所有租户发起增量数据备份
obclient [(none)]> ALTER SYSTEM BACKUP INCREMENTAL TENANT = mysql_tenant;   -- 仅对指定租户发起增量数据备份,不会影响集群中的其他租户

连接到普通业务租户的管理员用户,执行以下命令。

obclient [(none)]> ALTER SYSTEM BACKUP INCREMENTAL DATABASE;   -- 对本租户发起增量数据备份

查看正在进行中的数据备份的进度

连接到 root@sys 租户,执行以下命令。

MySQL [oceanbase]> select * from cdb_ob_backup_jobs;   -- 展示集群下所有租户的正在进行中的备份JOB 任务。用户发起一次备份任务,记录一条 JOB 任务记录。
MySQL [oceanbase]> select * from cdb_ob_backup_tasks;   -- 展示集群下所有租户的正在进行中的 TASK 级备份任务。一条 TASK 记录对应一个 backup_set 备份。TASK 任务记录和 JOB 任务记录为一一对应关系。

连接到普通业务租户的管理员用户,执行以下命令。

obclient> select * from dba_ob_backup_jobs;
obclient> select * from dba_ob_backup_tasks;

查看数据备份任务历史

连接到 root@sys 租户,执行以下命令。

MySQL [oceanbase]> select * from cdb_ob_backup_job_history;   -- 展示集群下所有租户的历史备份JOB 任务。用户发起一次备份任务,记录一条 JOB 任务记录。
MySQL [oceanbase]> select * from cdb_ob_backup_task_history;   -- 展示集群下所有租户的历史 TASK 级备份任务。一条 TASK 记录对应一个 backup_set 备份。TASK 任务记录和 JOB 任务记录为一一对应关系。

连接到普通业务租户的管理员用户,执行以下命令。

obclient> select * from dba_ob_backup_job_history;
obclient> select * from dba_ob_backup_task_history;

查看数据备份集信息

连接到 root@sys 租户,执行以下命令。

MySQL [oceanbase]> select * from cdb_ob_backup_set_files;

连接到普通业务租户的管理员用户,执行以下命令。

obclient> select * from dba_ob_backup_set_files;

停止数据备份

连接到 root@sys 租户,执行以下命令。

obclient [(none)]> ALTER SYSTEM CANCEL BACKUP;   -- 停止集群中所有租户的数据备份任务
obclient [(none)]> ALTER SYSTEM BACKUP TENANT = mysql_tenant;   -- 仅停止指定租户正在执行的数据备份任务,不会影响集群中的其他租户

连接到普通业务租户的管理员用户,执行以下命令。

obclient [(none)]> ALTER SYSTEM CANCEL BACKUP;   -- 停止本租户正在执行的数据备份任务

更多信息

如何更改日志归档的目的端

操作步骤
  1. 租户管理员登录集群的 sys 租户或用户租户。
  2. 关闭归档模式,详细操作参见 关闭归档模式。
  3. 重新配置归档目的端。配置归档目的端时,要求新的归档目的端所在的目录为空。
  4. 完成后,在 sys 租户下查询视图 CDB_OB_ARCHIVE_DEST 的 LOG_ARCHIVE_DEST 列,或者在用户租户下查询视图 DBA_OB_ARCHIVE_DEST 的 LOG_ARCHIVE_DEST 列,确认新的归档目的端是否配置成功。
后续操作

归档目的端变更成功后,需要重新开启归档模式。

如何更改数据备份的目的端

操作步骤
  1. 租户管理员登录集群的 sys 租户或用户租户。
  2. 确认是否有正在进行的备份任务,详细操作请参见 查看数据备份进度。如果查询结果不为空,则表示有正在进行的数据备份,需要停止正在进行的备份任务。
  3. 重新配置备份目的端。配置备份目的端时,要求新的备份目的端所在的目录为空。
  4. 完成后,在 sys 租户下查询视图 CDB_OB_BACKUP_PARAMETER 或在用户租户下查询视图 DBA_OB_BACKUP_PARAMETER,确认新的备份目的端是否配置成功。
后续操作

备份目的端变更成功后,需要重新发起全量数据备份。


http://www.ppmy.cn/embedded/35979.html

相关文章

websevere服务器从零搭建到上线(三)|IO多路复用小总结和服务器的基础框架

文章目录 epollselect和poll的优缺点epoll的原理以及优势epoll 好的网络服务器设计Reactor模型图解Reactor muduo库的Multiple Reactors模型 epoll select和poll的优缺点 1、单个进程能够监视的文件描述符的数量存在最大限制,通常是1024,当然可以更改数…

imx6ull开发板设置SD卡启动,SD卡中烧写uboot,kernel,设备树,根文件系统fs

IMX6ULL ARM Linux开发板SD卡启动,SD卡的分区与分区格式化创建_sd制作分区-CSDN博客

基于中等分辨率的水色传感器量化湖泊的反射率和叶绿素浓度

Quantifying decadal stability of lake reflectance and chlorophyll-a from medium-resolution ocean color sensors 2024 RSE 使用9种叶绿素浓度评估和校正了MODIS评估了MODIS反射率在全球湖泊中的稳定性数据处理:MODIS数据以33网格进行了中值滤波,时…

VPS服务器有哪些用途?

VPS的中文全称为虚拟专用服务器技术,是将一台服务器划分成多个虚拟专享服务器的优质服务,VPS可以像物理服务器一样,进行重装操作系统和安装程序,为用户提供了管理配置的自由,可以用在企业虚拟化方面。 VPS技术可以通过…

学习《应用密码学:协议、算法与C源程序》 第二版 前言

目录 前言 怎样阅读本书 前言 世界上有两种密码:一种是防止小孩偷看你的文件;另一种是防止当局阅读你的文件。本书写的是后一种情况。 如果把一封信锁在保险柜中,把保险柜藏在纽约的某个地方,然后告诉你去看这封信,这…

eMMC断电通知机制(PON)

概述 PON: POWER_OFF_NOTIFICATION host在断电前通知eMMC卡要断电了,然后eMMC把没有做完的操作赶紧做完,然后host再进行断电。 场景: (1).host在把VCCQ和VCC这两路电源断电之前,应该发布PON(POWER_OFF_LONG/POWER_OFF_SHORT)。 (2).设备正在进入sleep state时候,h…

Nvidia发布Llama3-ChatQA-1.5: 提升对话问答和表格推理能力,平均性能超越GPT-4

前言 近日,Nvidia推出了一款名为Llama3-ChatQA-1.5的对话问答模型。该模型在对话式问答和检索增强型生成等能力方面表现出色,在综合评测指标上甚至超越了当前业界顶尖的GPT-4模型。 技术特点 Llama3-ChatQA-1.5是基于Llama-3基础模型训练而成的。相比之…

简易的项目管理软件有哪些推荐?

简易的项目管理软件有很多,以下是一些推荐选项: zz-plan:https://zz-plan.com/ 作为一个在线甘特图工具,它适用于不同规模和复杂性的项目管理,能够轻松管理任务和进度。 Asana:https://asana.com/ 以其简…