---
title: "创建和更新心跳表 | OceanBase 文档中心"
description: 创建和更新心跳表 本文为您介绍 MySQL 数据库和 PostgreSQL 数据库作为源端进行数据迁移时，如何创建和更新心跳表。 背景信息 您在新建 MySQL 或 PostgreSQL 数据源时，如果勾选了 增量同步时，允许 OMS 自动向该实例写入心跳数据，以解决源端在无业务写入场景下的高延时问题 ，并且填写的数…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*L03BS6f-o40AAAAAAAAAAAAADiGDAQ/original) 迁移服务 OMSV 4.2.1 社区版

# 创建和更新心跳表

更新时间：2026-04-14 15:40:37

[编辑](https://github.com/oceanbase/oms-doc/edit/V4.2.1/zh-CN/600.data-migration/1600.migration-function-introduction/700.create-heartbeat.md)  

本文为您介绍 MySQL 数据库和 PostgreSQL 数据库作为源端进行数据迁移时，如何创建和更新心跳表。

## 背景信息

您在新建 MySQL 或 PostgreSQL 数据源时，如果勾选了 **增量同步时，允许 OMS 自动向该实例写入心跳数据，以解决源端在无业务写入场景下的高延时问题**，并且填写的数据库用户具备创建表、写表的权限，OceanBase 迁移服务（OceanBase Migration Service，OMS）社区版会向对应的数据库中创建心跳表，并以 5 秒/次的频率更新心跳表。

如果您不需要 OMS 社区版自动创建并更新的心跳表，可以自行创建库表，并配置 crontab 任务，定时对源端数据库执行 UPDATE 操作。

## 前提条件

已赋予源端数据库账号创建数据库或者 Schema，以及读写心跳表的权限。

### MySQL 数据库

- 赋予数据库用户创建表的权限

  ```sql
  GRANT CREATE ON drc.heartbeat TO '<user_name>';

  ```
 - 赋予数据库用户写表的权限

  ```sql
  GRANT INSERT, UPDATE, DELETE ON drc.heartbeat TO '<user_name>';

  ```

### PostgreSQL 数据库

- 赋予数据库用户创建表的权限

  ```sql
  GRANT CREATE ON SCHEMA public TO '<user_name>';

  ```sql
  GRANT INSERT, UPDATE, DELETE ON oms_postgres_heartbeat TO '<user_name>';

  ```

## MySQL 数据库创建和更新心跳表

- 创建心跳表

  ```sql
  CREATE DATABASE IF NOT EXISTS drc;
  CREATE TABLE IF NOT EXISTS drc.heartbeat (`id` smallint(6) NOT NULL DEFAULT 1,`ts` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB;

  ```
 - 插入数据

  ```sql
  INSERT INTO drc.heartbeat VALUES (1,0) ON DUPLICATE KEY UPDATE ts=0;

  ```
 - 更新数据

  ```sql
  UPDATE drc.heartbeat SET ts=%d WHERE id=1;

  ```

## PostgreSQL 数据库创建和更新心跳表

- 创建心跳表

  ```sql
  CREATE TABLE IF NOT EXISTS public.oms_postgres_heartbeat (id int NOT NULL DEFAULT 1, ts int DEFAULT NULL, PRIMARY KEY (id));

  ```sql
  INSERT INTO public.oms_postgres_heartbeat VALUES (1,0) ON CONFLICT (id) DO UPDATE SET ts=0;

  ```sql
  UPDATE public.oms_postgres_heartbeat SET ts=%d WHERE id=1;

  ```

 上一篇 下一篇 ![有帮助](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) 咨询热线
