自OceanBase社区版4.2.1BP7版本起,OceanBase的归档与备份功能开始兼容AWS S3及S3协议的对象存储服务,因此,许多用户选择采用 MinIO 作为其备份存储介质。因为 MinIO 兼容AWS S3云存储服务接口,成为了一个轻便的服务选项。

本文将介绍如何部署 minio ,以及如何使用 minio 来做OceanBase的归档和备份。

关于 minio 的介绍,可参考官方文档:minio官方文档

minio 安装部署

minio 的部署有多种方式,本文介绍的是 Single-Node Single-Drive 的部署方式,其他部署方式,可参考官方文档,操作系统是 CentOS 7.9。

首先下载软件,并执行安装:

wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20240826153307.0.0-1.x86_64.rpm -O minio.rpm
sudo dnf install minio.rpm

创建用户,并授权,这里为了方便测试,直接使用了 root 用户,并且手动创建了一个目录 /obdata/minio 用作存储路径,这步可跳过

groupadd -r minio-user
useradd -M -r -g minio-user minio-user
chown minio-user:minio-user /mnt/disk1 /mnt/disk2 /mnt/disk3 /mnt/disk4

创建配置文件,在/etc/default目录下,创建 minio 文件:

$vim /etc/default/minio
# MINIO_ROOT_USER and MINIO_ROOT_PASSWORD sets the root account for the MinIO server.
# This user has unrestricted permissions to perform S3 and administrative API operations on any resource in the deployment.
# Omit to use the default values 'minioadmin:minioadmin'.
# MinIO recommends setting non-default values as a best practice, regardless of environment.MINIO_ROOT_USER="admin"
MINIO_ROOT_PASSWORD="xxxxxx"# MINIO_VOLUMES sets the storage volumes or paths to use for the MinIO server.
# The specified path uses MinIO expansion notation to denote a sequential series of drives between 1 and 4, inclusive.
# All drives or paths included in the expanded drive list must exist *and* be empty or freshly formatted for MinIO to start successfully.MINIO_VOLUMES="/obdata/minio"# MINIO_OPTS sets any additional commandline options to pass to the MinIO server.
# For example, `--console-address :9001` sets the MinIO Console listen port
MINIO_OPTS="--console-address :9002 --address :9001"
  • MINIO_ROOT_USER 和 MINIO_ROOT_PASSWORD: 分别代表minio服务的最高权限的账号和密码,可用于后续登陆页面和调用 API ;
  • MINIO_VOLUMES:指定给 minio 服务使用的存储卷或者路径;
  • MINIO_OPTS:启动 minio 的参数。这里修改了页面登录的端口为9002,以及 API 端口为9001。

在使用 rpm 安装之后,默认会创建一个 systemd 文件在 /usr/lib/systemd/system/minio.service,不过这里需要修改一些参数,因为使用root启动minio,所以User和Group都改成了root。

$vim /usr/lib/systemd/system/minio.service
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio[Service]
Type=notifyWorkingDirectory=/usr/localUser=root
Group=root
# ProtectProc=invisibleEnvironmentFile=-/etc/default/minio
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES# Let systemd restart this service always
Restart=always# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=1048576# Turn-off memory accounting by systemd, which is buggy.
MemoryAccounting=no# Specifies the maximum number of threads this process can create
TasksMax=infinity# Disable timeout logic and wait until process is stopped
TimeoutSec=0SendSIGKILL=no[Install]
WantedBy=multi-user.target# Built for ${project.name}-${project.version} (${project.name})

启动 minio,并查看状态

# 启动 minio
sudo systemctl start minio.service
# 查看 minio 状态
sudo systemctl status minio.service
# 查看 minio 日志
journalctl -f -u minio.service
# 设置开机自启动
sudo systemctl enable minio.service

至此,minio的部署工作已经完成,接着,需要在页面上登陆 minio,然后创建 Buckets 和 Path,用户后续的归档和备份

创建Buckets

通过IP:Port访问 minio,使用上面 MINIO_ROOT_USER 和 MINIO_ROOT_PASSWORD 指定的账户名和密码,访问 minio 服务,在 Buckets 栏创建新的 Buckets。

1730879019

Buckets 创建完成之后,点击进入 Buckets,再创建 Path,这里分别创建了obtest 和 obtestbak两个Path,分别用户归档和数据库的备份测试。

1730879044

配置完成之后,接着就是进入到OceanBase数据库,开启归档和备份。

设置归档

归档和备份,可以使用sys租户,也可以登录到具体要设置的租户中执行相应的设置,本文都是进入sys租户,为 obtest 租户进行的配置。

首先设置归档并发度(可选)

ALTER SYSTEM SET log_archive_concurrency = 2 TENANT = obtest;

接着设置归档目的端

ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=s3://obbak/obtest?host=11.161.xxx.xxx:9001&access_id=admin&access_key=xxxxxx' TENANT = obtest;

开启归档任务

ALTER SYSTEM ARCHIVELOG TENANT = obtest;

查看归档状态

