Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve backup/restore doc #36

Merged
merged 2 commits into from
Jun 5, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions clients/restful-api/graphs.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,10 +135,6 @@ GET http://localhost:8080/graphs/hugegraph/mode
#### 5.3.2 设置某个图的模式. **该操作需要管理员权限**

##### Params

- token: 默认为`162f7848-0b6d-4faf-b557-3a0797869c55`

##### Method & Url

```
Expand Down
4 changes: 2 additions & 2 deletions clients/restful-api/rebuild.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ PUT http://localhost:8080/graphs/hugegraph/jobs/rebuild/indexlabels/personByCity

> 可以通过`GET http://localhost:8080/graphs/hugegraph/tasks/1`(其中"1"是task_id)来查询异步任务的执行状态,更多[异步任务RESTful API](task.md)
#### 6.2.2 重建VertexLabel索引
#### 6.2.2 VertexLabel对应的全部索引重建

##### Method & Url

Expand All @@ -52,7 +52,7 @@ PUT http://localhost:8080/graphs/hugegraph/jobs/rebuild/vertexlabels/person

> 可以通过`GET http://localhost:8080/graphs/hugegraph/tasks/2`(其中"2"是task_id)来查询异步任务的执行状态,更多[异步任务RESTful API](task.md)
#### 6.2.3 重建EdgeLabel索引
#### 6.2.3 EdgeLabel对应的全部索引重建

##### Method & Url

Expand Down
110 changes: 81 additions & 29 deletions guides/backup-restore.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,37 +18,9 @@ Restore 有两种模式:
- Merging 模式,将 Backup 导出的元数据和图数据导入到另一个已经存在元数据或者图数据的图中,过程中元数据的 ID 可能发生改变,顶点和边的 ID 也会发生相应变化。
- 可用于合并图

## API

#### Backup

Backup 使用元数据和图数据的相应的Get RESTful API 导出,并未增加新的 API。

#### Restore

Restore 存在两种不同的模式: Restoring 和 Merging。另外,还有非 Restore 模式,区别如下:

- None 模式,元数据和图数据的写入属于正常状态,可参见功能说明。特别的:
- 元数据(schema)创建时不允许指定 ID
- 图数据(vertex)在 id strategy 为 Automatic 时,不允许指定 ID
- Restoring 模式,恢复到一个新图中,特别的:
- 元数据(schema)创建时允许指定 ID
- 图数据(vertex)在 id strategy 为 Automatic 时,允许指定 ID
- Merging 模式,合并到一个已存在元数据和图数据的图中,特别的:
- 元数据(schema)创建时不允许指定 ID
- 图数据(vertex)在 id strategy 为 Automatic 时,允许指定 ID

正常情况下,图模式为 None,当需要 Restore 图时,需要根据需要临时修改图模式为 Restoring 模式或者 Merging 模式,并在完成 Restore 时,恢复图模式为 None。

设置图模式的 RESTful API 如下:

```
http://localhost:8080/graphs/hugegraph/mode
```

## 使用方法

可以使用hugegraph-tools进行图的备份和恢复
可以使用[hugegraph-tools](/quickstart/hugegraph-tools.md)进行图的备份和恢复

#### Backup

Expand Down Expand Up @@ -95,3 +67,83 @@ bin/hugegraph graph-mode-set -m NONE
#### 帮助

备份和恢复命令的详细使用方式可以参考[hugegraph-tools文档](/quickstart/hugegraph-tools.md)。

## Backup/Restore使用和实现的API说明

#### Backup

Backup 使用`元数据`和`图数据`的相应的 list(GET) API 导出,并未增加新的 API。

#### Restore

Restore 使用`元数据`和`图数据`的相应的 create(POST) API 导入,并未增加新的 API。

Restore 时存在两种不同的模式: Restoring 和 Merging,另外,还有常规模式 NONE(默认),区别如下:

- None 模式,元数据和图数据的写入属于正常状态,可参见功能说明。特别的:
- 元数据(schema)创建时不允许指定 ID
- 图数据(vertex)在 id strategy 为 Automatic 时,不允许指定 ID
- Restoring 模式,恢复到一个新图中,特别的:
- 元数据(schema)创建时允许指定 ID
- 图数据(vertex)在 id strategy 为 Automatic 时,允许指定 ID
- Merging 模式,合并到一个已存在元数据和图数据的图中,特别的:
- 元数据(schema)创建时不允许指定 ID
- 图数据(vertex)在 id strategy 为 Automatic 时,允许指定 ID

正常情况下,图模式为 None,当需要 Restore 图时,需要根据需要临时修改图模式为 Restoring 模式或者 Merging 模式,并在完成 Restore 时,恢复图模式为 None。

实现的设置图模式的 RESTful API 如下:

##### 查看某个图的模式. **该操作需要管理员权限**

###### Method & Url

```
GET http://localhost:8080/graphs/{graph}/mode
```

###### Response Status

```json
200
```

###### Response Body

```json
{
"mode": "NONE"
}
```

> 合法的图模式包括:NONE,RESTORING,MERGING

##### 设置某个图的模式. **该操作需要管理员权限**

###### Method & Url

```
PUT http://localhost:8080/graphs/{graph}/mode
```

###### Request Body

```
"RESTORING"
```

> 合法的图模式包括:NONE,RESTORING,MERGING

###### Response Status

```json
200
```

###### Response Body

```json
{
"mode": "RESTORING"
}
```