OBServer启动恢复解析

本文由OceanBase研发工程师令川撰写,详细介绍了OceanBase进程observer的启动恢复逻辑,包括目录结构、WAL机制和数据恢复流程。文章阐述了在启动时如何将磁盘上的日志和数据恢复到内存,以及元数据和数据的组织格式。通过对slog和clog的理解,揭示了OceanBase如何保证数据完整性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:令川,一个在OceanBase专注打造稳定可靠好用存储引擎的研发同学。

OceanBase是一个单进程软件,进程名叫:observer。

本文简单介绍进程observer启动后的逻辑,里面包含进程恢复的逻辑。本文对排查进程observer启动失败原因有一定参考作用。

目录结构

在标准配置下,observer进程的执行目录结构如下所示,介绍其中几个比较关键的目录和其中的文件内容。

1.bin目录下存放是observer以及一些其他工具的二进制文件

2.etc目录下最主要的是的配置项文件,尤其是进程的一些启动参数

3.log目录下是进程运行日志,通常用于排查问题或反映系统运行的记录。

4.store目录下存放的是存储引擎关系最紧密的日志和数据文件了。它们的目录通常会是一个软连接,用于单独挂载磁盘。

日志目录有3个,分别是clog/ilog/slog。clog是数据的commit log或redo log。ilog是clog的索引,暂时可以不用了解。slog是存储引擎的redo log,是元数据的日志。三种日志的文件都是一组以单调递增序号为名字的文件。

sstable目录顾名思义,存放的就是我们的数据啦。OceanBase和其他多文件数据库不同,使用统一的2M块来组织和管理数据和元数据。因此在sstable目录下,会看到一个名为block_file的大文件。

$ob_dir
├── bin
│   ├── ob_admin
│   ├── obproxy
│   └── observer
├── etc
│   ├── io_resource.conf
│   └── observer.config.bin
├── lib
│   ├── libmysqlclient.so.18
│   └── libstdc++.so.6
├── log
│   ├── election.log
│   ├── observer.log
│   └── rootservice.log
└── store
    ├── clog -> /data/1/clog
    │   └── 1
    ├── ilog -> /data/1/clog
    │   └── 1
    ├── slog -> /data/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值