
# 操作指导
#### 前提条件
应急通道需要打开GUC参数enable_emergency_access，另外生成mem_log的运维能力依赖于wlm_monitor线程及内存管理功能，需要打开GUC参数use_workload_manager和enable_memory_limit，参数均默认打开。
GUC参数enable_emergency_access具体描述请参见《参考》中"数据库运行参数说明 \> GUC参数说明 \> 负载管理"章节。
GUC参数use_workload_manager具体描述请参见《参考》中"数据库运行参数说明 \> GUC参数说明 \> 负载管理"章节。
GUC参数enable_memory_limit具体描述请参见《参考》中"数据库运行参数说明 \> GUC参数说明 \> 资源消耗 \> 内存"章节。
#### 示例
**示例一**
执行Unix Domain Socket运维通道的运维命令。
以下为如何通过Unix Domain Socket运维通道查生成mem_log的简单示例：
1. 登录GaussDB节点所在服务器，执行以下gsql命令，确认是否生成内存概况以及内存上下文等使用记录。 
   ```
   gsql -O "{port} mem_log"
   ```
   其中，{port}为数据库端口。当显示true时，则表示已生成具体的详情信息；如果执行失败，则显示失败原因。
   ```
   -- 示例中19995为数据库监听端口。
   gsql -O "19995 mem_log"
   true
   ```
   
   
2. 查看"$GAUSSLOG/mem_log/{nodename}"目录下生成的mem_log文件内容，其中{nodename}为数据库节点名称。 
   ```
   -- 示例中datanode为数据库节点名称。
   ls -l $GAUSSLOG/mem_log/datanode
   total 8
   -rw-------. 1 omm omm 7543 May 28 15:15 mem_log-2025-05-28_151518.log
   ```
   
   
3. 执行以下命令查看文件内容。 
   ```
   cat $GAUSSLOG/mem_log/datanode/mem_log-time.log
   ```
   其中，mem_log-time.log为步骤2中"$GAUSSLOG/mem_log/datanode"路径下生成的文件（文件名后缀为.log）。
   
   
**示例二**
gsql执行简易运维元命令\\view mem。
```
--连接数据库。（根据实际需要替换数据库名字和端口号）
gsql -d postgres -p 8000
gsql ((GaussDB Kernel XXX.X.XXX build f521c606) compiled at 2025-08-30 11:51:09 last mr 24890 release)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
gaussdb=# \view mem
 nodename |            memorytype            | memorymbytes 
----------+----------------------------------+--------------
 cn_5001  | max_process_memory               |        35840
 cn_5001  | process_used_memory              |        12417
 cn_5001  | max_dynamic_memory               |        28532
 cn_5001  | dynamic_used_memory              |         3448
 cn_5001  | dynamic_peak_memory              |         8966
 cn_5001  | dynamic_used_shrctx              |         2081
 cn_5001  | dynamic_peak_shrctx              |         2815
 cn_5001  | max_backend_memory               |         1544
 cn_5001  | backend_used_memory              |            1
 cn_5001  | high_backend_thread_memory       |           56
 cn_5001  | high_backend_thread_max_memory   |          921
 cn_5001  | medium_backend_thread_memory     |          358
 cn_5001  | medium_backend_thread_max_memory |         3072
 cn_5001  | low_backend_thread_memory        |            0
 cn_5001  | low_backend_thread_max_memory    |         1536
 cn_5001  | max_shared_memory                |         5747
 cn_5001  | shared_used_memory               |         4866
 cn_5001  | max_cstore_memory                |           16
 cn_5001  | cstore_used_memory               |            0
 cn_5001  | max_sctpcomm_memory              |            0
 cn_5001  | sctpcomm_used_memory             |            0
 cn_5001  | sctpcomm_peak_memory             |            0
 cn_5001  | other_used_memory                |         3998
 cn_5001  | gpu_max_dynamic_memory           |            0
 cn_5001  | gpu_dynamic_used_memory          |            0
 cn_5001  | gpu_dynamic_peak_memory          |            0
 cn_5001  | pooler_conn_memory               |            1
 cn_5001  | pooler_freeconn_memory           |            0
 cn_5001  | storage_compress_memory          |            0
 cn_5001  | udf_reserved_memory              |            0
 cn_5001  | llvm_used_memory                 |            9
 cn_5001  | max_htap_memory                  |            0
 cn_5001  | htap_used_memory                 |            0
(33 rows)
```
