PullRequest: 814 V4.0.0 merge from enterprise:add line limit+update deploy nfs+dump related docs

This commit is contained in:
obdev 2023-09-18 07:10:26 +00:00 committed by ob-robot
parent 871c51988c
commit c30952ed34
13 changed files with 251 additions and 116 deletions

View File

@ -30,8 +30,6 @@ table_definition:
REFERENCES reference_definition
[match_action][opt_reference_option_list]
| {INDEX | KEY} [index_name] index_desc
| FULLTEXT [INDEX | KEY]
[index_name] fulltext_index_desc
column_definition_list:
column_definition [, column_definition ...]
@ -56,9 +54,6 @@ opt_reference_option_list:
reference_option:
ON {DELETE | UPDATE} {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}
fulltext_index_desc:
(column_desc_list) CTXCAT(column_desc_list) [index_option_list]
column_desc_list:
column_desc [, column_desc ...]

View File

@ -1,6 +1,6 @@
# About table structure modification
This topic describes how to [rename a table](#example%201-1%20rename%20a%20table), [rename a column](#example%201-2%20rename%20a%20column), [modify a column type](#example%201-3%20change%20the%20type%20of%20a%20column), [rename a column and change the column type](#example%201-4%20rename%20a%20column%20and%20change%20the%20column%20type%20at%20the%20same%20time), [change a normal column to an auto-increment column](#example%201-5%20change%20a%20normal%20column%20to%20an%20auto%20increment%20column), [add a column](#example%201-6%20add%20a%20column), [delete a column](#example%201-7%20drop%20a%20column), [add a primary key](#example%201-8%20add%20a%20primary%20key), [modify a primary key](#example%201-9%20modify%20a%20primary%20key), [delete a primary key](#example%201-10%20drop%20a%20primary%20key), [add a foreign key](#example%201-11%20add%20a%20foreign%20key), [delete a foreign key](#example%201-12%20drop%20a%20foreign%20key), [add a CHECK constraint](#example%201-13%20add%20a%20check%20constraint), and [modify a table partition](#example%202-modify%20the%20partitioning%20rule%20of%20a%20table).
This topic describes how to **rename a table**, **rename a column**, **modify a column type**, **rename a column and change the column type**, **change a normal column to an auto-increment column**, **add a column**, **delete a column**, **add a primary key**, **modify a primary key**, **delete a primary ke**y, **add a foreign key**, **delete a foreign key**, **add a CHECK constraint**, and **modify a table partition**.
## Prerequisites

View File

@ -31,7 +31,6 @@ table_definition:
| [CONSTRAINT [constraint_name]] PRIMARY KEY index_desc
| [CONSTRAINT [constraint_name]] UNIQUE {INDEX | KEY} [index_name] index_desc
| {INDEX | KEY} [index_name] index_desc
| FULLTEXT [INDEX | KEY] [index_name] fulltext_index_desc
column_definition_list:
column_definition [, column_definition ...]
@ -44,9 +43,6 @@ column_definition:
index_desc:
(column_desc_list) [index_type] [index_option_list]
fulltext_index_desc:
(column_desc_list) CTXCAT(column_desc_list) [index_option_list]
column_desc_list:
column_desc [, column_desc ...]

View File

@ -32,6 +32,7 @@
| 类型 | 最大限制 |
|-------|---------|
| 行长度 | 1.5M 字节 |
| 行数 | 无限制 |
| 列数 | 4096 列 |
| 索引个数 | 128 个 |
| 索引总列数 | 512 列 |

View File

@ -30,8 +30,6 @@ table_definition:
REFERENCES reference_definition
[match_action][opt_reference_option_list]
| {INDEX | KEY} [index_name] index_desc
| FULLTEXT [INDEX | KEY]
[index_name] fulltext_index_desc
column_definition_list:
column_definition [, column_definition ...]
@ -56,9 +54,6 @@ opt_reference_option_list:
reference_option:
ON {DELETE | UPDATE} {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}
fulltext_index_desc:
(column_desc_list) CTXCAT(column_desc_list) [index_option_list]
column_desc_list:
column_desc [, column_desc ...]

View File

@ -1,6 +1,6 @@
# 关于表结构的修改
本文主要介绍在 OceanBase 数据库 [修改表名](#示例%201-1%20修改表名)[修改列名](#示例%201-2%20修改列名)[修改列类型](#示例%201-3%20修改列类型)[同时修改列名和列类型](#示例%201-4%20同时修改列名和列类型)[普通列修改为自增列](#示例%201-5%20普通列修改为自增列)[增加列](#示例%201-6%20增加列)[删除列](#示例%201-7%20删除列)[添加主键](#示例%201-8%20添加主键)[修改主键](#示例%201-9%20修改主键)[删除主键](#示例%201-10%20删除主键)[添加外键](#示例%201-11%20添加外键)[删除外键](#示例%201-12%20删除外键)[添加 CHECK 约束](#示例%201-13%20添加%20check%20约束)[修改表分区](#示例%202%20修改表分区)
本文主要介绍在 OceanBase 数据库 修改表名、修改列名、修改列类型、同时修改列名和列类型、普通列修改为自增列、增加列、删除列、添加主键、修改主键、删除主键、添加外键、删除外键、添加 CHECK 约束、修改表分区。
>**说明**
>

View File

@ -31,7 +31,6 @@ table_definition:
| [CONSTRAINT [constraint_name]] PRIMARY KEY index_desc
| [CONSTRAINT [constraint_name]] UNIQUE {INDEX | KEY} [index_name] index_desc
| {INDEX | KEY} [index_name] index_desc
| FULLTEXT [INDEX | KEY] [index_name] fulltext_index_desc
column_definition_list:
column_definition [, column_definition ...]
@ -44,9 +43,6 @@ column_definition:
index_desc:
(column_desc_list) [index_type] [index_option_list]
fulltext_index_desc:
(column_desc_list) CTXCAT(column_desc_list) [index_option_list]
column_desc_list:
column_desc [, column_desc ...]

View File

@ -1,8 +1,8 @@
# 部署 NFS
执行备份操作前,如果需要使用 NFS 软件作为备份目的地,可参考本节内容部署 NFS
选择备份介质时,建议使用 OSS 作为备份的目的端OSS 作为无状态的对象存储,比有状态的 NFS4 有更高的稳定性
一般建议使用 OSS 或者专用的 NFS 硬件设备,可以考虑使用阿里云的 NFS 硬件设备。
如果需要使用 NFS 作为备份目的端,可参考本节内容部署 NFS。NFS 分软件和硬件两种,建议专用的 NFS 硬件设备。
## 注意事项
@ -10,13 +10,18 @@
* 由于 OceanBase 数据库备份的并发控制需依赖 NFS4 的文件锁功能,故在挂载 NFS 时,需使用 NFS 4.1 及以上版本。
* 在使用 NFS 作为备份介质时,必须保证所有 OBServer 都挂载了同一个服务器的 NFS。同时为保证备份的顺利进行务必使用本文档中建议的参数挂载 NFS。挂载 NFS 具体操作请参见 [部署 NFS 客户端](#部署%20nfs%20客户端)
* 在使用 NFS 作为备份介质时,必须保证所有 OBServer 都挂载了同一个服务器的 NFS。同时为保证备份的顺利进行务必使用本文档中建议的参数挂载 NFS。挂载 NFS 具体操作请参见 **部署 NFS 客户端**
* 在重启 OBServer 时,需要先启动 NFS再启动 OBServer。
* 添加新的机器后,在启动 OBServer 前,需要保证新的机器挂载 NFS 成功或者可以备份到其他介质。
## 部署 NFS 服务器端
## 部署 NFS 软件的服务器端
<main id="notice" type='notice'>
<h4>注意</h4>
<p>如果您使用的是 NFS 硬件设备,请跳过本操作,直接部署 NFS 客户端。</p>
</main>
1. 登录 NFS 服务器。

View File

@ -2,29 +2,25 @@
#docslug#/oceanbase-database/oceanbase-database/V4.0.0/trigger-dump-manually-1
可以通过 `ALTER SYSTEM MINOR FREEZE` 命令手动触发转储。
系统租户可以通过 `ALTER SYSTEM MINOR FREEZE` 命令手动触发转储。手动转储支持租户级别、Zone 级别、Server 级别和 Tablet 级别。
## 系统租户发起转储
## 操作步骤
系统租户可以对所有租户或指定的一个或多个租户发起转储操作。
1. 使用 `root` 用户登录到数据库的 `sys` 租户。
1. 使用 `root` 用户登录集群的 `sys` 租户。
2. 根据业务需求,选择合适的转储操作。
* 租户级别的转储
可以对所有租户、指定的一个或多个租户进行转储。
SQL 语句如下:
可以对所有租户、指定的一个或多个租户进行转储SQL 语句如下。
```sql
obclient> ALTER SYSTEM MINOR FREEZE TENANT [=] ALL | tenant_name [, tenant_name ...];
ALTER SYSTEM MINOR FREEZE TENANT [=] ALL | tenant_name [, tenant_name ...];
```
示例:
```sql
```shell
obclient> ALTER SYSTEM MINOR FREEZE TENANT =ALL;
obclient> ALTER SYSTEM MINOR FREEZE tenant = sys;
@ -33,29 +29,42 @@
```
>**说明**
>
>如果不指定租户,执行 `ALTER SYSTEM MINOR FREEZE` 语句,则表示对本租户进行转储。
<main id="notice" type='explain'>
<h4>说明</h4>
<p>如果不指定租户,执行 <code>ALTER SYSTEM MINOR FREEZE</code> 语句,则表示对 <code>sys</code> 租户本身进行转储。</p>
</main>
* Zone 级别的转储
可以对指定的一个或多个 Zone 进行转储SQL 语句如下。
```sql
ALTER SYSTEM MINOR FREEZE ZONE [=] zone_name [, zone_name ...];
```
示例:
```shell
obclient> ALTER SYSTEM MINOR FREEZE ZONE = zone1;
```
* Server 级别的转储
可以对指定的一个或多个 OBServer 进行转储。
SQL 语句如下:
可以对指定的一个或多个 OBServer 进行转储SQL 语句如下。
```sql
obclient> ALTER SYSTEM MINOR FREEZE SERVER = ('ip:port' [, 'ip:port'...]);
ALTER SYSTEM MINOR FREEZE SERVER = ('ip:port' [, 'ip:port'...]);
```
示例:
```sql
```shell
obclient> ALTER SYSTEM MINOR FREEZE SERVER = ('10.10.10.1:2882');
```
* 分区级别的转储
* Tablet 级别的转储
可以对指定租户的指定分区进行转储。
可以对指定租户的指定 Tablet 进行转储。
SQL 语句:
@ -63,7 +72,7 @@
obclient> ALTER SYSTEM MINOR FREEZE TENANT [=] tenant_name TABLET_ID = tid;
```
其中,`tid` 表示指定租户的分区名,指定租户的分区名可以由 `sys` 租户通过查询 `oceanbase.CDB_OB_TABLET_TO_LS` 视图获取。
其中,`tenant_name` 为指定租户的租户名;`tid` 为指定日志流中的 Tablet ID租户的 Tablet ID 可以通过查询 `oceanbase.CDB_OB_TABLET_TO_LS` 视图获取。
示例:
@ -71,57 +80,9 @@
obclient> ALTER SYSTEM MINOR FREEZE tenant = t1 tablet_id = 60000;
```
3. 发起转储后,您可以查看转储情况,具体操作请参见 [查看转储进度](4.view-dump-information.md)。
## 后续操作
## 普通租户发起转储
普通租户可以对本租户发起转储操作。
1. 租户管理员登录数据库。
2. 根据业务需求,选择合适的转储操作。
* 对本租户发起转储
```sql
obclient> ALTER SYSTEM MINOR FREEZE;
```
* 对本租户指定 Server 发起转储
可以指定本租户的一个或多个 OBServer 进行转储。
SQL 语句如下:
```sql
obclient> ALTER SYSTEM MINOR FREEZE SERVER = ('ip:port' [, 'ip:port'...]);
```
示例:
```sql
obclient> ALTER SYSTEM MINOR FREEZE SERVER = ('10.10.10.1:2882');
```
* 对本租户指定分区发起转储
可以对本租户内指定的分区进行转储。
SQL 语句:
```sql
obclient> ALTER SYSTEM MINOR FREEZE TABLET_ID = tid;
```
其中,`tid` 表示本租户的分区名,本租户的分区名可以通过查询 `oceanbase.DBA_OB_TABLET_TO_LS``sys.DBA_OB_TABLET_TO_LS` 视图获取。
示例:
```sql
obclient> ALTER SYSTEM MINOR FREEZE tablet_id = 50005;
```
3. 发起转储后,您可以查看转储进度,具体操作请参见 [查看转储进度](4.view-dump-information.md)。
发起转储后,您可以查看转储情况,具体操作请参见 [查看转储进度](4.view-dump-information.md)。
## 相关阅读

View File

@ -2,22 +2,208 @@
#docslug#/oceanbase-database/oceanbase-database/V4.0.0/view-dump-information
触发转储后,您可以通过视图查看转储进度。
触发转储后,您可以通过视图查看转储进度和转储历史
## 操作步骤
## 查看转储进度
1. 管理员登录到对应的租户。
1. 使用 `root` 用户登录集群的 `sys` 租户。
2. 查看转储进度和转储历史
2. 查看转储进度,可以查看转储未完成的数据量及预期完成时间等信息
* 查看转储进度。
`GV$OB_TABLET_COMPACTION_PROGRESS` 视图用于展示 Tablet 级别 Compaction 任务的进度信息,且仅展示正在运行的任务,任务结束后就不再展示。具体查询语句如下:
```sql
obclient> SELECT * FROM oceanbase.GV$OB_TABLET_COMPACTION_PROGRESS;
```
```shell
obclient> SELECT * FROM oceanbase.GV$OB_TABLET_COMPACTION_PROGRESS WHERE TYPE='MINI_MERGE'\G;
*************************** 1. row ***************************
SVR_IP: xx.xx.xx.xx
SVR_PORT: 2401
TENANT_ID: 1002
TYPE: MINI_MERGE
LS_ID: 1001
TABLET_ID: 1152921504606847235
COMPACTION_SCN: 1680514780195130031
TASK_ID: Y9610BA2DA3E-0005F7FD6E1FE0FF-0-0
STATUS: NODE_RUNNING
DATA_SIZE: 31890729
UNFINISHED_DATA_SIZE: 3351030
PROGRESSIVE_COMPACTION_ROUND: 1
CREATE_TIME: 2023-04-03 17:49:17.278506
START_TIME: 2023-04-03 17:51:57.953999
ESTIMATED_FINISH_TIME: 2023-04-03 23:32:25.969930
1 row in set
```
查询结果中的部分字段说明如下:
* `TYPE`:表示 Compaction 任务的类型。
* `MINOR_MERGE`:表示 Minor多个 Mini SSTable 合成一个 Minor SSTable。
* `MINI_MERGE`:表示转储,冻结 MemTable 通过转储变成 Mini SSTable。
* `MEDIUM_MERGE`:表示分区级合并。
* `MAJOR_MERGE`:表示合并。
* `META_MAJOR_MERGE` Buffer 表转储。
* `STATUS`:表示任务状态。任务正在运行中时,该字段值为 `NODE_RUNNING`
* `DATA_SIZE`:表示需要转储的总数据量。
* `UNFINISHED_DATA_SIZE`:表示转储未完成的数据量。
* `ESTIMATED_FINISH_TIME`:表示预计完成时间。
有关 `GV$OB_TABLET_COMPACTION_PROGRESS` 视图中字段的详细介绍,请参见 [GV$OB_TABLET_COMPACTION_PROGRESS](../../../../7.reference/3.system-views/3.performance-view-5/11.gv-ob_tablet_compaction_progress.md)。
根据查询结果,对于未出现在该视图中的 Tablet 或长时间未完成的 Tablet可以进一步查看诊断视图 `GV$OB_COMPACTION_DIAGNOSE_INFO`,确认是否有异常情况出现。
有关 `GV$OB_COMPACTION_DIAGNOSE_INFO` 视图中字段的详细介绍,请参见 [GV$OB_COMPACTION_DIAGNOSE_INFO](../../../../7.reference/3.system-views/3.performance-view-5/44.gv-ob_compaction_diagnose_info-1.md)。
## 查看转储历史
1. 使用 `root` 用户登录集群的 `sys` 租户。
2. 查看转储历史。
`GV$OB_TABLET_COMPACTION_HISTORY` 视图用于展示 Tablet 级别 Compaction 的历史信息。具体查询语句如下:
```shell
obclient [oceanbase]> SELECT * FROM oceanbase.GV$OB_TABLET_COMPACTION_HISTORY WHERE TYPE='MINI_MERGE' TABLET_ID=200001\G
*************************** 1. row ***************************
SVR_IP: xx.xx.xx.xx
SVR_PORT: 2882
TENANT_ID: 1002
LS_ID: 1001
TABLET_ID: 200001
TYPE: MINI_MERGE
COMPACTION_SCN: 1680142515939965301
START_TIME: 2023-03-30 10:15:20.433070
FINISH_TIME: 2023-03-30 10:15:20.433444
TASK_ID: YB42AC1E87CC-0005F7EE202A5810-0-0
OCCUPY_SIZE: 0
MACRO_BLOCK_COUNT: 0
MULTIPLEXED_MACRO_BLOCK_COUNT: 0
NEW_MICRO_COUNT_IN_NEW_MACRO: 0
MULTIPLEXED_MICRO_COUNT_IN_NEW_MACRO: 0
TOTAL_ROW_COUNT: 0
INCREMENTAL_ROW_COUNT: 0
COMPRESSION_RATIO: 1
NEW_FLUSH_DATA_RATE: 0
PROGRESSIVE_COMPACTION_ROUND: 0
PROGRESSIVE_COMPACTION_NUM: 0
PARALLEL_DEGREE: 1
PARALLEL_INFO: -
PARTICIPANT_TABLE: table_cnt=1,start_scn=1,end_scn=1680142515939965301;
MACRO_ID_LIST:
COMMENTS: time_guard=EXECUTE=892us|(0.49)|UPDATE_TABLET=605us|(0.33)|total=1.82ms;
*************************** 2. row ***************************
SVR_IP: xx.xx.xx.xx
SVR_PORT: 2882
TENANT_ID: 1002
LS_ID: 1001
TABLET_ID: 200001
TYPE: MINI_MERGE
COMPACTION_SCN: 1680199217439878616
START_TIME: 2023-03-31 02:00:21.835832
FINISH_TIME: 2023-03-31 02:00:21.836314
TASK_ID: YB42AC1E87CC-0005F7EE202A5C53-0-0
OCCUPY_SIZE: 0
MACRO_BLOCK_COUNT: 0
MULTIPLEXED_MACRO_BLOCK_COUNT: 0
NEW_MICRO_COUNT_IN_NEW_MACRO: 0
MULTIPLEXED_MICRO_COUNT_IN_NEW_MACRO: 0
TOTAL_ROW_COUNT: 0
INCREMENTAL_ROW_COUNT: 0
COMPRESSION_RATIO: 1
NEW_FLUSH_DATA_RATE: 0
PROGRESSIVE_COMPACTION_ROUND: 0
PROGRESSIVE_COMPACTION_NUM: 0
PARALLEL_DEGREE: 1
PARALLEL_INFO: -
PARTICIPANT_TABLE: table_cnt=1,start_scn=1680142515939965301,end_scn=1680199217439878616;
MACRO_ID_LIST:
COMMENTS: new_medium_list:{cnt=1;1680199204727259164}|time_guard=EXECUTE=629us|(0.39)|UPDATE_TABLET=696us|(0.43)|total=1.61ms;
*************************** 3. row ***************************
SVR_IP: xx.xx.xx.xx
SVR_PORT: 2882
TENANT_ID: 1002
LS_ID: 1001
TABLET_ID: 200001
TYPE: MINI_MERGE
COMPACTION_SCN: 1680285613573143617
START_TIME: 2023-04-01 02:00:14.248500
FINISH_TIME: 2023-04-01 02:00:14.248823
TASK_ID: YB42AC1E87CC-0005F7EE202A5F84-0-0
OCCUPY_SIZE: 0
MACRO_BLOCK_COUNT: 0
MULTIPLEXED_MACRO_BLOCK_COUNT: 0
NEW_MICRO_COUNT_IN_NEW_MACRO: 0
MULTIPLEXED_MICRO_COUNT_IN_NEW_MACRO: 0
TOTAL_ROW_COUNT: 0
INCREMENTAL_ROW_COUNT: 0
COMPRESSION_RATIO: 1
NEW_FLUSH_DATA_RATE: 0
PROGRESSIVE_COMPACTION_ROUND: 0
PROGRESSIVE_COMPACTION_NUM: 0
PARALLEL_DEGREE: 1
PARALLEL_INFO: -
PARTICIPANT_TABLE: table_cnt=1,start_scn=1680199217439878616,end_scn=1680285613573143617;
MACRO_ID_LIST:
COMMENTS: new_medium_list:{cnt=1;1680285601108938417}|time_guard=EXECUTE=528us|(0.22)|UPDATE_TABLET=1.58ms|(0.64)|total=2.45ms;
*************************** 4. row ***************************
SVR_IP: xx.xx.xx.xx
SVR_PORT: 2882
TENANT_ID: 1002
LS_ID: 1001
TABLET_ID: 200001
TYPE: MINI_MERGE
COMPACTION_SCN: 1680372014559392064
START_TIME: 2023-04-02 02:00:16.549722
FINISH_TIME: 2023-04-02 02:00:16.550169
TASK_ID: YB42AC1E87CC-0005F7EE202A640F-0-0
OCCUPY_SIZE: 0
MACRO_BLOCK_COUNT: 0
MULTIPLEXED_MACRO_BLOCK_COUNT: 0
NEW_MICRO_COUNT_IN_NEW_MACRO: 0
MULTIPLEXED_MICRO_COUNT_IN_NEW_MACRO: 0
TOTAL_ROW_COUNT: 0
INCREMENTAL_ROW_COUNT: 0
COMPRESSION_RATIO: 1
NEW_FLUSH_DATA_RATE: 0
PROGRESSIVE_COMPACTION_ROUND: 0
PROGRESSIVE_COMPACTION_NUM: 0
PARALLEL_DEGREE: 1
PARALLEL_INFO: -
PARTICIPANT_TABLE: table_cnt=1,start_scn=1680285613573143617,end_scn=1680372014559392064;
MACRO_ID_LIST:
COMMENTS: new_medium_list:{cnt=1;1680372002531630824}|time_guard=EXECUTE=635us|(0.47)|UPDATE_TABLET=476us|(0.35)|total=1.35ms;
*************************** 5. row ***************************
SVR_IP: xx.xx.xx.xx
SVR_PORT: 2882
TENANT_ID: 1002
LS_ID: 1001
TABLET_ID: 200001
TYPE: MINI_MERGE
COMPACTION_SCN: 1680458416863471713
START_TIME: 2023-04-03 02:00:18.737260
FINISH_TIME: 2023-04-03 02:00:18.737475
TASK_ID: YB42AC1E87CC-0005F7EE202A6851-0-0
OCCUPY_SIZE: 0
MACRO_BLOCK_COUNT: 0
MULTIPLEXED_MACRO_BLOCK_COUNT: 0
NEW_MICRO_COUNT_IN_NEW_MACRO: 0
MULTIPLEXED_MICRO_COUNT_IN_NEW_MACRO: 0
TOTAL_ROW_COUNT: 0
INCREMENTAL_ROW_COUNT: 0
COMPRESSION_RATIO: 1
NEW_FLUSH_DATA_RATE: 0
PROGRESSIVE_COMPACTION_ROUND: 0
PROGRESSIVE_COMPACTION_NUM: 0
PARALLEL_DEGREE: 1
PARALLEL_INFO: -
PARTICIPANT_TABLE: table_cnt=1,start_scn=1680372014559392064,end_scn=1680458416863471713;
MACRO_ID_LIST:
COMMENTS: new_medium_list:{cnt=1;1680458404011443372}|time_guard=EXECUTE=334us|(0.46)|CREATE_SSTABLE=125us|(0.17)|UPDATE_TABLET=173us|(0.24)|total=733us;
5 rows in set
```
有关 `GV$OB_TABLET_COMPACTION_HISTORY` 视图中字段的详细介绍,请参见 [GV$OB_TABLET_COMPACTION_HISTORY](../../../../7.reference/3.system-views/3.performance-view-5/10.gv-ob_tablet_compaction_history-1.md)。
* 查看转储历史。
```sql
obclient> SELECT * FROM oceanbase.GV$OB_TABLET_COMPACTION_HISTORY;
```

View File

@ -52,7 +52,7 @@ Client Session 需要记录客户端在该 Session 上所有设置过的变量
当 Client Session 关闭后,与 Client Session 关联的 Server Session 是否需要全部关闭?如果按常理处理,会关闭所有关联的 Server Session但如果同一个客户端再次来连接 OBProxy那么 Server Session 又需要重新建立一遍。创建 Session 是比较耗时的操作,特别是有应用的客户端代码,创建一个 Client Session发送一条 SQL 请求获取到数据后关闭 Client Session反复创建/关闭 Session 给 OBProxy 带来比较大的资源消耗。其中一种解决办法就是 Session 复用。
Session 复用是在 Client Session 关闭后,不关闭与之关联的 Server Session而是将该 Client Session 加入 free list 中,如果该 Client 再创建 Client Session则先查询是否该 Client 有空闲的 Client Session 可以使用,如果有,则重用该 Client Session当需要使用与之关联的 Server Session 时,需要重置其 Session 变量,并设置新的 Session 变量后,就可以使用该 Server Session 转发客户端请求。
Session 复用是在 Client Session 关闭后,不关闭与之关联的 Server Session而是将该 Server Session 加入 free list 中,如果该 Client 再创建 Client Session则先查询是否该 Client 有空闲的 Client Session 可以使用,如果有,则重用该 Client Session当需要使用与之关联的 Server Session 时,需要重置其 Session 变量,并设置新的 Session 变量后,就可以使用该 Server Session 转发客户端请求。
通过 Session 复用可以减少 OBProxy 与 OBServer 创建 Session 的频率,是一种优化的手段,并且 OBProxy 支持 Client Session 与 Server Session 不强绑定,作为一个公共的池子(连接池),所有的 Client Session 都可以从该连接池中获取可用的连接,当不再使用时,就将该连接释放归还连接池,从而可以被别的请求使用。

View File

@ -50,7 +50,7 @@ restore_action:
| uri | 指备份的时候设置的 `backup_dest`。或者表示获取到的恢复数据的路径。 |
| backup_file_dest_list | 表示恢复文件所在的位置列表。 多个位置之间通过逗号分隔,目前仅支持 多个地址都为同一种类型的目的地。 |
| timestamp | 恢复的时间戳,需要大于等于最早备份的基线备份的 `CDB_OB_BACKUP_SET_DETAILS` 的`START_TIME`,小于等于日志备份 `CDB_OB_BACKUP_ARCHIVELOG_SUMMARY``MAX_NEXT_TIME`。 |
| restore_option | 恢复选项,支持以下几种: <ul><li> `backup_cluster_name`:源集群的名字,为必选项。</li> <li> `backup_cluster_id`:源集群的 `cluster_id`,为必选项。 </li> <li> `pool_list`:用户的资源池,为必选项。 </li> <li> `locality`:租户的 Locality 信息,为可选项。 </li> <li> `kms_encrypt`:为可选项。默认为 `false`。如果为 `true` 则表示在恢复时需要指定 `kms_encrypt_info`。 有关指定 `kms_encrypt_info` 方式的详细信息,请参见 《OceanBase 数据库管理员指南》中 **恢复指定的表** 章节。</li></ul> |
| restore_option | 恢复选项,支持以下几种: <ul><li> `backup_cluster_name`:源集群的名字,为必选项。</li> <li> `backup_cluster_id`:源集群的 `cluster_id`,为必选项。 </li> <li> `pool_list`:用户的资源池,为必选项。多个资源池可以通过 <code>('poo1','pool2'...) </code> 格式进行填写。 </li> <li> `locality`:租户的 Locality 信息,为可选项。 </li> <li> `kms_encrypt`:为可选项。默认为 `false`。如果为 `true` 则表示在恢复时需要指定 `kms_encrypt_info`。 有关指定 `kms_encrypt_info` 方式的详细信息,请参见 《OceanBase 数据库管理员指南》中 **恢复指定的表** 章节。</li></ul> |
## 示例

View File

@ -8,21 +8,21 @@
* 部署 OceanBase 数据库体验和测试环境
* [使用 OBD 快速部署 OceanBase 数据库](#使用-obd-快速部署-oceanbase-数据库)
* 使用 OBD 快速部署 OceanBase 数据库
* [使用 Docker 快速部署 OceanBase 数据库](#使用-docker-快速部署-oceanbase-数据库)
* 使用 Docker 快速部署 OceanBase 数据库
* [OceanBase 数据库的基本操作](#oceanbase-数据库的基本操作)
* OceanBase 数据库的基本操作
* 创建示例应用程序
* [创建 Python 应用程序](#创建-python-应用程序)
* 创建 Python 应用程序
* [创建 C 应用程序](#创建-c-应用程序)
* 创建 C 应用程序
* [创建 Go 应用程序](#创建-go-应用程序)
* 创建 Go 应用程序
* [创建 Java 应用程序](#创建-java-应用程序)
* 创建 Java 应用程序
* 体验 OceanBase 数据库高级特性coming soon