项目简介
MiniOB是由OceanBase与华中科技大学联合开发的数据库管理系统,专为初学者打造的入门级数据库内核实践工具。其目标是让不熟悉数据库设计与实现的同学能快速了解并深入学习数据库内核。经过相关训练,使用者能了解各数据库内核模块功能及其关联,设计出高效的SQL。此项目主要面向在校学生,诸多模块做了简化处理,不考虑并发操作,代码仅供学习,不考虑安全特性。
项目的主要特性和功能
- 数据库管理:可创建、删除、打开和关闭数据库,同步数据库状态以保证数据一致性。
- 表管理:能创建和删除表,对表记录进行插入、更新和删除操作,支持带条件过滤的表记录扫描。
- 索引管理:可创建和删除索引,对索引项进行插入、删除和查找操作,支持B+树索引结构。
- 事务管理:支持基本事务操作,如插入、删除和提交,提供事务的可见性判断。
- 日志和度量:记录系统日志,支持日志旋转和多级别日志输出,收集并报告系统性能度量指标。
- 配置管理:支持INI文件格式的配置解析和处理,具备动态配置更新功能。
- 网络通信:支持基于TCP和Unix套接字的客户端 - 服务器通信,提供客户端和服务器的实现。
- 单元测试:提供丰富的单元测试用例,使用Google Test框架确保各模块功能正确。
安装使用步骤
1. 环境准备
- 操作系统:推荐使用Linux或macOS。
- 编译工具:确保安装了CMake和GCC/Clang。
- 依赖库:安装必要的依赖库,如libevent、Google Test等。
2. 进入源码目录
bash
cd miniob
3. 编译项目
bash
mkdir build
cd build
cmake ..
make
4. 运行测试
bash
cd test
./run_tests.sh
5. 启动服务器
bash
cd src/observer
./observer
6. 使用客户端连接服务器
bash
cd src/obclient
./client
7. 执行SQL操作
在客户端中输入SQL语句,示例如下:
sql
CREATE TABLE test (id INT, name VARCHAR(255));
INSERT INTO test VALUES (1, 'Alice');
SELECT * FROM test;
8. 查看日志和度量
日志文件通常位于/var/log/miniob/
目录下,度量数据可通过配置的报告器查看。
9. 关闭服务器
在客户端中输入exit
或bye
命令,或者直接终止服务器进程。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】