diff --git a/product/zh/docs-mogdb/v1.1.0/reference-guide/DBE_PERF/session-thread/LOCAL_THREADPOOL_STATUS.md b/product/zh/docs-mogdb/v1.1.0/reference-guide/DBE_PERF/session-thread/LOCAL_THREADPOOL_STATUS.md
index 96991973aeeca02a018bd7c345d450bdd89b20ad..0583bf018711b49d64dfa11cf62a542e9f0e5936 100644
--- a/product/zh/docs-mogdb/v1.1.0/reference-guide/DBE_PERF/session-thread/LOCAL_THREADPOOL_STATUS.md
+++ b/product/zh/docs-mogdb/v1.1.0/reference-guide/DBE_PERF/session-thread/LOCAL_THREADPOOL_STATUS.md
@@ -18,5 +18,6 @@ LOCAL_THREADPOOL_STATUS视图显示线程池下工作线程及会话的状态信
| bind_numa_id | integer | 该线程池组绑定的NUMA ID。 |
| bind_cpu_number | integer | 该线程池组绑定的CPU信息。如果未绑定CPU,该值为NULL。 |
| listener | integer | 该线程池组的Listener线程数量。 |
-| worker_info | text | 线程池中线程相关信息,包括以下信息:
- default: 该线程池组中的初始线程数量。
- new: 该线程池组中新增线程的数量。
- expect: 该线程池组中预期线程的数量。
- actual: 该线程池组中实际线程的数量。
- idle: 该线程池组中空闲线程的数量。
- pending: 该线程池组中等待线程的数量。 |
+| worker_info | text | 线程池中worker线程相关信息,包括以下信息:
- default: 该线程池组中的初始线程数量。
- new: 该线程池组中新增线程的数量。
- expect: 该线程池组中预期线程的数量。
- actual: 该线程池组中实际线程的数量。
- idle: 该线程池组中空闲线程的数量。
- pending: 该线程池组中等待线程的数量。 |
| session_info | text | 线程池中会话相关信息,包括以下信息:
- total: 该线程池组中所有的会话数量。
- waiting: 该线程池组中等待调度的会话数量。
- running: 该线程池中正在执行的会话数量。
- idle: 该线程池组中空闲的会话数量。 |
+| stream_info | text | 线程池中stream线程相关信息,包括以下信息:
- total: 该线程池组中所有的stream线程数量。
- running: 该线程池中正在执行的stream线程数量。
- idle: 该线程池组中空闲的stream线程数量 |
\ No newline at end of file
diff --git a/product/zh/docs-mogdb/v2.0.0/reference-guide/DBE_PERF/session-thread/LOCAL_THREADPOOL_STATUS.md b/product/zh/docs-mogdb/v2.0.0/reference-guide/DBE_PERF/session-thread/LOCAL_THREADPOOL_STATUS.md
index 96991973aeeca02a018bd7c345d450bdd89b20ad..0583bf018711b49d64dfa11cf62a542e9f0e5936 100644
--- a/product/zh/docs-mogdb/v2.0.0/reference-guide/DBE_PERF/session-thread/LOCAL_THREADPOOL_STATUS.md
+++ b/product/zh/docs-mogdb/v2.0.0/reference-guide/DBE_PERF/session-thread/LOCAL_THREADPOOL_STATUS.md
@@ -18,5 +18,6 @@ LOCAL_THREADPOOL_STATUS视图显示线程池下工作线程及会话的状态信
| bind_numa_id | integer | 该线程池组绑定的NUMA ID。 |
| bind_cpu_number | integer | 该线程池组绑定的CPU信息。如果未绑定CPU,该值为NULL。 |
| listener | integer | 该线程池组的Listener线程数量。 |
-| worker_info | text | 线程池中线程相关信息,包括以下信息:
- default: 该线程池组中的初始线程数量。
- new: 该线程池组中新增线程的数量。
- expect: 该线程池组中预期线程的数量。
- actual: 该线程池组中实际线程的数量。
- idle: 该线程池组中空闲线程的数量。
- pending: 该线程池组中等待线程的数量。 |
+| worker_info | text | 线程池中worker线程相关信息,包括以下信息:
- default: 该线程池组中的初始线程数量。
- new: 该线程池组中新增线程的数量。
- expect: 该线程池组中预期线程的数量。
- actual: 该线程池组中实际线程的数量。
- idle: 该线程池组中空闲线程的数量。
- pending: 该线程池组中等待线程的数量。 |
| session_info | text | 线程池中会话相关信息,包括以下信息:
- total: 该线程池组中所有的会话数量。
- waiting: 该线程池组中等待调度的会话数量。
- running: 该线程池中正在执行的会话数量。
- idle: 该线程池组中空闲的会话数量。 |
+| stream_info | text | 线程池中stream线程相关信息,包括以下信息:
- total: 该线程池组中所有的stream线程数量。
- running: 该线程池中正在执行的stream线程数量。
- idle: 该线程池组中空闲的stream线程数量 |
\ No newline at end of file
diff --git a/product/zh/docs-mogdb/v2.0.1/reference-guide/DBE_PERF/session-thread/LOCAL_THREADPOOL_STATUS.md b/product/zh/docs-mogdb/v2.0.1/reference-guide/DBE_PERF/session-thread/LOCAL_THREADPOOL_STATUS.md
index 96991973aeeca02a018bd7c345d450bdd89b20ad..0583bf018711b49d64dfa11cf62a542e9f0e5936 100644
--- a/product/zh/docs-mogdb/v2.0.1/reference-guide/DBE_PERF/session-thread/LOCAL_THREADPOOL_STATUS.md
+++ b/product/zh/docs-mogdb/v2.0.1/reference-guide/DBE_PERF/session-thread/LOCAL_THREADPOOL_STATUS.md
@@ -18,5 +18,6 @@ LOCAL_THREADPOOL_STATUS视图显示线程池下工作线程及会话的状态信
| bind_numa_id | integer | 该线程池组绑定的NUMA ID。 |
| bind_cpu_number | integer | 该线程池组绑定的CPU信息。如果未绑定CPU,该值为NULL。 |
| listener | integer | 该线程池组的Listener线程数量。 |
-| worker_info | text | 线程池中线程相关信息,包括以下信息:
- default: 该线程池组中的初始线程数量。
- new: 该线程池组中新增线程的数量。
- expect: 该线程池组中预期线程的数量。
- actual: 该线程池组中实际线程的数量。
- idle: 该线程池组中空闲线程的数量。
- pending: 该线程池组中等待线程的数量。 |
+| worker_info | text | 线程池中worker线程相关信息,包括以下信息:
- default: 该线程池组中的初始线程数量。
- new: 该线程池组中新增线程的数量。
- expect: 该线程池组中预期线程的数量。
- actual: 该线程池组中实际线程的数量。
- idle: 该线程池组中空闲线程的数量。
- pending: 该线程池组中等待线程的数量。 |
| session_info | text | 线程池中会话相关信息,包括以下信息:
- total: 该线程池组中所有的会话数量。
- waiting: 该线程池组中等待调度的会话数量。
- running: 该线程池中正在执行的会话数量。
- idle: 该线程池组中空闲的会话数量。 |
+| stream_info | text | 线程池中stream线程相关信息,包括以下信息:
- total: 该线程池组中所有的stream线程数量。
- running: 该线程池中正在执行的stream线程数量。
- idle: 该线程池组中空闲的stream线程数量 |
\ No newline at end of file
diff --git a/product/zh/docs-mogdb/v2.1/reference-guide/schema/DBE_PERF/session-thread/LOCAL_THREADPOOL_STATUS.md b/product/zh/docs-mogdb/v2.1/reference-guide/schema/DBE_PERF/session-thread/LOCAL_THREADPOOL_STATUS.md
index 96991973aeeca02a018bd7c345d450bdd89b20ad..0583bf018711b49d64dfa11cf62a542e9f0e5936 100644
--- a/product/zh/docs-mogdb/v2.1/reference-guide/schema/DBE_PERF/session-thread/LOCAL_THREADPOOL_STATUS.md
+++ b/product/zh/docs-mogdb/v2.1/reference-guide/schema/DBE_PERF/session-thread/LOCAL_THREADPOOL_STATUS.md
@@ -18,5 +18,6 @@ LOCAL_THREADPOOL_STATUS视图显示线程池下工作线程及会话的状态信
| bind_numa_id | integer | 该线程池组绑定的NUMA ID。 |
| bind_cpu_number | integer | 该线程池组绑定的CPU信息。如果未绑定CPU,该值为NULL。 |
| listener | integer | 该线程池组的Listener线程数量。 |
-| worker_info | text | 线程池中线程相关信息,包括以下信息:
- default: 该线程池组中的初始线程数量。
- new: 该线程池组中新增线程的数量。
- expect: 该线程池组中预期线程的数量。
- actual: 该线程池组中实际线程的数量。
- idle: 该线程池组中空闲线程的数量。
- pending: 该线程池组中等待线程的数量。 |
+| worker_info | text | 线程池中worker线程相关信息,包括以下信息:
- default: 该线程池组中的初始线程数量。
- new: 该线程池组中新增线程的数量。
- expect: 该线程池组中预期线程的数量。
- actual: 该线程池组中实际线程的数量。
- idle: 该线程池组中空闲线程的数量。
- pending: 该线程池组中等待线程的数量。 |
| session_info | text | 线程池中会话相关信息,包括以下信息:
- total: 该线程池组中所有的会话数量。
- waiting: 该线程池组中等待调度的会话数量。
- running: 该线程池中正在执行的会话数量。
- idle: 该线程池组中空闲的会话数量。 |
+| stream_info | text | 线程池中stream线程相关信息,包括以下信息:
- total: 该线程池组中所有的stream线程数量。
- running: 该线程池中正在执行的stream线程数量。
- idle: 该线程池组中空闲的stream线程数量 |
\ No newline at end of file
diff --git a/product/zh/docs-mogdb/v3.0/about-mogdb/mogdb-new-feature/3.0.0.md b/product/zh/docs-mogdb/v3.0/about-mogdb/mogdb-new-feature/3.0.0.md
index bd611e597675e7fe1a0c298db3e093d9049eb714..07d0f346ed8c36056c6f6f399d2b965d335a5575 100644
--- a/product/zh/docs-mogdb/v3.0/about-mogdb/mogdb-new-feature/3.0.0.md
+++ b/product/zh/docs-mogdb/v3.0/about-mogdb/mogdb-new-feature/3.0.0.md
@@ -17,21 +17,21 @@ MogDB 3.0.0版本于2022年6月30日发布。3.0.0版本基于2.1版本进一步
### 2.1 集成openGauss 3.0.0版本新增特性
-- 行存转向量化
-- 延迟进入最大可用模式
-- 并行逻辑解码
-- CM(Cluster Manager)
-- global syscache
-- 发布订阅
-- 外键锁增强
-- 行存表压缩
-- Data Studio工具开源
-- MySQL到openGauss的迁移工具chameleon
-- 支持使用中间件shardingSphere构建分布式数据库
-- 支持kubernetes部署分布式数据库
-- 支持ANY权限管理
-- DBMind组件化
-- 库内AI算法支持XGBoost、multiclass和PCA
+- [行存转向量化](12-row-store-execution-to-vectorized-execution)
+- [延迟进入最大可用模式](11-delaying-entering-the-maximum-availability-mode)
+- [并行逻辑解码](12-parallel-logical-decoding)
+- [CM(Cluster Manager)](unified-database-management-tool)
+- [global syscache](15-global-syscache)
+- [发布订阅](16-publication-subscription)
+- [外键锁增强](17-foreign-key-lock-enhancement)
+- [行存表压缩](CREATE-TABLE)
+- [Data Studio工具开源](mogdb-client-tool-datastudio)
+- [MySQL到openGauss的迁移工具chameleon](mysql-to-mogdb-migration-tool-chameleon)
+- [支持使用中间件shardingSphere构建分布式数据库](distributed-database-capability)
+- [支持kubernetes部署分布式数据库](deploying-a-distributed-database-using-kubernetes)
+- [支持ANY权限管理](GRANT)
+- [DBMind组件化](ai4db-autonomous-database-o&m)
+- [库内AI算法支持XGBoost、multiclass和PCA](native-db4ai-engine)
### 2.2 Cluster Manager (CM)
@@ -41,6 +41,8 @@ MogDB 3.0.0版本于2022年6月30日发布。3.0.0版本基于2.1版本进一步
- 要求至少有三台服务器安装CM组件;
- 数据库服务器可以是一主一备两台机器。
+**相关页面**:[CM](14-cm)
+
### 2.3 性能增强
#### 2.3.1 事务异步提交
@@ -48,28 +50,50 @@ MogDB 3.0.0版本于2022年6月30日发布。3.0.0版本基于2.1版本进一步
- 将事务执行和事务日志落盘拆分为CPU bound和IO bound两个阶段,分别由不同线程执行,避免执行IO操作时,CPU资源闲置,进而提升CPU资源利用率;
- 事务异步提交的优化,可以让事务吞吐量提升20%-50%,TPCC整体性能提升10%~20%;
-#### 2.3.2 日志持久化优化
-
-- 提高高数据更新负载下执行性能,降低执行延迟。
+**相关页面**:[事务异步提交](19-transaction-async-submit)
-#### 2.3.3 索引并行创建并行度定义
+#### 2.3.2 索引并行创建并行度定义
- MogDB额外提供了参数控制并行度,可以手动制定并行度,更加灵活
-#### 2.3.4 COPY导入SIMD加速
+**相关页面**:[索引创建并行控制](23-index-creation-parallel-control)
+
+#### 2.3.3 COPY导入SIMD加速
- 利用CPU的指令集,对COPY命令中的数据解析阶段进行加速,进而提升COPY导入性能;(目前仅限x86 CPU)
-#### 2.3.5 动态分区裁剪
+**相关页面**:[COPY导入优化](20-copy-import-optimization)
+
+#### 2.3.4 动态分区裁剪
- 新增支持了动态分区裁减。在prepare-execute执行方式,以及分区约束表达式中包含子查询的场景下,在执行阶段根据参数或子查询结果对分区进行裁减,提升分区表查询性能;
+**相关页面**:[动态分区裁剪](21-dynamic-partition-pruning)
+
+#### 2.3.5 后台压缩
+
+- 在Astore行存场景下支持数据压缩功能,减少存储成本。
+
+**相关页面**:[后台压缩](26-backend-compression)
+
+#### 2.3.6 内置PostGIS支持地理数据处理
+
+PostGIS提供空间对象、空间索引、空间操作函数和空间操作符等空间信息服务功能,可用于:
+
+- 大气科学、海洋科学、地质学、环境科学、交通管理等,处理和分析复杂的空间数据,并进行制图;
+- 移动通信、移动定位、移动互联网;
+- 城市管理、灾害响应、资源开发等方面;
+
+**相关页面**:[PostGIS](PostGIS)
+
### 2.4 故障诊断
#### 2.4.1 监控Session级别SQL运行状态
- 对Session级别SQL运行状态进行收集执行计划树并动态采样执行算子
+**相关页面**:[SQL运行状态观测](22-sql-running-status-observation)
+
#### 2.4.2 OM故障诊断能力增强
- gstrace增强:通过增加模块切换(component switch)来获得更有针对性的执行路径,用于提升debug效率。
@@ -77,6 +101,8 @@ MogDB 3.0.0版本于2022年6月30日发布。3.0.0版本基于2.1版本进一步
- gs_watch:当MogDB发生故障时,使用此工具收集OS信息、日志信息以及配置文件等信息,来定位问题。
- gs_gucquery:实现MogDB GUC值自动收集整理导出和差异比较。
+**相关页面**:[故障诊断](fault-diagnosis)
+
### 2.5 兼容性增强
#### 2.5.1 Oracle兼容增强
@@ -85,11 +111,15 @@ MogDB 3.0.0版本于2022年6月30日发布。3.0.0版本基于2.1版本进一步
- 支持connect by语法
- 降低Oracle应用迁移到MogDB的代码修改量。
+**相关页面**:[Oracle兼容增强](MogDB-Oracle-compatibility)
+
#### 2.5.2 MySQL兼容增强
- 更多语法支持:timestamp on update等;更多数据类型兼容;更多函数兼容
- 降低迁移MySQL应用到MogDB的代码修改量。
+**相关页面**:[MySQL兼容增强](MogDB-MySQL-compatibility)
+
#### 2.5.3 PostgreSQL兼容增强
##### 2.5.3.1 新增BRIN INDEX(PostgreSQL 9.5开始支持)
@@ -97,6 +127,8 @@ MogDB 3.0.0版本于2022年6月30日发布。3.0.0版本基于2.1版本进一步
- 数据块范围的索引,相比于精准的BTREE索引,BRIN INDEX提供了一个以较小空间消耗获得一个相对较快查询速度的平衡
- 1GB的表,无索引,查询单条4s;BTREE索引200MB空间,查询4ms;BRIN索引800K,查询58ms;
+**相关页面**:[BRIN索引](24-brin-index)
+
##### 2.5.3.2 新增BLOOM INDEX(PostgreSQL 9.6开始支持)
- 布隆过滤:真的不一定为真,假的一定为假;存在误算率,需要recheck(算法实现,不是要用户recheck)
@@ -104,6 +136,8 @@ MogDB 3.0.0版本于2022年6月30日发布。3.0.0版本基于2.1版本进一步
- 普通索引应对此类场景,需要创建多个索引,对于空间占用和插入更新速度都会有较大影响
- 此时可以在所有这些可能用于查询的字段上统一创建一个BLOOM索引,获得空间和查询速度的平衡,10GB表的扫描可以1s左右完成
+**相关页面**:[BLOOM索引](25-bloom-index)
+
## 3. 修复缺陷
diff --git a/product/zh/docs-mogdb/v3.0/about-mogdb/open-source-components/PostGIS.md b/product/zh/docs-mogdb/v3.0/about-mogdb/open-source-components/PostGIS.md
new file mode 100644
index 0000000000000000000000000000000000000000..f2e46e0299a8611535f369826e04a1c06314bddc
--- /dev/null
+++ b/product/zh/docs-mogdb/v3.0/about-mogdb/open-source-components/PostGIS.md
@@ -0,0 +1,306 @@
+---
+title: PostGIS
+summary: PostGIS
+author: Zhang Cuiping
+date: 2022-06-17
+---
+
+# PostGIS
+
+## 背景
+
+PostGIS 是一个空间数据库,在 PostgreSQL 上以插件的形式提供,为 PostgreSQL 提供了存储空间地理数据的支持,PostGIS 提供的功能包括:空间对象、空间索引、空间操作函数和空间操作符等。PostGIS 遵循 OpenGIS 规范,遵循 GNU General Public License(GPLv2 or later)。
+
+随着信息技术及GIS应用的不断发展,大气科学、海洋科学、地质学、环境科学、交通管理等逐步应用 GIS 作为一种技术手段,处理和分析复杂的空间数据,并进行制图。同时,随着移动通信、移动定位、移动互联网的不断发展,一切事物都联系在了一起。空间数据库在城市管理、灾害响应、资源开发等方面都有非常大的应用前景。
+
+PostGIS 多年的发展为 PostgreSQL 提供了强大空间数据处理能力。MogDB内核发源于 PostgreSQL,因此MogDB将首选PostGIS提供空间数据处理。
+
+## 功能特性
+
+在MogDB 3.0版本中,PostGIS将支持postgis、postgis_raster 和 postgis_topology 三个模块的主要功能。PostGIS只支持行存表,不支持BRIN索引。
+
+| 编号 | 功能 | 目的及参考 |
+| ---- | ------------------------------------- | ------------------------------------------------------------ |
+| 1 | 支持PostGIS中的geometry类型及关联函数 | 支持 PostGIS 中的geometry类型及关联函数
具体类型和关联函数参考:
[http://postgis.net/workshops/postgis-intro/geometries.html](http://postgis.net/workshops/postgis-intro/geometries.html)
[http://postgis.net/workshops/postgis-intro/geography.html](http://postgis.net/workshops/postgis-intro/geography.html)
[https://livebook.manning.com/book/postgis-in-action/chapter-2/167](https://livebook.manning.com/book/postgis-in-action/chapter-2/167)
[https://gitee.com/opengauss/openGauss-third_party/tree/master/gpl_dependency/postgis](https://gitee.com/opengauss/openGauss-third_party/tree/master/gpl_dependency/postgis) |
+| 2 | 支持 Raster及关联函数 | 支持 PostGIS 中的 raster 类型及关联函数。Raster 是 PostGIS 中的一种类型,用于存储和处理栅格数据。
具体类型和关联函数参考:
[https://postgis.net/docs/RT_reference.html](https://postgis.net/docs/RT_reference.html) |
+| 3 | 支持 Topology 类型及其关联函数 | 支持 PostGIS 中的 topology 类型及关联函数。Topology 用于管理拓扑对象,如 faces、edges、nodes等。
具体类型和关联函数参考:
[https://postgis.net/docs/Topology.html#Topology_Types](https://postgis.net/docs/Topology.html#Topology_Types)
[https://trac.osgeo.org/postgis/wiki/UsersWikiPostgisTopology](https://trac.osgeo.org/postgis/wiki/UsersWikiPostgisTopology) |
+
+## 安装PostGIS
+
+### 安装准备
+
+PostGIS依赖下列工具 (最低版本要求):
+
+- GCC-7.3. zlib.autoconf.automake
+- Geos 3.6.2
+- Proj 4.9.2
+- Json 0.12.1
+- Libxml2 2.7.1
+- Gdal 1.11.0
+
+> 注意:本文档仅提供*Geos.Proj.Json.Libxml.Gdal 1.11.0*安装脚本,您可以在之后选择通过脚本安装 *GCC-7.3.zlib.autoconf.automake*。
+
+### 获取安装包
+
+访问[该网站](https://opengauss.obs.cn-south-1.myhuaweicloud.com/dependency/postgis-xc-master-2020-09-17.tar.gz)下载postgis-xc-master-2020-09-17.tar.gz压缩包执行安装。
+
+### 安装步骤
+
+1. 将下载的压缩包拷贝到 *$GAUSSHOME* 路径下,解压缩,将目录重命名为 postgis-xc。
+
+2. 设置必要的环境变量。
+
+ ```
+ export CODE_BASE=________ # Path of the MogDB-server file
+ export PostGIS=________ # Path of the MogDB/PostGIS file
+ export BINARYLIBS=________ # Path of the binarylibs file
+ export GAUSSHOME=________ # Path of MogDB installation
+ export LD_LIBRARY_PATH=$GAUSSHOME/lib:$GAUSSHOME/install/geos/lib:$GAUSSHOME/install/proj4/lib:$GAUSSHOME/install/gdal/lib:$GAUSSHOME/install/libxml2/lib/:$LD_LIBRARY_PATH
+ ```
+
+3. 编译安装 PostGIS。
+
+ 执行以下命令进行安装,编译安装过程中,生成的文件会放在 *$GAUSSHOME/install* 路径下。
+
+ - 如果使用openeuler_aarch64操作系统,在以下执行 ./configure 的地方需要加上 "*--build=aarch64-unknown-linux-gnu*" 选项。
+ - 编译安装过程中依赖第三方工具,如automake、autoconf 等。如果有编译环境,理论上已经安装过。如果未安装,请按照提示安装。
+
+ ```
+ cd $GAUSSHOME/postgis-xc
+
+ #apply patch
+ cd postgis-xc
+ patch -p1 < $PostGIS/postgis_2.4.2-1.patch
+
+ #copy the dependent file:
+ cp $PostGIS/extension_dependency.h $GAUSSHOME/include/postgresql/server/
+
+ 此处需要替换为本机的PostGIS路径
+ 编译 MogDB 3.0.0 和 openGauss 3.0.0 使用的 extension_dependency.h 文件不一样,主要是 MogDB 和 openGauss 内核在一些接口上有差异
+
+ 主要有以下接口:
+ SPI_execute
+ SPI_exec
+ SPI_cursor_open_with_args
+
+ #install geos
+ cd $GAUSSHOME/postgis-xc/geos-3.6.2
+ chmod +x ./configure
+ ./configure --prefix=$GAUSSHOME/install/geos
+ make -sj
+ make install -sj
+
+ #install proj
+ cd $GAUSSHOME/postgis-xc/proj-4.9.2
+ chmod +x ./configure
+ ./configure --prefix=$GAUSSHOME/install/proj
+ make -sj
+ make install -sj
+
+ #install json
+ cd $GAUSSHOME/postgis-xc/json-c-json-c-0.12.1-20160607
+ chmod +x ./configure
+ ./configure --prefix=$GAUSSHOME/install/json
+
+ 执行make前需要在Makefile文件中将CFLAGS = CFLAGS = -g -O2 修改为CFLAGS = CFLAGS = -g -O2 -w
+
+ make -sj
+ make install -sj
+
+ #install libxml2
+ cd $GAUSSHOME/postgis-xc/libxml2-2.7.1
+ chmod +x ./configure
+ ./configure --prefix=$GAUSSHOME/install/libxml2
+ make -sj
+ make install -sj
+
+ #install gdal
+ cd $GAUSSHOME/postgis-xc/gdal-1.11.0
+ chmod +x ./configure
+ chmod +x ./install-sh
+ ./configure --prefix=$GAUSSHOME/install/gdal --with-xml2=$GAUSSHOME/install/libxml2/bin/xml2-config --with-geos=$GAUSSHOME/install/geos/bin/geos-config --with-static_proj4=$GAUSSHOME/install/proj CFLAGS='-O2 -fpermissive -pthread'
+ make -sj
+ make install -sj
+
+ #install postgis
+ cd $GAUSSHOME/postgis-xc/postgis-2.4.2
+ sed -i -e 's/-Werror//g' $GAUSSHOME/lib/postgresql/pgxs/src/Makefile.global
+ ./configure --prefix=$GAUSSHOME/install/pggis2.4.2 --with-pgconfig=$GAUSSHOME/bin/pg_config --with-projdir=$GAUSSHOME/install/proj --with-geosconfig=$GAUSSHOME/install/geos/bin/geos-config --with-jsondir=$GAUSSHOME/install/json --with-xml2config=$GAUSSHOME/install/libxml2/bin/xml2-config --with-raster --with-gdalconfig=$GAUSSHOME/install/gdal/bin/gdal-config --with-topology --without-address-standardizer CFLAGS='-O2 -fpermissive -DPGXC -pthread -D_THREAD_SAFE -D__STDC_FORMAT_MACROS -DMEMORY_CONTEXT_CHECKING -w' CC=g++
+ make -sj
+ make install -sj
+
+ # copy the essential files to opengauss install folders:
+ cp $GAUSSHOME/install/json/lib/libjson-c.so.2 $GAUSSHOME/lib/libjson-c.so.2
+ cp $GAUSSHOME/install/geos/lib/libgeos_c.so.1 $GAUSSHOME/lib/libgeos_c.so.1
+ cp $GAUSSHOME/install/proj/lib/libproj.so.9 $GAUSSHOME/lib/libproj.so.9
+ cp $GAUSSHOME/install/geos/lib/libgeos-3.6.2.so $GAUSSHOME/lib/libgeos-3.6.2.so
+ cp $GAUSSHOME/install/gdal/lib/libgdal.so.1.18.0 $GAUSSHOME/lib/libgdal.so.1
+ cp $GAUSSHOME/install/pggis2.4.2/lib/liblwgeom-2.4.so.0 $GAUSSHOME/lib/liblwgeom-2.4.so.0
+ cp $GAUSSHOME/postgis-xc/postgis-2.4.2/postgis.control $GAUSSHOME/share/postgresql/extension/
+ cp $GAUSSHOME/postgis-xc/postgis-2.4.2/postgis--2.4.2.sql $GAUSSHOME/share/postgresql/extension/
+ rm -f $GAUSSHOME/share/postgresql/extension/postgis_raster--2.*.sql
+ cp $GAUSSHOME/postgis-xc/postgis-2.4.2/postgis_raster--2.4.2.sql $GAUSSHOME/share/postgresql/extension/postgis_raster--2.4.2.sql
+ cp $GAUSSHOME/postgis-xc/postgis-2.4.2/postgis_raster.control $GAUSSHOME/share/postgresql/extension/postgis_raster.control
+ rm -f $GAUSSHOME/share/postgresql/extension/postgis_topology--2.*.sql
+ cp $GAUSSHOME/postgis-xc/postgis-2.4.2/extensions/postgis_topology/sql/postgis_topology--2.4.2.sql $GAUSSHOME/share/postgresql/extension/postgis_topology--2.4.2.sql
+ cp $GAUSSHOME/postgis-xc/postgis-2.4.2/extensions/postgis_topology/postgis_topology.control $GAUSSHOME/share/postgresql/extension/postgis_topology.control
+ ```
+
+4. 执行安装插件的命令
+
+ ```
+ CREATE EXTENSION postgis; // 执行时间可能较长
+ CREATE EXTENSION postgis_raster;
+ set behavior_compat_options='bind_procedure_searchpath';
+ CREATE EXTENSION postgis_topology;
+ ```
+
+## 使用PostGIS
+
+### 创建Extension
+
+- 使能PostGIS中的postgis功能
+
+ ```
+ CREATE EXTENSION postgis;
+ ```
+
+- 使能PostGIS中的栅格功能
+
+ ```
+ CREATE EXTENSION postgis_raster;
+ ```
+
+- 使能PostGIS中的拓扑功能
+
+ ```
+ set behavior_compat_options='bind_procedure_searchpath';
+ CREATE EXTENSION postgis_topology;
+ ```
+
+### 使用Extension
+
+调用PostGIS Extension函数
+
+```sql
+SELECT GisFunction (Param1, Param2,......);
+```
+
+> 注意:GisFunction为函数名,Param1、Param2等为函数参数名。有关其他函数的具体使用,请参考[postgis-2.4.2](https://download.osgeo.org/postgis/docs/postgis-2.4.2.pdf)。
+
+### 删除Extension
+
+删除PostGIS Extension。
+
+```
+DROP EXTENSION postgis [CASCADE];
+```
+
+> 注意:
+>
+> - 如果Extension被其它对象依赖(如创建的几何表),需要加入CASCADE(级联)关键字,删除所有依赖对象。
+>
+> - 如果要完全删除PostGIS Extension,则需由omm用户使用gs_om工具移除PostGIS及其依赖的动态链接库,格式如下:
+>
+> ```
+> gs_om -t postgis -m rmlib
+> ```
+
+## PostGIS使用限制
+
+### 支持的操作符和函数列表
+
+| 函数分类 | 包含函数 |
+| -------------------------------------- | ------------------------------------------------------------ |
+| Management Functions | AddGeometryColumn、DropGeometryColumn、DropGeometryTable、PostGIS_Full_Version、PostGIS_GEOS_Version、PostGIS_Liblwgeom_Version、PostGIS_Lib_Build_Date、PostGIS_Lib_Version、PostGIS_PROJ_Version、PostGIS_Scripts_Build_Date、PostGIS_Scripts_Installed、PostGIS_Version、PostGIS_LibXML_Version、PostGIS_Scripts_Released、Populate_Geometry_Columns 、UpdateGeometrySRID |
+| Geometry Constructors | ST_BdPolyFromText 、ST_BdMPolyFromText 、ST_Box2dFromGeoHash、ST_GeogFromText、ST_GeographyFromText、ST_GeogFromWKB、ST_GeomCollFromText、ST_GeomFromEWKB、ST_GeomFromEWKT、ST_GeometryFromText、ST_GeomFromGeoHash、ST_GeomFromGML、ST_GeomFromGeoJSON、ST_GeomFromKML、ST_GMLToSQL、ST_GeomFromText 、ST_GeomFromWKB、ST_LineFromMultiPoint、ST_LineFromText、ST_LineFromWKB、ST_LinestringFromWKB、ST_MakeBox2D、ST_3DMakeBox、ST_MakeEnvelope、ST_MakePolygon、ST_MakePoint、ST_MakePointM、ST_MLineFromText、ST_MPointFromText、ST_MPolyFromText、ST_Point、ST_PointFromGeoHash、ST_PointFromText、ST_PointFromWKB、ST_Polygon、ST_PolygonFromText、ST_WKBToSQL、ST_WKTToSQL |
+| Geometry Accessors | GeometryType、ST_Boundary、ST_CoordDim、ST_Dimension、ST_EndPoint、ST_Envelope、ST_ExteriorRing、ST_GeometryN、ST_GeometryType、ST_InteriorRingN、ST_IsClosed、ST_IsCollection、ST_IsEmpty、ST_IsRing、ST_IsSimple、ST_IsValid、ST_IsValidReason、ST_IsValidDetail、ST_M、ST_NDims、ST_NPoints、ST_NRings、ST_NumGeometries、ST_NumInteriorRings、ST_NumInteriorRing、ST_NumPatches、ST_NumPoints、ST_PatchN、ST_PointN、ST_SRID、ST_StartPoint、ST_Summary、ST_X、ST_XMax、ST_XMin、ST_Y、ST_YMax、ST_YMin、ST_Z、ST_ZMax、ST_Zmflag、ST_ZMin |
+| Geometry Editors | ST_AddPoint、ST_Affine、ST_Force2D、ST_Force3D、ST_Force3DZ、ST_Force3DM、ST_Force4D、ST_ForceCollection、ST_ForceSFS、ST_ForceRHR、ST_LineMerge、ST_CollectionExtract、ST_CollectionHomogenize、ST_Multi、ST_RemovePoint、ST_Reverse、ST_Rotate、ST_RotateX、ST_RotateY、ST_RotateZ、ST_Scale、ST_Segmentize、ST_SetPoint、ST_SetSRID、ST_SnapToGrid、ST_Snap、ST_Transform、ST_Translate、ST_TransScale |
+| Geometry Outputs | ST_AsBinary、ST_AsEWKB、ST_AsEWKT、ST_AsGeoJSON、ST_AsGML、ST_AsHEXEWKB、ST_AsKML、ST_AsLatLonText 、ST_AsSVG、ST_AsText、ST_AsX3D、ST_GeoHash |
+| Operators | &&、&&&、&<、&<\|>\|、=、>>、@ 、\|&> 、\|>>、~、~=、<->、<#> |
+| Spatial Relationships and Measurements | ST_3DClosestPoint、ST_3DDistance、ST_3DDWithin、ST_3DDFullyWithin、ST_3DIntersects、ST_3DLongestLine、ST_3DMaxDistance、ST_3DShortestLine、ST_Area、ST_Azimuth、ST_Centroid、ST_ClosestPoint、ST_Contains、ST_ContainsProperly、ST_Covers、ST_CoveredBy、ST_Crosses、ST_LineCrossingDirection、ST_Disjoint、ST_Distance、ST_HausdorffDistance、ST_MaxDistance、ST_DistanceSphere、ST_DistanceSpheroid、ST_DFullyWithin、ST_DWithin、ST_Equals、ST_HasArc、ST_Intersects、ST_Length、ST_Length2D、ST_3DLength、ST_Length_Spheroid、ST_Length2D_Spheroid、ST_3DLength_Spheroid、ST_LongestLine、ST_OrderingEquals、ST_Overlaps、ST_Perimeter、ST_Perimeter2D、ST_3DPerimeter、ST_PointOnSurface、ST_Project、ST_Relate、ST_RelateMatch、ST_ShortestLine、ST_Touches、ST_Within |
+| Geometry Processing | ST_Buffer、ST_BuildArea、ST_Collect、ST_ConcaveHull、ST_ConvexHull、ST_CurveToLine、ST_DelaunayTriangles、ST_Difference、ST_Dump、ST_DumpPoints、ST_DumpRings、ST_FlipCoordinates、ST_Intersection、ST_LineToCurve、ST_MakeValid、ST_MemUnion、ST_MinimumBoundingCircle、ST_Polygonize、ST_Node、ST_OffsetCurve、ST_RemoveRepeatedPoints、ST_SharedPaths、ST_Shift_Longitude、ST_Simplify、ST_SimplifyPreserveTopology、ST_Split、ST_SymDifference、ST_Union、ST_UnaryUnion |
+| Linear Referencing | ST_LineInterpolatePoint、ST_LineLocatePoint、ST_LineSubstring、ST_LocateAlong、ST_LocateBetween、ST_LocateBetweenElevations、ST_InterpolatePoint、ST_AddMeasure |
+| Miscellaneous Functions | ST_Accum、Box2D、Box3D、ST_Expand、ST_Extent、ST_3Dextent、Find_SRID、ST_MemSize |
+| Exceptional Functions | PostGIS_AddBBox、PostGIS_DropBBox、PostGIS_HasBBox |
+| Raster Management Functions | AddRasterConstraints、DropRasterConstraints、AddOverviewConstraints、DropOverviewConstraints、PostGIS_GDAL_Version、PostGIS_Raster_Lib_Build_Date、PostGIS_Raster_Lib_Version、ST_GDALDrivers、UpdateRasterSRID |
+| Raster Constructors | ST_AddBand、ST_AsRaster、ST_Band、ST_MakeEmptyRaster、ST_Tile、ST_FromGDALRaster |
+| Raster Accessors | ST_GeoReference、ST_Height、ST_IsEmpty、ST_MetaData、ST_NumBands、ST_PixelHeight、ST_PixelWidth、ST_ScaleX、ST_ScaleY、ST_RasterToWorldCoord、ST_RasterToWorldCoordX、ST_RasterToWorldCoordY、ST_Rotation、ST_SkewX、ST_SkewY、ST_SRID、ST_Summary、ST_UpperLeftX、ST_UpperLeftY、ST_Width、ST_WorldToRasterCoord、ST_WorldToRasterCoordX、ST_WorldToRasterCoordY |
+| Raster Band Accessors | ST_BandMetaData、ST_BandNoDataValue、ST_BandIsNoData、ST_BandPath、ST_BandPixelType、ST_HasNoBand |
+| Raster Pixel Accessors and Setters | ST_PixelAsPolygon、ST_PixelAsPolygons、ST_PixelAsPoint、ST_PixelAsPoints、ST_PixelAsCentroid、ST_PixelAsCentroids、ST_Value、ST_NearestValue、ST_Neighborhood、ST_SetValue、ST_SetValues、ST_DumpValues、ST_PixelOfValue |
+| Raster Editors | ST_SetGeoReference、ST_SetRotation、ST_SetScale、ST_SetSkew、ST_SetSRID、ST_SetUpperLeft、ST_Resample、ST_Rescale、ST_Reskew、ST_SnapToGrid、ST_Resize、ST_Transform |
+| Raster Band Editors | ST_SetBandNoDataValue、ST_SetBandIsNoData |
+| Raster Band Statistics and Analytics | ST_Count、ST_CountAgg、ST_Histogram、ST_Quantile、ST_SummaryStats、ST_SummaryStatsAgg、ST_ValueCount |
+| Raster Outputs | ST_AsBinary、ST_AsGDALRaster、ST_AsJPEG、ST_AsPNG、ST_AsTIFF |
+| Raster Processing | ST_Clip、ST_ColorMap、ST_Intersection、ST_MapAlgebra、ST_Reclass、ST_Union、ST_Distinct4ma、ST_InvDistWeight4ma、ST_Max4ma、ST_Mean4ma、ST_Min4ma、ST_MinDist4ma、ST_Range4ma、ST_StdDev4ma、ST_Sum4ma、ST_Aspect、ST_HillShade、ST_Roughness、ST_Slope、ST_TPI、ST_TRI、Box3D、ST_ConvexHull、ST_DumpAsPolygons、ST_Envelope、ST_MinConvexHull、ST_Polygon、ST_Contains、ST_ContainsProperly、ST_Covers、ST_CoveredBy、ST_Disjoint、ST_Intersects、ST_Overlaps、ST_Touches、ST_SameAlignment、ST_NotSameAlignmentReason、ST_Within、ST_DWithin、ST_DFullyWithin |
+| Raster Operators | &&、&<、&>、=、@、~=、~ |
+
+### 空间索引
+
+GaussDB A数据库的PostGIS Extension支持GIST (Generalized Search Tree) 空间索引(分区表除外)。相比于B-tree索引,GIST索引适用于任意类型的非常规数据结构,可有效提高几何和地理数据信息的检索效率。
+
+使用如下命令创建GIST索引:
+
+```sql
+MogDB=# CREATE INDEX indexname ON tablename USING GIST ( geometryfield );
+```
+
+### 扩展限制
+
+- 只支持行存表;
+
+- spatial_ref_sys表在扩容期间只支持查询操作;
+
+- 目前不支持 window 函数;
+
+- long_xact 不支持;
+
+- 不支持 Interrupt 操作;
+
+## 示例
+
+- geometry类型
+
+ ```sql
+ MogDB=# CREATE TABLE testgeomobj (id serial, geom geometry NOT NULL);
+ MogDB=# INSERT INTO testgeomobj (geom) VALUES ('SRID=4326;POINT(-95.363151 29.763374)');
+ ```
+
+- raster类型
+
+ ```sql
+ MogDB=# CREATE TABLE dummy_rast(rid integer, rast raster);
+ MogDB=# INSERT INTO dummy_rast(rid, rast)
+ VALUES (1,
+ ('01' -- little endian (uint8 ndr)
+ ||
+ '0000' -- version (uint16 0)
+ ||
+ '0000' -- nBands (uint16 0)
+ ||
+ '0000000000000040' -- scaleX (float64 2)
+ ||
+ '0000000000000840' -- scaleY (float64 3)
+ ||
+ '000000000000E03F' -- ipX (float64 0.5)
+ ||
+ '000000000000E03F' -- ipY (float64 0.5)
+ ||
+ '0000000000000000' -- skewX (float64 0)
+ ||
+ '0000000000000000' -- skewY (float64 0)
+ ||
+ '00000000' -- SRID (int32 0)
+ ||
+ '0A00' -- width (uint16 10)
+ ||
+ '1400' -- height (uint16 20)
+ )::raster
+ );
+ ```
+
+- topology类型
+
+ ```sql
+ MogDB=# SELECT topology.CreateTopology(name, [srid], [tolerance]);
+ ```
diff --git a/product/zh/docs-mogdb/v3.0/administrator-guide/upgrade-guide.md b/product/zh/docs-mogdb/v3.0/administrator-guide/upgrade-guide.md
index 1425a50610015555dab46b155e847e01c81edd72..cb9da768a5bf538d1f26a41612b314c3536342df 100644
--- a/product/zh/docs-mogdb/v3.0/administrator-guide/upgrade-guide.md
+++ b/product/zh/docs-mogdb/v3.0/administrator-guide/upgrade-guide.md
@@ -1,364 +1,350 @@
----
-title: 升级指南
-summary: 升级指南
-author: Zhang Cuiping
-date: 2021-09-27
----
-
-# 升级指南
-
-## 概述
-
-本文档详细的描述了版本升级、回滚流程、以及具体的操作指导,同时提供了常见的问题解答及故障处理方法。
-
-## 读者对象
-
-本文档主要适用于升级的操作人员。操作人员必须具备以下经验和技能:
-
-- 熟悉当前网络的组网和相关网元的版本信息。
-- 有该设备维护经验,熟悉设备的操作维护方式。
-
-## 升级方案
-
-本节为指导用户选择升级方式。
-
-用户根据MogDB提供的新特性和数据库现状,确定是否对现有系统进行升级。
-
-当前支持的升级模式为就地升级和灰度升级。升级方式的策略又分为大版本升级和小版本升级。
-
-用户挑选升级方式后,系统会自动判断并选择合适的升级策略。
-
-* 就地升级: 升级期间需停止业务进行,一次性升级所有节点。
-
-* 灰度升级: 灰度升级支持全业务操作,也是一次性升级所有节点(目前仅支持从1.1.0版本到2.0及以上版本进行灰度升级)。
-
-## 升级前的版本要求(升级路径)
-
-MogDB升级版本要求如[表1](#biaoyi)所示。
-
-**表 1** 升级前的版本要求(升级路径)
-
-| 版本 | 升级说明 |
-| ------------------------- | ----------------------------------- |
-| MogDB 1.1.0版本之后的版本 | 可以升级到MogDB 1.1.0之后的任意版本 |
-
->  **说明:** 升级前版本,可以通过执行如下工具查看。
->
-> ```bash
-> gsql -V | --version
-> ```
-
-## 升级影响和升级约束
-
-升级过程需要注意以下事项。
-
-- 升级操作不能和扩容、缩容同时执行。
-- 不支持虚拟IP。
-- 升级过程中,不允许对wal_level,max_connections,max_prepared_transactions,max_locks_per_transaction这四个GUC参数的值进行修改。如果修改,会导致回滚后实例启动异常。
-- 建议在数据库系统空闲情况下进行升级,尽量避开业务繁忙的时间段(可按照经验判断,如节假日等)。
-- 升级前尽可能保证数据库正常。可以通过gs_om -t status查询,查询结果的cluster_state为Normal代表数据库正常。
-- 升级前保证数据库互信正常,可以在任意节点上,通过ssh hostname命令,连接另外一个节点进行验证。如果各机器间互连不用输入密码,说明互信正常(通常数据库状态正常时,互信一般都是正常的)。
-- 升级前后,数据库的部署方式(配置文件)不能发生变化。升级前会对部署方式进行校验,如果改变,会报错。
-- 升级前要保证操作系统处于健康状态,通过gs_checkos工具可以完成操作系统状态检查。
-- 就地升级需要停止业务,灰度升级支持全业务操作。
-- 数据库运行正常且主DN的数据完全同步到备DN。
-- 升级过程中不允许打开kerberos开关。
-- 请不要修改安装包中解压出来的version.cfg文件。
-- 如果升级过程中出现异常导致升级失败,需用户手动回滚,并且必须回滚成功后才能进行下一次升级。
-- 如果升级回滚成功后,再次升级成功,未提交阶段设置的GUC参数将失效。
-- 执行升级的过程中请不要手动设置GUC参数。
-- 灰度升级中,升级的时候都会产生不超过10s的业务中断
-- 升级过程中,必须保持内核版本与om版本一致才可执行om操作。这里的一致是指,内核代码和om代码都来自同一个软件包。如果执行了升级包的前置脚本却没有升级,或者升级回滚后没有执行基线包的前置脚本,就会造成内核代码和om代码的不一致。
-- 升级过程中如果系统表新增了字段,升级后通过`\d`命令将查看不到这些新增的字段。此时通过`select`命令可以查到这些新增的字段。
-- 升级需要guc参数enable_stream_replication=on,该参数为off时不允许升级。
-- 灰度升级中,业务并发要小于200并发读加200并发写的情况。
-- 若在MogDB 2.0之前的版本中使用了MOT表,则不支持升级到MogDB 2.0版本。
-
-## 升级流程
-
-本章介绍升级到该版本的主要升级过程。
-
-**图 1** 升级流程图
-
-
-
-> **说明:** 本文档中描述的时间仅供参考,实际操作时间以现场情况为准。
-
-**表 2** 升级流程执行效率估计
-
-
步骤 | 建议起始时间 | 耗时(天/小时/分钟) | 业务中断时长 | 备注 |
升级前准备与检查 | 升级操作前一天 | 约2~3小时。 | 对业务无影响。 | 升级前检查和备份数据、校验软件包等操作。 |
升级操作 | 业务空闲期 | 耗时主要集中在数据库的启动和停止以及每个database的系统表修改处。升级操作耗时一般不会超过30分钟。 | 与操作时长一致,一般不会超过30分钟。 | 依据指导书开始升级。 |
升级验证 | 业务空闲期 | 约30分钟。 | 与操作时长一致,约30分钟。 | - |
提交升级 | 业务空闲期 | 提交升级耗时一般不超过10分钟。 | 与操作时长一致,一般不超过10分钟。 | - |
升级版本回滚 | 业务空闲期 | 版本回滚耗时一般不会超过30分钟。 | 与操作时长一致,一般不会超过30分钟。 | - |
序号 | 升级准备项目项目 | 准备内容 | 建议起始时间 | 耗时(天/小时/分钟) |
1 | 收集节点信息 | 收集到数据库涉及节点的名称、IP地址,root、omm用户密码等环境信息。 | 升级前一天 | 1小时 |
2 | 设置root用户远程登录 | 设置配置文件,允许root用户远程登录。 | 升级前一天 | 2小时 |
3 | 备份数据 | 参考《管理指南》中的“备份与恢复”章节进行。 | 升级前一天 | 备份数据量和方案不同,耗时也不同 |
4 | 获取并校验升级包 | 获取升级软件包,进行完整性校验。 | 升级前一天 | 0.5小时 |
5 | 健康检查 | 使用gs_checkos工具完成操作系统状态检查。 | 升级前一天 | 0.5小时 |
6 | 检查数据库节点磁盘使用率 | 使用df命令查看磁盘使用率。 | 升级前一天 | 0.5小时 |
7 | 检查数据库状态 | 使用gs_om工具完成数据库状态检查。 | 升级前一天 | 0.5小时 |
序号 | -节点名称 | -节点IP | --root用户密码 | -omm用户密码 | -备注 | -
1 | --- | --- | -- | -- | -- | -
序号 | 验证项目 | 检查标准 | 检查结果 |
1 | 版本查询 | 查询升级后版本是否正确 | - |
2 | 健康检查 | 使用gs_checkos工具完成操作系统状态检查。 | - |
3 | 数据库状态 | 使用gs_om工具完成数据库状态检查。 | - |
步骤 | 建议起始时间 | 耗时(天/小时/分钟) | 业务中断时长 | 备注 |
升级前准备与检查 | 升级操作前一天 | 约2~3小时。 | 对业务无影响。 | 升级前检查和备份数据、校验软件包等操作。 |
升级操作 | 业务空闲期 | 耗时主要集中在数据库的启动和停止以及每个database的系统表修改处。升级操作耗时一般不会超过30分钟。 | 与操作时长一致,一般不会超过30分钟。 | 依据指导书开始升级。 |
升级验证 | 业务空闲期 | 约30分钟。 | 与操作时长一致,约30分钟。 | - |
提交升级 | 业务空闲期 | 提交升级耗时一般不超过10分钟。 | 与操作时长一致,一般不超过10分钟。 | - |
升级版本回滚 | 业务空闲期 | 版本回滚耗时一般不会超过30分钟。 | 与操作时长一致,一般不会超过30分钟。 | - |
序号 | 升级准备项目项目 | 准备内容 | 建议起始时间 | 耗时(天/小时/分钟) |
1 | 收集节点信息 | 收集到数据库涉及节点的名称、IP地址,root、omm用户密码等环境信息。 | 升级前一天 | 1小时 |
2 | 设置root用户远程登录 | 设置配置文件,允许root用户远程登录。 | 升级前一天 | 2小时 |
3 | 备份数据 | 参考《管理指南》中的“备份与恢复”章节进行。 | 升级前一天 | 备份数据量和方案不同,耗时也不同 |
4 | 获取并校验升级包 | 获取升级软件包,进行完整性校验。 | 升级前一天 | 0.5小时 |
5 | 健康检查 | 使用gs_checkos工具完成操作系统状态检查。 | 升级前一天 | 0.5小时 |
6 | 检查数据库节点磁盘使用率 | 使用df命令查看磁盘使用率。 | 升级前一天 | 0.5小时 |
7 | 检查数据库状态 | 使用gs_om工具完成数据库状态检查。 | 升级前一天 | 0.5小时 |
序号 | +节点名称 | +节点IP | ++root用户密码 | +omm用户密码 | +备注 | +
1 | ++- | ++- | +- | +- | +- | +
序号 | 验证项目 | 检查标准 | 检查结果 |
1 | 版本查询 | 查询升级后版本是否正确 | - |
2 | 健康检查 | 使用gs_checkos工具完成操作系统状态检查。 | - |
3 | 数据库状态 | 使用gs_om工具完成数据库状态检查。 | - |
巡检项 | -检查内容 | -是否支持--set | -
CheckCPU(检查CPU使用率) | -检查主机CPU占用率,如果idle大于30%并且iowait小于30%。则检查项通过,否则检查项不通过。 | -否 | -
CheckFirewall(检查防火墙状态) | -检查主机防火墙状态,如果防火墙关闭则检查项通过,否则检查项不通过。 | -是 | -
CheckTimeZone(检查时区一致性) | -检查MogDB内各节点时区,如果时区一致则检查通过,否则检查项不通过。 | -否 | -
CheckSysParams(检查系统参数) | -- 检查各节点操作系统参数,判断是否等于预期值。检查项不满足warning域则报warning,不满足NG域则检查项不通过,并打印不满足项。 - | -是 | -
CheckOSVer(检查操作系统版本) | -- 检查MogDB内各个节点的操作系统版本信息,如果满足版本兼容列表且MogDB在同一混搭列表中则检查通过,否则检查不通过。 - | -否 | -
CheckNTPD(检查NTPD服务) | -- 检查系统NTPD服务,如果服务开启且各节点时间误差在1分钟以内则检查项通过,否则检查项不通过。 - | -否 | -
CheckTHP(检查THP服务) | -检查系统THP服务,如果服务开启则检查项通过,否则检查项不通过。 | -是 | -
CheckSshdService(检查sshd服务是否已启动) | -检查系统是否存在sshd服务,若存在则检查项通过,否则检查项不通过。 | -否 | -
CheckCrondService(检查crontab服务是否已启动) | -检查系统是否存在crontab服务,若存在则检查项通过,否则检查项不通过。 | -是 |
-
CheckCrontabLeft(检查crontab是否有残留Gauss相关信息) | -- 检查crontab是否残留Gauss相关信息,若无该信息则检查项通过,否则检查项不通过。 - | -是 | -
CheckDirLeft(检查文件目录是否有残留) | -- 检查文件目录(/opt/enmo/Bigdata/ ,/var/log/Bigdata/, - /home/omm)是否存在,(若mount目录包含此目录则忽略)若不存在则查项通过,否则检查项不通过。 - | -是 | -
CheckProcessLeft(检查进程是否有残留) | -- 检查是否残留gaussdb和omm进程,若未残留则检查项通过,否则检查项不通过。 - | -是 | -
CheckStack(栈深度检查) | -- 检查栈深度,若各个节点不一致则报warning - ,若大于等于3072则检查项通过,否则不通过。 - | -是 | -
CheckOmmUserExist(检查omm用户是否存在) | -- 检查是否存在omm用户,若不存在omm用户则检查项通过,否则检查项不通过。 - | -是 | -
CheckPortConflict(检查数据库节点端口是否占用) | -- 检查数据库节点端口是否已被占用,若未占用则检查项通过,否则检查项不通过。 - | -是 | -
CheckSysPortRange(检查ip_local_port_range设置范围) | -- 检查ip_local_port_range系统参数范围,若范围在26000~65535则检查项通过,否则检查项不通过。 - | -是 | -
CheckEtcHosts(检查/etc/hosts中是否有重复地址以及localhost配置) | -- 检查/etc/hosts没有配置localhost检查项不通过,存在带有#MogDB注释的映射则检查项不通过,相同IP不同hostname则检查项不通过,否则通过,若hostname相同,但ip不同检查项不通过。 - | -否 | -
CheckCpuCount(检查CPU核数) | -- 检查CPU核心与可用CPU不符检查项不通过,相符但存在不可用信息Warning。 - 所有节点CPU信息不相同检查项不通过。 - | -否 | -
CheckHyperThread(检查超线程是否打开) | -检查超线程,若打开则检查项通过,否则检查项不通过。 | -否 | -
CheckMemInfo(检查内存总大小) | -- 检查各节点总内存大小是否一致,若检查结果一致,则检查项通过,否则报warning。 - | -否 | -
CheckSshdConfig(检查sshd服务配置是否正确) | -
- 检查/etc/ssh/sshd_config文件, - (a)PasswordAuthentication=yes; - (b)MaxStartups=1000; - (c)UseDNS=no; - (d)ClientAliveInterval大于10800或者等于0 - 配置如上所示则检查项通过,若a、c配置不正确则报warning,b、d配置不正确则检查项不通过。 - |
- 是 | -
CheckMaxHandle(检查句柄最大设置) | -- 检查操作系统最大句柄值,如果该值大于等于1000000则检查项通过,否则检查项不通过。 - | -是 | -
CheckKernelVer(检查内核版本) | -- 检查各节点系统内核版本信息,如果版本信息一致则检查项通过,否则报Warning。 - | -否 | -
CheckEncoding(检查编码格式) | -- 检查MogDB内各个节点的系统编码,如果编码一致则检查项通过,否则检查项不通过。 - | -否 | -
CheckBootItems(检查启动项) | -检查是否有手动添加的启动项,如果没有则检查通过,否则检查不通过。 | -否 | -
CheckDropCache(检查DropCache进程) | -- 检查各节点是否有dropcache进程在运行,若有则检查通过,否则检查不通过。 - | -否 | -
CheckFilehandle(检查文件句柄) | -
- 此检查项检查以下两项,两项都通过为通过,否则为不通过: - - 检查每个gaussdb进程打开的进程数是否超过80万,不超过则检查通过,否则检查不通过。 - - 检查是否有slave进程使用的句柄数超过master进程,如果没有则检查通过,否则检查不通过。 - |
- 否 | -
CheckKeyProAdj(检查关键进程omm_adj的值) | -- 检查所有关键进程,如果所有关键进程的omm_adj值为0,则通过,否则不通过。 - | -否 | -
CheckMaxProcMemory(检查max_process_memory参数设置是否合理) | -- 检查数据库节点的max_process_memory值,判断该参数的值是否大于1G,若不大于则检查项通过,否则检查项不通过。 - | -是 | -
巡检项 | -检查内容 | -是否支持--set | -
CheckSwapMemory(检查交换内存) | -- 检查交换内存和总内存大小,若检查结果为0则检查项通过,否则检查项报Warning大于总内存时检查项不通过。 - | -是 | -
CheckLogicalBlock(检查磁盘逻辑块) | -检查磁盘逻辑块大小,若为512则检查项通过,否则检查项不通过。 | -是 | -
CheckIOrequestqueue(检查IO请求) | -检查IO值,如果该值为32768则检查项通过,否则检查项不通过。 | -是 | -
CheckMaxAsyIOrequests(检查最大异步IO请求) | -- 获取当前异步IO请求值,当前异步IO请求值大于当前节点数据库实例数*1048576和104857600则检查项通过,否则检查项不通过。 - | -是 | -
CheckIOConfigure(检查IO配置) | -检查IO配置,如果是deadline则检查项通过,否则检查项不通过。 | -是 | -
CheckBlockdev(检查磁盘预读块) | -- 检查磁盘预读块大小,如果预读块大小为16384则检查项通过,否则检查项不通过。 - | -是 | -
CheckDiskFormat(检查磁盘格式参数) | -- 检查磁盘XFS格式信息,如果配置为'rw,noatime,inode64,allocsize=16m'则检查项通过,否则报warning。 - | -否 | -
CheckInodeUsage(检查磁盘inodes使用率) | -
- MogDB路径(GAUSSHOME/PGHOST/GPHOME/GAUSSLOG/tmp及实例目录) - 检查以上指定目录使用率,如果使用率超过warning阈值(默认为60%) - 报warning超过NG阈值(默认为80%)则检查项不通过,否则通过。 - |
- 否 | -
CheckSpaceUsage(检查磁盘使用率) | -
- MogDB路径(GAUSSHOME/PGHOST/GPHOME/GAUSSLOG/tmp及实例目录) - 检查磁盘以上指定目录(目录列表)使用率,如果使用率超过warning阈值(默认为70%) - 报warning超过NG阈值(默认为90%)则检查项不通过。MogDB路径下检查GAUSSHOME/PGHOST/GPHOME/GAUSSLOG/tmp/data路径的剩余空间,不满足阈值则检查项不通过,否则通过。 - |
- 否 | -
CheckDiskConfig(检查磁盘空间大小一致性) | -检查磁盘名大小挂载点是否一致,若一致则检查项通过,否则报warning。 | -否 | -
CheckXid(检查CheckXid数值) | -查询xid的数值,如果大于10亿报Warning,大于18亿则检查项不通过。 | -否 | -
CheckSysTabSize(检查每个实例的系统表容量) | -- 如果每一块磁盘的剩余容量大于该磁盘上所有实例的系统表容量总和则检查项通过,否则检查项不通过。 - | -否 | -
巡检项 | -检查内容 | -是否支持--set | -
CheckClusterState(检查MogDB状态) | -- 检查fencedUDF状态,如果fencedUDF状态为down则报warning;检查MogDB状态,如果MogDB状态为Normal则检查项通过,否则检查项不通过。 - | -否 | -
CheckDBParams(检查MogDB参数) | -
- 检查数据库主节点检查共享缓冲区大小和Sem参数。 - 数据库节点检查共享缓冲区大小和最大连接数。 共享缓冲区需要大于128KB且大于shmmax且大于shmall*PAGESIZE - - 若存在数据库主节点,则Sem值需大于(数据库节点最大连接数+150)/16向上取整。 以上项完全满足则检查项通过,否则检查项不通过。 - |
- 是 | -
CheckDebugSwitch(检查日志级别) | -- 在各节点检查各实例的配置文件中log_min_messages参数的值,为空则认为是Warning,判断日志级别非waring,则报warning。 - | -是 | -
CheckUpVer(检查升级版本是否一致) | -- 检查MogDB各个节点上升级包的版本,如果一致则检查项通过,否则检查项不通过。使用时,需指定升级软件包路径。 - | -否 | -
CheckDirPermissions(检查目录权限) | -- 检查节点目录(实例Xlog路径、GAUSSHOME、GPHOME、PGHOST、GAUSSLOG)权限,如果目录有写入权限且不大于750则检查项通过,否则检查项不通过。 - | -是 | -
CheckEnvProfile(检查环境变量) | -- 检查节点环境变量(\$GAUSSHOME、\$LD_LIBRARY_PATH、\$PATH),检查CMS/CMA/数据库节点进程的环境变量。如果环境变量存在并配置正确,进程的环境变量存在则检查项通过,否则检查项不通过。 - | -否 | -
CheckGaussVer(检查gaussdb版本) | -- 检查各个节点的网卡型号以及驱动版本是否一致,一致则通过,否则报warning。 - | -否 | -
CheckPortRange(检查端口范围) | -- 若ip_local_port_range的范围在阈值范围内(默认是26000 - 65535),并且实例端口不在ip_local_port_range范围内则检查项通过,否则检查项不通过。 - | -否 | -
CheckReadonlyMode(检查只读模式) | -- 检查MogDB数据库主节点default_transaction_read_only值若为off则检查通过,否则不通过。 - | -否 | -
CheckCatchup(检查Catchup) | -- 检查gaussdb进程堆栈是否能搜索到CatchupMain函数,若搜索不到则检查项通过,否则检查项不通过。 - | -否 | -
CheckProcessStatus(检查MogDB进程属主) | -- 检查 - 'gaussdb'进程属主,若不存在omm以外的属主则检查项通过,否则检查项不通过。 - | -否 | -
CheckSpecialFile(特殊文件检查) | -- 检查tmp目录(PGHOST)、OM目录(GPHOME)、日志目录(GAUSSLOG)、data目录、程序目录(GAUSSHOME)下文件是否存在特殊字符以及非omm用户的文件,若不存在则检查项通过,否则检查项不通过。 - | -否 | -
CheckCollector(检查MogDB的信息收集) | -- 在output目录下查看信息收集是否成功,若收集成功则检查项通过,否则检查项不通过。 - | -否 | -
CheckLargeFile(检查数据目录大文件) | -- 检查各个数据库节点目录是否存在超过4G的文件。任一数据库节点目录及其子目录有超过4G的单个文件,则检查不通过,否则检查通过。 - | -否 | -
CheckProStartTime(关键进程启动时间检测) | -- 检查关键进程启动时间是否间隔超过5分钟,超过则检查不通过,否则检查通过。 - | -否 | -
CheckDilateSysTab(检查系统表膨胀) | -检查系统表是否膨胀,若膨胀则不通过,否则检查通过。 | -是 | -
CheckMpprcFile(检测环境变量分离文件改动) | -- 检查是否存在对环境变量分离文件的改动,若存在则检查不通过,否则检查通过。 - | -否 | -
巡检项 | -检查内容 | -是否支持--set | -
CheckLockNum(检查锁数量) | -检查数据库锁数量,查询成功检查项通过。 | -否 | -
CheckArchiveParameter(检查归档参数) | -- 检查数据库归档参数,如果未打开或打开且在数据库节点下则检查项通过, - 打开且不在数据库主节点目录下则检查项不通过。 - | -是 | -
CheckCurConnCount(检查当前连接数) | -- 检查数据库连接数,如果连接数小于最大连接数的90%则检查项通过,否则检查项不通过。 - | -否 | -
CheckCursorNum(检查当前游标数) | -检查数据库的游标数,检查成功则检查项通过,否则检查项不通过。 | -否 | -
- CheckMaxDatanode(检查comm_max_datanode参数值范围小于数据库节点个数) - | -- 检查最大数据库节点数,若最大数据库节点数小于xml配置的节点数*数据库节点数(默认值为90*5)报warning,否则检查项通过。 - | -是 | -
CheckPgPreparedXacts(检查残留两阶段事务) | -- 检查pgxc_prepared_xacts参数,如果不存在二阶段事务则检查项通过,否则检查项不通过。 - | -是 | -
CheckPgxcgroup(检查pgxc_group表中需要重分布的个数) | -- 检查pgxc_group表中需要重分布的个数,检查结果为0则通过, 否则不通过。 - | -否 | -
CheckLockState(MogDB是否被锁) | -检查MogDB是否被锁,若MogDB被锁则不通过,否则检查项通过。 | -否 | -
CheckIdleSession(检查业务停止) | -检查非空闲会话数,如果数量为0则检查项通过,否则检查项不通过。 | -否 | -
CheckDBConnection(检查数据库连接) | -检查能否连接数据库,如果连接成功则检查项通过,否则检查项不通过。 | -否 | -
CheckGUCValue(GUC参数检查) | -- 检查(max_connections + max_prepared_transactions) * - max_locks_per_transaction的值,若该值大于等于1000000则检查项通过,否则检查项不通过。 - | -是 | -
CheckPMKData(检查PMK异常数据) | -- 检查数据库PMK - schema是否包含有异常数据,如果不存在异常数据则检查项通过,否则检查项不通过。 - | -是 | -
CheckSysTable(检查系统表) | -检查系统表,检查成功则检查项通过。 | -否 | -
CheckSysTabSize(检查每个实例的系统表容量) | -- 如果每一块磁盘的剩余容量大于该磁盘上所有实例的系统表容量总和则检查项通过,否则检查项不通过。 - | -否 | -
CheckTableSpace(检查表空间路径) | -- 表空间路径和MogDB路径之间不能存在嵌套且表空间路径相互不能存在嵌套,则检查项通过,否则检查项不通过。 - | -否 | -
CheckTableSkew(检查表级别数据倾斜) | -- 若存在表在MogDB各数据库节点上的数据分布不均衡,且分布数据最多的数据库节点比最低的数据库节点所分布的数据多100000条以上,则检查不通过,否则检查通过。 - | -否 | -
CheckDNSkew(检查数据库节点级别数据分布倾斜) | -- 检查数据库节点级别的表倾斜数据,若分布数据最高的数据库节点比分布数据最低的数据库节点数据量高于5%,则检查不通过,否则检查通过。 - | -否 | -
CheckUnAnalyzeTable(检查未做analyze的表) | -- 若存在未做analyze的表,并且表中至少包含一条数据,则检查不通过,否则检查通过。 - | -是 | -
CheckCreateView(创建视图检查) | -- 创建视图时,如果查询语句中含有子查询,并且子查询结果查询解析和重写之后存在别名重复,检查不通过,否则检查通过。 - | -否 | -
CheckHashIndex(hash index语法检查) | -如果存在hash index则检查不通过,否则检查通过。 | -否 | -
CheckNextvalInDefault(检查Default表达式中包含nextval(sequence)) | -- 检查Default表达式中是否包含nextval(sequence),若包含则不通过,否则通过。 - | -否 | -
CheckNodeGroupName(Node group编码格式检查) | -- 存在非SQL_ASCII字符的Node Group名称则检查不通过,不存在则检查通过 。 - | -是 | -
CheckPgxcRedistb(检查重分布残留的临时表 ) | -- 检查数据库中是否存在重分布残留的临时表,若不存在则检查通过,否则检查不通过 - 。 - | -否 | -
CheckReturnType(用户自定义函数返回值类型检查) | -- 检查用户自定义函数是否包含非法返回类型,若包含则检查不通过,否则检查通过。 - | -否 | -
CheckSysadminUser(检查sysadmin用户) | -- 检查除MogDB属主外是否存在数据库管理员用户,若存在则不通过,否则检查通过。 - | -否 | -
CheckTDDate(TD数据库中orc表date类型列检查) | -- 检查TD模式数据库下的orc表中是否包含date类型的列,若包含检查不通过,否则检查通过。 - | -否 | -
CheckDropColumn(drop column检查) | -如果存在drop column的表,则检查不通过,否则检查通过。 | -否 | -
CheckDiskFailure(检查磁盘故障) | -- 对MogDB中的所有数据做全量查询,若存在查询错误则检查不通过,否则检查通过。 - | -否 | -
巡检项 | -检查内容 | -是否支持--set | -
CheckPing(检查网络通畅) | -- 检查MogDB内所有节点的互通性,如果各节点所有IP均可ping通则检查项通过,否则检查项不通过。 - | -否 | -
CheckRXTX(检查网卡RXTX值) | -- 检查节点backIP的RX/TX值,如果该值为4096则检查项通过,否则检查项不通过。 - | -是 | -
CheckMTU(检查网卡MTU值) | -- 检查节点backIP对应的网卡MTU值( - bond后的物理网卡要确保一致),如果该值不是8192或1500报warning若MogDBMTU值一致则检查项通过,否则检查项不通过。 - | -是 | -
CheckNetWorkDrop(检查网络掉包率) | -- 检查各IP1分钟内网络掉包率,如果不超过1%则检查项通过,否则检查项不通过。 - | -否 | -
CheckBond(检查网卡绑定模式) | -- 检查是否有配置BONDING_OPTS或BONDING_MODULE_OPTS,若没有配置则报warning。检查各节点bond模式是否一致,如果同时满足则检查项通过,否则检查项不通过。 - | -是 | -
CheckMultiQueue(检查网卡多队列) | -- 检查cat - /proc/interrupts,判断是否开启网卡多队列且绑定不同CPU,如果满足则检查项通过,否则检查项不通过。 - | -是 | -
CheckUsedPort(检查随机端口使用数量) | -
- 检查net.ipv4.ip_local_port_range,范围大于等于OS默认值通过(32768-61000);
- 检查TCP协议随机端口数,小于总随机端口数的80%通过。 - |
- 否 | -
CheckNICModel(网卡型号和驱动版本一致性检查) | -- 检查各个节点的网卡型号以及驱动版本是否一致,一致则通过,否则报warning。 - | -否 | -
CheckRouting(本地路由表检查) | -检查各节点在业务IP网段的IP个数,超过1个则报warning,否则检查通过。 | -否 | -
CheckNetSpeed(检查网卡接收带宽,ping值,丢包率) | -
- 网络满载时,检查网卡平均接收带宽大于600MB通过; - 网络满载时,检查网络ping值,小于1秒通过; - 网络满载时,检查网卡丢包率,小于1%通过。 - |
- 否 | -
巡检项 | -检查内容 | -是否支持--set | -
CheckDataDiskUsage(检查数据库节点磁盘空间使用率) | -检查磁盘数据库节点目录使用率,如果使用率低于90%则检查项通过,否则检查项不通过。 | -否 | -
巡检项 | +检查内容 | +是否支持--set | +
CheckCPU(检查CPU使用率) | +检查主机CPU占用率,如果idle大于30%并且iowait小于30%。则检查项通过,否则检查项不通过。 | +否 | +
CheckFirewall(检查防火墙状态) | +检查主机防火墙状态,如果防火墙关闭则检查项通过,否则检查项不通过。 | +是 | +
CheckTimeZone(检查时区一致性) | +检查MogDB内各节点时区,如果时区一致则检查通过,否则检查项不通过。 | +否 | +
CheckSysParams(检查系统参数) | ++ 检查各节点操作系统参数,判断是否等于预期值。检查项不满足warning域则报warning,不满足NG域则检查项不通过,并打印不满足项。 + | +是 | +
CheckOSVer(检查操作系统版本) | ++ 检查MogDB内各个节点的操作系统版本信息,如果满足版本兼容列表且MogDB在同一混搭列表中则检查通过,否则检查不通过。 + | +否 | +
CheckNTPD(检查NTPD服务) | ++ 检查系统NTPD服务,如果服务开启且各节点时间误差在1分钟以内则检查项通过,否则检查项不通过。 + | +否 | +
CheckTHP(检查THP服务) | +检查系统THP服务,如果服务开启则检查项通过,否则检查项不通过。 | +是 | +
CheckSshdService(检查sshd服务是否已启动) | +检查系统是否存在sshd服务,若存在则检查项通过,否则检查项不通过。 | +否 | +
CheckCrondService(检查crontab服务是否已启动) | +检查系统是否存在crontab服务,若存在则检查项通过,否则检查项不通过。 | +是 |
+
CheckCrontabLeft(检查crontab是否有残留Gauss相关信息) | ++ 检查crontab是否残留Gauss相关信息,若无该信息则检查项通过,否则检查项不通过。 + | +是 | +
CheckDirLeft(检查文件目录是否有残留) | ++ 检查文件目录(/opt/enmo/Bigdata/ ,/var/log/Bigdata/, + /home/omm)是否存在,(若mount目录包含此目录则忽略)若不存在则查项通过,否则检查项不通过。 + | +是 | +
CheckProcessLeft(检查进程是否有残留) | ++ 检查是否残留gaussdb和omm进程,若未残留则检查项通过,否则检查项不通过。 + | +是 | +
CheckStack(栈深度检查) | ++ 检查栈深度,若各个节点不一致则报warning + ,若大于等于3072则检查项通过,否则不通过。 + | +是 | +
CheckOmmUserExist(检查omm用户是否存在) | ++ 检查是否存在omm用户,若不存在omm用户则检查项通过,否则检查项不通过。 + | +是 | +
CheckPortConflict(检查数据库节点端口是否占用) | ++ 检查数据库节点端口是否已被占用,若未占用则检查项通过,否则检查项不通过。 + | +是 | +
CheckSysPortRange(检查ip_local_port_range设置范围) | ++ 检查ip_local_port_range系统参数范围,若范围在26000~65535则检查项通过,否则检查项不通过。 + | +是 | +
CheckEtcHosts(检查/etc/hosts中是否有重复地址以及localhost配置) | ++ 检查/etc/hosts没有配置localhost检查项不通过,存在带有#MogDB注释的映射则检查项不通过,相同IP不同hostname则检查项不通过,否则通过,若hostname相同,但ip不同检查项不通过。 + | +否 | +
CheckCpuCount(检查CPU核数) | ++ 检查CPU核心与可用CPU不符检查项不通过,相符但存在不可用信息Warning。 + 所有节点CPU信息不相同检查项不通过。 + | +否 | +
CheckHyperThread(检查超线程是否打开) | +检查超线程,若打开则检查项通过,否则检查项不通过。 | +否 | +
CheckMemInfo(检查内存总大小) | ++ 检查各节点总内存大小是否一致,若检查结果一致,则检查项通过,否则报warning。 + | +否 | +
CheckSshdConfig(检查sshd服务配置是否正确) | +
+ 检查/etc/ssh/sshd_config文件, + (a)PasswordAuthentication=yes; + (b)MaxStartups=1000; + (c)UseDNS=no; + (d)ClientAliveInterval大于10800或者等于0 + 配置如上所示则检查项通过,若a、c配置不正确则报warning,b、d配置不正确则检查项不通过。 + |
+ 是 | +
CheckMaxHandle(检查句柄最大设置) | ++ 检查操作系统最大句柄值,如果该值大于等于1000000则检查项通过,否则检查项不通过。 + | +是 | +
CheckKernelVer(检查内核版本) | ++ 检查各节点系统内核版本信息,如果版本信息一致则检查项通过,否则报Warning。 + | +否 | +
CheckEncoding(检查编码格式) | ++ 检查MogDB内各个节点的系统编码,如果编码一致则检查项通过,否则检查项不通过。 + | +否 | +
CheckBootItems(检查启动项) | +检查是否有手动添加的启动项,如果没有则检查通过,否则检查不通过。 | +否 | +
CheckDropCache(检查DropCache进程) | ++ 检查各节点是否有dropcache进程在运行,若有则检查通过,否则检查不通过。 + | +否 | +
CheckFilehandle(检查文件句柄) | +
+ 此检查项检查以下两项,两项都通过为通过,否则为不通过: - + 检查每个gaussdb进程打开的进程数是否超过80万,不超过则检查通过,否则检查不通过。 - + 检查是否有slave进程使用的句柄数超过master进程,如果没有则检查通过,否则检查不通过。 + |
+ 否 | +
CheckKeyProAdj(检查关键进程omm_adj的值) | ++ 检查所有关键进程,如果所有关键进程的omm_adj值为0,则通过,否则不通过。 + | +否 | +
CheckMaxProcMemory(检查max_process_memory参数设置是否合理) | ++ 检查数据库节点的max_process_memory值,判断该参数的值是否大于1G,若不大于则检查项通过,否则检查项不通过。 + | +是 | +
巡检项 | +检查内容 | +是否支持--set | +
CheckSwapMemory(检查交换内存) | ++ 检查交换内存和总内存大小,若检查结果为0则检查项通过,否则检查项报Warning大于总内存时检查项不通过。 + | +是 | +
CheckLogicalBlock(检查磁盘逻辑块) | +检查磁盘逻辑块大小,若为512则检查项通过,否则检查项不通过。 | +是 | +
CheckIOrequestqueue(检查IO请求) | +检查IO值,如果该值为32768则检查项通过,否则检查项不通过。 | +是 | +
CheckMaxAsyIOrequests(检查最大异步IO请求) | ++ 获取当前异步IO请求值,当前异步IO请求值大于当前节点数据库实例数*1048576和104857600则检查项通过,否则检查项不通过。 + | +是 | +
CheckIOConfigure(检查IO配置) | +检查IO配置,如果是deadline则检查项通过,否则检查项不通过。 | +是 | +
CheckBlockdev(检查磁盘预读块) | ++ 检查磁盘预读块大小,如果预读块大小为16384则检查项通过,否则检查项不通过。 + | +是 | +
CheckDiskFormat(检查磁盘格式参数) | ++ 检查磁盘XFS格式信息,如果配置为'rw,noatime,inode64,allocsize=16m'则检查项通过,否则报warning。 + | +否 | +
CheckInodeUsage(检查磁盘inodes使用率) | +
+ MogDB路径(GAUSSHOME/PGHOST/GPHOME/GAUSSLOG/tmp及实例目录) + 检查以上指定目录使用率,如果使用率超过warning阈值(默认为60%) + 报warning超过NG阈值(默认为80%)则检查项不通过,否则通过。 + |
+ 否 | +
CheckSpaceUsage(检查磁盘使用率) | +
+ MogDB路径(GAUSSHOME/PGHOST/GPHOME/GAUSSLOG/tmp及实例目录) + 检查磁盘以上指定目录(目录列表)使用率,如果使用率超过warning阈值(默认为70%) + 报warning超过NG阈值(默认为90%)则检查项不通过。MogDB路径下检查GAUSSHOME/PGHOST/GPHOME/GAUSSLOG/tmp/data路径的剩余空间,不满足阈值则检查项不通过,否则通过。 + |
+ 否 | +
CheckDiskConfig(检查磁盘空间大小一致性) | +检查磁盘名大小挂载点是否一致,若一致则检查项通过,否则报warning。 | +否 | +
CheckXid(检查CheckXid数值) | +查询xid的数值,如果大于10亿报Warning,大于18亿则检查项不通过。 | +否 | +
CheckSysTabSize(检查每个实例的系统表容量) | ++ 如果每一块磁盘的剩余容量大于该磁盘上所有实例的系统表容量总和则检查项通过,否则检查项不通过。 + | +否 | +
巡检项 | +检查内容 | +是否支持--set | +
CheckClusterState(检查MogDB状态) | ++ 检查fencedUDF状态,如果fencedUDF状态为down则报warning;检查MogDB状态,如果MogDB状态为Normal则检查项通过,否则检查项不通过。 + | +否 | +
CheckDBParams(检查MogDB参数) | +
+ 检查数据库主节点检查共享缓冲区大小和Sem参数。 + 数据库节点检查共享缓冲区大小和最大连接数。 共享缓冲区需要大于128KB且大于shmmax且大于shmall*PAGESIZE + + 若存在数据库主节点,则Sem值需大于(数据库节点最大连接数+150)/16向上取整。 以上项完全满足则检查项通过,否则检查项不通过。 + |
+ 是 | +
CheckDebugSwitch(检查日志级别) | ++ 在各节点检查各实例的配置文件中log_min_messages参数的值,为空则认为是Warning,判断日志级别非waring,则报warning。 + | +是 | +
CheckUpVer(检查升级版本是否一致) | ++ 检查MogDB各个节点上升级包的版本,如果一致则检查项通过,否则检查项不通过。使用时,需指定升级软件包路径。 + | +否 | +
CheckDirPermissions(检查目录权限) | ++ 检查节点目录(实例Xlog路径、GAUSSHOME、GPHOME、PGHOST、GAUSSLOG)权限,如果目录有写入权限且不大于750则检查项通过,否则检查项不通过。 + | +是 | +
CheckEnvProfile(检查环境变量) | ++ 检查节点环境变量(\$GAUSSHOME、\$LD_LIBRARY_PATH、\$PATH),检查CMS/CMA/数据库节点进程的环境变量。如果环境变量存在并配置正确,进程的环境变量存在则检查项通过,否则检查项不通过。 + | +否 | +
CheckGaussVer(检查gaussdb版本) | ++ 检查各个节点的网卡型号以及驱动版本是否一致,一致则通过,否则报warning。 + | +否 | +
CheckPortRange(检查端口范围) | ++ 若ip_local_port_range的范围在阈值范围内(默认是26000 + 65535),并且实例端口不在ip_local_port_range范围内则检查项通过,否则检查项不通过。 + | +否 | +
CheckReadonlyMode(检查只读模式) | ++ 检查MogDB数据库主节点default_transaction_read_only值若为off则检查通过,否则不通过。 + | +否 | +
CheckCatchup(检查Catchup) | ++ 检查gaussdb进程堆栈是否能搜索到CatchupMain函数,若搜索不到则检查项通过,否则检查项不通过。 + | +否 | +
CheckProcessStatus(检查MogDB进程属主) | ++ 检查 + 'gaussdb'进程属主,若不存在omm以外的属主则检查项通过,否则检查项不通过。 + | +否 | +
CheckSpecialFile(特殊文件检查) | ++ 检查tmp目录(PGHOST)、OM目录(GPHOME)、日志目录(GAUSSLOG)、data目录、程序目录(GAUSSHOME)下文件是否存在特殊字符以及非omm用户的文件,若不存在则检查项通过,否则检查项不通过。 + | +否 | +
CheckCollector(检查MogDB的信息收集) | ++ 在output目录下查看信息收集是否成功,若收集成功则检查项通过,否则检查项不通过。 + | +否 | +
CheckLargeFile(检查数据目录大文件) | ++ 检查各个数据库节点目录是否存在超过4G的文件。任一数据库节点目录及其子目录有超过4G的单个文件,则检查不通过,否则检查通过。 + | +否 | +
CheckProStartTime(关键进程启动时间检测) | ++ 检查关键进程启动时间是否间隔超过5分钟,超过则检查不通过,否则检查通过。 + | +否 | +
CheckDilateSysTab(检查系统表膨胀) | +检查系统表是否膨胀,若膨胀则不通过,否则检查通过。 | +是 | +
CheckMpprcFile(检测环境变量分离文件改动) | ++ 检查是否存在对环境变量分离文件的改动,若存在则检查不通过,否则检查通过。 + | +否 | +
巡检项 | +检查内容 | +是否支持--set | +
CheckLockNum(检查锁数量) | +检查数据库锁数量,查询成功检查项通过。 | +否 | +
CheckArchiveParameter(检查归档参数) | ++ 检查数据库归档参数,如果未打开或打开且在数据库节点下则检查项通过, + 打开且不在数据库主节点目录下则检查项不通过。 + | +是 | +
CheckCurConnCount(检查当前连接数) | ++ 检查数据库连接数,如果连接数小于最大连接数的90%则检查项通过,否则检查项不通过。 + | +否 | +
CheckCursorNum(检查当前游标数) | +检查数据库的游标数,检查成功则检查项通过,否则检查项不通过。 | +否 | +
+ CheckMaxDatanode(检查comm_max_datanode参数值范围小于数据库节点个数) + | ++ 检查最大数据库节点数,若最大数据库节点数小于xml配置的节点数*数据库节点数(默认值为90*5)报warning,否则检查项通过。 + | +是 | +
CheckPgPreparedXacts(检查残留两阶段事务) | ++ 检查pgxc_prepared_xacts参数,如果不存在二阶段事务则检查项通过,否则检查项不通过。 + | +是 | +
CheckPgxcgroup(检查pgxc_group表中需要重分布的个数) | ++ 检查pgxc_group表中需要重分布的个数,检查结果为0则通过, 否则不通过。 + | +否 | +
CheckLockState(MogDB是否被锁) | +检查MogDB是否被锁,若MogDB被锁则不通过,否则检查项通过。 | +否 | +
CheckIdleSession(检查业务停止) | +检查非空闲会话数,如果数量为0则检查项通过,否则检查项不通过。 | +否 | +
CheckDBConnection(检查数据库连接) | +检查能否连接数据库,如果连接成功则检查项通过,否则检查项不通过。 | +否 | +
CheckGUCValue(GUC参数检查) | ++ 检查(max_connections + max_prepared_transactions) * + max_locks_per_transaction的值,若该值大于等于1000000则检查项通过,否则检查项不通过。 + | +是 | +
CheckPMKData(检查PMK异常数据) | ++ 检查数据库PMK + schema是否包含有异常数据,如果不存在异常数据则检查项通过,否则检查项不通过。 + | +是 | +
CheckSysTable(检查系统表) | +检查系统表,检查成功则检查项通过。 | +否 | +
CheckSysTabSize(检查每个实例的系统表容量) | ++ 如果每一块磁盘的剩余容量大于该磁盘上所有实例的系统表容量总和则检查项通过,否则检查项不通过。 + | +否 | +
CheckTableSpace(检查表空间路径) | ++ 表空间路径和MogDB路径之间不能存在嵌套且表空间路径相互不能存在嵌套,则检查项通过,否则检查项不通过。 + | +否 | +
CheckTableSkew(检查表级别数据倾斜) | ++ 若存在表在MogDB各数据库节点上的数据分布不均衡,且分布数据最多的数据库节点比最低的数据库节点所分布的数据多100000条以上,则检查不通过,否则检查通过。 + | +否 | +
CheckDNSkew(检查数据库节点级别数据分布倾斜) | ++ 检查数据库节点级别的表倾斜数据,若分布数据最高的数据库节点比分布数据最低的数据库节点数据量高于5%,则检查不通过,否则检查通过。 + | +否 | +
CheckUnAnalyzeTable(检查未做analyze的表) | ++ 若存在未做analyze的表,并且表中至少包含一条数据,则检查不通过,否则检查通过。 + | +是 | +
CheckCreateView(创建视图检查) | ++ 创建视图时,如果查询语句中含有子查询,并且子查询结果查询解析和重写之后存在别名重复,检查不通过,否则检查通过。 + | +否 | +
CheckHashIndex(hash index语法检查) | +如果存在hash index则检查不通过,否则检查通过。 | +否 | +
CheckNextvalInDefault(检查Default表达式中包含nextval(sequence)) | ++ 检查Default表达式中是否包含nextval(sequence),若包含则不通过,否则通过。 + | +否 | +
CheckNodeGroupName(Node group编码格式检查) | ++ 存在非SQL_ASCII字符的Node Group名称则检查不通过,不存在则检查通过 。 + | +是 | +
CheckPgxcRedistb(检查重分布残留的临时表 ) | ++ 检查数据库中是否存在重分布残留的临时表,若不存在则检查通过,否则检查不通过 + 。 + | +否 | +
CheckReturnType(用户自定义函数返回值类型检查) | ++ 检查用户自定义函数是否包含非法返回类型,若包含则检查不通过,否则检查通过。 + | +否 | +
CheckSysadminUser(检查sysadmin用户) | ++ 检查除MogDB属主外是否存在数据库管理员用户,若存在则不通过,否则检查通过。 + | +否 | +
CheckTDDate(TD数据库中orc表date类型列检查) | ++ 检查TD模式数据库下的orc表中是否包含date类型的列,若包含检查不通过,否则检查通过。 + | +否 | +
CheckDropColumn(drop column检查) | +如果存在drop column的表,则检查不通过,否则检查通过。 | +否 | +
CheckDiskFailure(检查磁盘故障) | ++ 对MogDB中的所有数据做全量查询,若存在查询错误则检查不通过,否则检查通过。 + | +否 | +
巡检项 | +检查内容 | +是否支持--set | +
CheckPing(检查网络通畅) | ++ 检查MogDB内所有节点的互通性,如果各节点所有IP均可ping通则检查项通过,否则检查项不通过。 + | +否 | +
CheckRXTX(检查网卡RXTX值) | ++ 检查节点backIP的RX/TX值,如果该值为4096则检查项通过,否则检查项不通过。 + | +是 | +
CheckMTU(检查网卡MTU值) | ++ 检查节点backIP对应的网卡MTU值( + bond后的物理网卡要确保一致),如果该值不是8192或1500报warning若MogDBMTU值一致则检查项通过,否则检查项不通过。 + | +是 | +
CheckNetWorkDrop(检查网络掉包率) | ++ 检查各IP1分钟内网络掉包率,如果不超过1%则检查项通过,否则检查项不通过。 + | +否 | +
CheckBond(检查网卡绑定模式) | ++ 检查是否有配置BONDING_OPTS或BONDING_MODULE_OPTS,若没有配置则报warning。检查各节点bond模式是否一致,如果同时满足则检查项通过,否则检查项不通过。 + | +是 | +
CheckMultiQueue(检查网卡多队列) | ++ 检查cat + /proc/interrupts,判断是否开启网卡多队列且绑定不同CPU,如果满足则检查项通过,否则检查项不通过。 + | +是 | +
CheckUsedPort(检查随机端口使用数量) | +
+ 检查net.ipv4.ip_local_port_range,范围大于等于OS默认值通过(32768-61000);
+ 检查TCP协议随机端口数,小于总随机端口数的80%通过。 + |
+ 否 | +
CheckNICModel(网卡型号和驱动版本一致性检查) | ++ 检查各个节点的网卡型号以及驱动版本是否一致,一致则通过,否则报warning。 + | +否 | +
CheckRouting(本地路由表检查) | +检查各节点在业务IP网段的IP个数,超过1个则报warning,否则检查通过。 | +否 | +
CheckNetSpeed(检查网卡接收带宽,ping值,丢包率) | +
+ 网络满载时,检查网卡平均接收带宽大于600MB通过; + 网络满载时,检查网络ping值,小于1秒通过; + 网络满载时,检查网卡丢包率,小于1%通过。 + |
+ 否 | +
巡检项 | +检查内容 | +是否支持--set | +
CheckDataDiskUsage(检查数据库节点磁盘空间使用率) | +检查磁盘数据库节点目录使用率,如果使用率低于90%则检查项通过,否则检查项不通过。 | +否 | +