obclient [oceanbase]> SELECT TENANT_NAME, LOG_MODE FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_TYPE = 'USER'\G;
*************************** 1. row ***************************
TENANT_NAME: obtestLOG_MODE: ARCHIVELOG
*************************** 2. row ***************************

可以看到归档已经开启,并且在 minio 对应的路径下,已经创建出了归档的文件

1730879052

设置备份

设置备份目的端

ALTER SYSTEM SET DATA_BACKUP_DEST='s3://obbak/obtestbak?host=11.161.xxx.xxx:9001&access_id=admin&access_key=xxxxxx' TENANT = obtest;

设置租户的备份并发度(可选)

ALTER SYSTEM SET ha_low_thread_score = 2 TENANT = obtest;

发起全量备份

ALTER SYSTEM BACKUP TENANT = obtest;

查看备份结果

obclient [oceanbase]> SELECT * FROM oceanbase.CDB_OB_BACKUP_JOB_HISTORY order by START_TIMESTAMP desc limit 1\G;
*************************** 1. row ***************************TENANT_ID: 1002JOB_ID: 2915INCARNATION: 1BACKUP_SET_ID: 66
INITIATOR_TENANT_ID: 1INITIATOR_JOB_ID: 66EXECUTOR_TENANT_ID: 1002PLUS_ARCHIVELOG: OFFBACKUP_TYPE: FULLJOB_LEVEL: USER_TENANTENCRYPTION_MODE: NONEPASSWD:START_TIMESTAMP: 2024-09-10 19:51:18.713433END_TIMESTAMP: 2024-09-10 19:54:12.258598STATUS: COMPLETEDRESULT: 0COMMENT:DESCRIPTION:PATH: s3://obbak/obtestbak?host=11.161.xxx.xxx:9001
1 row in set (0.010 sec)

另外,在 minio 对应的目录下,可以看到备份生成的文件

1730879066

以上就是 OceanBase 在推出支持兼容 S3 协议的对象存储之后,用 minio 测试 OceanBase 归档和备份的整个过程,如果要在实际生产中使用,建议 minio 使用分布式模

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/90736.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/90736.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/90736.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nacos-服务注册,服务发现(二)

Nacos健康检查 两种健康检查机制 Nacos作为注册中⼼, 需要感知服务的健康状态, 才能为服务调⽤⽅提供良好的服务。 Nacos 中提供了两种健康检查机制: 客⼾端主动上报机制: 客⼾端通过⼼跳上报⽅式告知服务端(nacos注册中⼼)健康状态, 默认⼼跳间隔5…

手写PPO_clip(FrozenLake环境)

参考:白话PPO训练 成功截图 算法组件 四大部分 同A2C相比,PPO算法额外引入了一个old_actor_model. 在PPO的训练中,首先使用old_actor_model与环境进行交互得到经验,然后利用一批经验优化actor_model,最后再将actor_m…

人形机器人指南(八)操作

八、环境交互与操作能力——人形机器人的“灵巧双手”环境交互与操作能力是人形机器人区别于移动平台的核心能力标志。通过仿生学设计的运动链与智能控制算法,机器人得以在非结构化环境中执行抓取、操纵、装配等复杂任务。本章将系统解析机械臂运动学架构、灵巧手设…

管理 GitHub Pages 站点的自定义域(Windows)

管理 GitHub Pages 站点的自定义域(Windows) 你可以设置或更新某些 DNS 记录和存储库设置,以将 GitHub Pages 站点的默认域指向自定义域。 谁可以使用此功能? GitHub Pages 在公共存储库中提供 GitHub Free 和 GitHub Free for organizations,在公共和私有存储库中提供 Gi…

【PCIe 总线及设备入门学习专栏 5.1.3 -- PCIe PERST# 时序要求】

文章目录 Overview 什么是PERST# 第一条要求 术语解释 要求含义 第二条要求 术语解释 要求含义 Perst 示例说明 过程如下 总结 Overview 首先我们看下 PCIe x协议对 PERST 的要求: A component must enter the LTSSM Detect state within 20 rms of the end of Fundamental R…

图像认知与OpenCV——图像预处理

目录 一、颜色加法 颜色加法 颜色加权加法 示例 二、颜色空间转换 RGB转Gray(灰度) RGB转HSV HSV转RGB 示例 三、灰度化 最大值法 平均值法 加权平均值法 四、图像二值化处理 阈值法 反阈值法 截断阈值法 低阈值零处理 超阈值法 OTSU…

Vue 3 组件通信全解析:从 Props 到 Pinia 的深入实践

引言 Vue 3 作为现代前端框架的代表之一,以其灵活性和高效性受到开发者的广泛喜爱。在 Vue 3 中,组件是构建用户界面的核心单元,而组件之间的通信则是实现动态交互和数据流动的关键环节。无论是简单的父子组件通信,还是复杂的跨组…

CodeBuddy IDE实战:用AI全栈能力快速搭建课程表网页

