---
title: "Fork Database - OceanBase AI 数据库 V4.6.2 | OceanBase 文档中心"
description: Fork Database 说明 本功能在当前版本为实验特性。 Fork Database 基于源数据库在某个快照时刻的全量数据，创建一个全新的目标数据库。目标数据库包含源数据库中所有用户表及其数据，在逻辑上等价于源数据库在该快照时刻的完整副本。 Fork Database 底层基于 Fork Table 实现，对源…
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*w3cwQYKZAJwAAAAAHhAAAAgAeiGDAQ/original) OceanBase AI 数据库V 4.6.2

# Fork Database

更新时间：2026-09-15 17:00:16

[编辑](https://github.com/oceanbase/oceanbase-database-ai/edit/V4.6.2/zh-CN/380.data-branching/300.data-branching-fork-db.md)

#### 说明

本功能在当前版本为实验特性。

Fork Database 基于源数据库在某个快照时刻的全量数据，创建一个全新的目标数据库。目标数据库包含源数据库中所有用户表及其数据，在逻辑上等价于源数据库在该快照时刻的完整副本。

Fork Database 底层基于 Fork Table 实现，对源库中的每张用户表依次执行 Fork，并保证库内所有表共享同一个快照版本，确保跨表数据的一致性。

## 语法

```sql
FORK DATABASE source_database TO destination_database;

```

## 参数说明

| 参数 | 说明 |
| --- | --- |
| `source_database` | 源数据库名 |
| `destination_database` | 目标数据库名 |

## 示例场景

### 创建库副本并进行读写

```sql
-- 创建库副本
FORK DATABASE db_src TO db_fork;

-- 目标库可查询
USE db_fork;
SELECT count(*) FROM t1;

-- 目标库可写入（写入不会影响源库 db_src）
INSERT INTO t1 VALUES (...);

```

### 整库分支与版本管理

```sql
-- 1) 基于主版本创建分支版本（数据基线为 fork 时刻快照）
FORK DATABASE db_prod TO db_prod_branch_v2;

-- 2) 在分支库上进行实验性变更
-- ... 对 db_prod_branch_v2 中的表执行 DML/业务流程 ...

-- 3a) 快速回滚：停止使用分支版本
DROP DATABASE db_prod_branch_v2;

```

### 空库 fork

```sql
CREATE DATABASE db_empty;
FORK DATABASE db_empty TO db_empty_fork;
-- 目标库 db_empty_fork 为空库，不含任何表

```

## 核心特性

#### 说明

V4.6.2.1 版本起支持并行 Fork 和后台并行处理功能。

| 特性 | 说明 |
| --- | --- |
| 库级克隆 | 一次性克隆源库中所有用户表及数据，无需逐表操作 |
| 快照版本一致 | 库内所有表的快照版本相同，保证跨表数据一致性 |
| 独立可写 | 目标库可独立执行读写操作和 DDL，不影响源库 |
| 在线执行 | Fork 过程中源库可以继续进行 DML 读写 |
| 渐进可用 | 目标库创建后即可访问，后台数据组织的完善不影响快照语义和可用性 |
| 继承源库属性 | 目标库继承源库的字符集（charset）、排序规则（collation）等数据库属性 |
| 多次 Fork | 同一个源库可多次 Fork 到不同目标库，每次使用各自的快照时刻，各目标库相互独立 |
| 并行 Fork | 同一个源库可同时 Fork 到多个不同目标库 |
| 后台并行处理 | 后台数据处理采用多线程并行执行，提升 Fork 整体完成效率 |
| 支持空库 | 支持 Fork 空数据库，创建出的目标库同样为空库 |

## 权限说明

发起 Fork Database 需要同时具备：

- 源库库级 `SELECT` 权限（全局或源库库级权限可以满足；仅拥有源库中各表的表级 `SELECT` 不满足要求）
 - 目标库的 `CREATE` 权限

Fork 只复制 schema 和数据，不复制源库上的授权。目标库按照普通新建对象判断权限。Fork 只能在当前租户内执行，不支持 sys tenant。

## 操作互斥

Fork Database 执行期间，源库及其中的表会与 DDL 操作互斥，例如 `DROP TABLE` 和 `DROP DATABASE`。Fork 期间，源库仍可继续进行 DML 读写。

## 使用限制

| 对象或场景 | 处理方式 |
| --- | --- |
| `oceanbase`、`mysql` 等系统或内部库 | 不支持 |
| Routine（存储过程、函数） | Fork 时忽略 |
| Package | Fork 时忽略 |
| Trigger | Fork 时忽略 |
| Sequence | 不支持 |
| Outline | Fork 时忽略 |

Fork Database 中的用户表还需满足 Fork Table 对表类型、索引类型和存储格式的相关要求，详见 [Fork Table](https://www.oceanbase.com/docs/common-oceanbase-database-ai-1000000006779060)。

Fork Database 只处理用户基表，视图等其他非基表对象会被忽略。

## 注意事项

- Fork Database 克隆的是源库中的所有**用户表**及其数据。
 - 目标库创建后与源库完全独立，对任一方的修改不会反映到另一方。
 - 源库的 DDL 操作（如新增表、修改表结构）不会自动同步到目标库。
 - Fork 操作不会影响源库的正常运行。

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