---
title: slog 升级前检查操作流程-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 slog 升级前检查操作流程相关的常见问题和使用技巧，帮助您快速解决 slog 升级前检查操作流程的难题。
---
切换语言

- 简体中文
- English

划线反馈

# slog 升级前检查操作流程

更新时间：2024-03-30 12:51

适用版本： V3.2.x 内容类型：TechNote  

slog 日志如果出现数据错误校验失败，会直接导致 OBServer 节点重启失败。升级期间做节点替换的流程复杂，人工成本很高。因此，最好可以在升级前检查 slog 文件的数据，及时发现问题并进行规避。本文介绍如何在升级前对 slog 日志文件进行检查，以及发现数据问题后如何规避。

## 准备工作

将 ob_admin 工具放置到 oceanbase 执行目录下的 bin 文件夹内。

## 检查

1. 确认 `store/{cluster}/slog` 目录下的 slog 文件数量，数量不会很多，通常只有 1 个。
 2. 用 ob_admin 工具扫描每个 slog 文件。

   #### 注意

   文件路径用全路径。

   ```shell
   ./bin/ob_admin slog_tool -f /home/admin/oceanbase/store/{cluster}/slog/1

   ```

   工具输出： ![1](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/storage/check-the-operation-process-before-upgrading-the-slog-1.png)
 3. 全部扫描完成后，在 ob_admin 的日志文件中检查是否有数据错误。

   ```shell
   grep -F 'ob_storage_log_reader' ob_admin.log* | grep -v INFO

   ```

   若有数据错误，会返回 4052 或是 4103 相关的错误日志，类似的日志如下：

   ![2](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/storage/check-the-operation-process-before-upgrading-the-slog-2.png)

## 规避

发现数据错误时，请第一时间联系技术支持人员，一起帮助执行下面的规避操作。

1. 找到检查过程中所有出错的 slog 文件号，记录其中最大的文件号为 `max_file_id`。
 2. 使用 ob_admin 工具确认重启回放位点。若输出的回放位点 `replay_start_point` 中的文件号大于第 1 步中的 `max_file_id`，则可以不需要做规避，节点可以正常重启。

   ```bash
   ./bin/ob_admin dumpsst -d super_block -q

   succ to open, filename=ob_admin.log, fd=3, wf_fd=2
   SuperBlock: {header:{version:3, magic:1018}, content:{Type:"ObServerSuperBlock", create_timestamp:1657266582459378, modify_timestamp:1657279843656256, macro_block_size:2097152, total_macro_block_count:5120, total_file_size:10737418240, replay_start_point:ObLogCursor{file_id=1, log_id=69483, offset=39088128}, super_block_meta:{macro_block_id:[0-357](ver=1,mode=0,seq=0)}, tenant_config_meta:{macro_block_id:[0-358](ver=1,mode=0,seq=0)}, block_mgr_meta:{macro_block_id:[0-359](ver=1,mode=0,seq=0)}, pg_log_archive_meta:{macro_block_id:[0-360](ver=1,mode=0,seq=0)}}}

   ```
 3. 确认集群是否可以进行合并，避免影响业务。可以的情况下发起一次合并。

   ```bash
   alter system major freeze;

   ```
 4. 再次使用 ob_admin 工具，确认最新的回放位点 `replay_start_point`。保证回放的起始文件大于第一步中的 `max_file_id` （若没有生成新的 slog 文件，则需要多发起几次合并），并对新生成的文件再次使用 ob_admin 扫描一次，避免再次发生数据错误。两点确认无误后，节点可以正常重启。

## 适用版本

OceanBase 数据库 V3.2 版本。

Previous

[NFS hang 以后对应的机器系统负载变高的原因和解决方法](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000001275791)

Next

[如何从 low_lock 日志中获取持有锁的线程](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000002395313) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