声明:本文仅是实践测评,并非广告 1.前言 在数字化开发的浪潮中,工具的革新往往是效率跃迁的起点。腾讯云 CodeBuddy IDE 是 “全球首个产设研一体 AI 全栈开发平台” ,它不仅打破了产品、设计与研发的职能壁垒,更重新…

11. HTML 中 DOCTYPE 的作用

总结H5 的声明HTML5 的 DOCTYPE 声明 HTML5 中的 <!DOCTYPE html> 声明用于告诉浏览器当前文档使用的是 HTML5 的文档类型。它必须是文档中的第一行内容&#xff08;在任何 HTML 标签之前&#xff09;&#xff0c;以确保浏览器能够正确地解析和渲染页面。DOCTYPE 的作用 …

Linux C 网络基础编程

基础知识在进行网络编程之前&#xff0c;我们需要简单回顾一下计算机网络五层模型的网络层和传输层&#xff0c;这两层在面向后端编程时用的最多。物理层和链路层过于底层&#xff0c;已经完全由内核协议栈实现&#xff0c;不再细述。这里假设读者已经对计算机网络有一个大致的…

循环神经网络--NLP基础

一、简单介绍NLP&#xff08;Natural Language Processing&#xff09;&#xff1a;自然语言处理是人工智能和语言领域的一个分支&#xff0c;它涉及计算机和人类语言之间的相互作用。二、NLP基础概念词表&#xff08;词库&#xff09;&#xff1a;文本数据集出现的所有单词的集…

【Android】约束布局总结(1)

三三要成为安卓糕手 零&#xff1a;创建布局文件方式 1&#xff1a;创建步骤ctrl alt 空格 设置根元素2&#xff1a;处理老版本约束布局 在一些老的工程中&#xff0c;constrainlayout可能没有办法被直接使用&#xff0c;这里需要手动添加依赖implementation androidx.const…

S7-200 SMART 数字量 I/O 组态指南:从参数设置到实战案例

在工业自动化控制中&#xff0c;PLC 的数字量输入&#xff08;DI&#xff09;和输出&#xff08;DO&#xff09;是连接传感器、执行器与控制系统的 “神经末梢”。西门子 S7-200 SMART 作为一款高性价比的小型 PLC&#xff0c;其数字量 I/O 的灵活组态直接影响系统的稳定性与响…

可调谐激光器原理与设计 【DFB 与 DBR 激光器剖析】

可调谐激光器原理与设计 【DFB 与 DBR 激光器剖析】1. 可调谐激光器的原理与分类简介2. DFB 与 DBR 激光器结构原理比较2.1 DFB&#xff08;Distributed Feedback Laser&#xff09;激光器2.2 DBR&#xff08;Distributed Bragg Reflector&#xff09;激光器2.3 DFB 激光器与 D…

【前端工程化】前端项目开发过程中如何做好通知管理?

在企业级后台系统中&#xff0c;通知是保障团队协作、监控系统状态和及时响应问题的重要手段。与 C 端产品不同&#xff0c;B 端更关注构建完成、部署状态、异常报警等关键节点的推送机制。 本文主要围绕通知场景、通知内容、通知渠道、自动化集成等方面展开&#xff0c;适用于…

MySQL 9.4.0创新版发布,AI开始辅助编写发布说明

2025 年 7 月 22 日&#xff0c;MySQL 9.4.0 正式发布。 作为一个创新版&#xff0c;MySQL 9.4.0 最大的创新应该就是使用 Oracle HeatWave GenAI 作为助手帮助编写版本发布说明了。难道下一步要开始用 AI 辅助编写数据库文档了&#xff1f; 该版本包含的核心功能更新以及问题修…

基于WebSockets和OpenCV的安卓眼镜视频流GPU硬解码实现

基于WebSockets和OpenCV的安卓眼镜视频流GPU硬解码实现 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff0c;觉得好请收藏。点击跳转到网站。 1. 项目概述 本项目旨在实现一个通过WebSockets接收…

人大金仓 kingbase 连接数太多, 清理数据库连接数

问题描述 kingbase 连接数太多, 清理数据库连接数 [rootFCVMDZSZNST25041 ~]# su root [rootFCVMDZSZNST25041 ~]# [rootFCVMDZSZNST25041 ~]# su kingbase [kingbaseFCVMDZSZNST25041 root]$ [kingbaseFCVMDZSZNST25041 root]$ ksql could not change directory to "/r…

SpringMVC相关基础知识

1. servlet.multipart 大小配置 SpringBoot 文件上传接口中有 MultipartFile 类型的文件参数,上传较大文件时报错: org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded; nested exception is java.lang.IllegalStateExceptio…

HCIP第一次实验报告

一.实验需求及拓扑图&#xff1a;二.实验需求分析根据提供的网络拓扑图和实验要求&#xff0c;以下是对实验需求的详细分析&#xff1a;R5作为ISP:R5只能进行IP地址配置&#xff0c;其所有接口均配置为公有IP地址。认证方式:R1和R5之间使用PPP的PAP认证&#xff0c;R5为主认证方…