达梦部分以 DM8 为基础;openGauss 的资源池化、SPQ 和 oGRAC 参考 7.0.0 文档,具体能力以实际版本和部署方式为准。文中命令以 Linux 为例,目录、端口和账号按实际环境替换。
| 需求或形态 | 达梦 DM8 | openGauss |
|---|---|---|
| 单机运行 | 单实例访问一个数据库;单机本身不提供故障自动接管 | 单实例承载业务;单机本身不提供故障自动接管 |
| 主备架构 | DMDataWatch 数据守护:主库发送 Redo(重做日志),备库按日志更新数据;配合守护进程和监视器实现故障接管 | 主库通过 WAL 日志同步到备机;支持一主多备、级联备,可由 CM 管理集群 |
| 利用备机分担读 | DMRWC 读写分离:JDBC、DPI 等接口配合 dm_svc.conf,把部分查询交给备库 |
传统备机可以查询;查询发给谁、能否立即读到新数据,需要另外配置 |
| 共享存储 | DMDSC:多个实例共用一个数据库,都可以读写 | DataPod 资源池化:一个节点写、多个节点读;oGRAC:多个节点都能读写 |
| 分布式计算 | DMMPP、DMDPC 将数据和计算任务分配到多个节点,具体分工不同 | SPQ 让资源池化中的多个节点共同执行查询 |
| 跨中心容灾 | 用数据守护在另一中心保留数据副本,可配合单实例、MPP、DMDSC | 主备使用各自的存储;资源池化也有双集群容灾方案 |
实例是运行中的进程和内存,数据库是它管理的数据。下面重点对照它们与模式、表空间的关系。
| 概念 | 达梦 DM8 单机 | openGauss 常规架构 |
|---|---|---|
| 实例与数据库 | 一个实例同一时刻管理一个数据库;DMDSC 则由多个实例共用一个库 | 一个实例可管理多个 Database;连接时指定要使用的库 |
| 业务对象隔离 | 在同一个库内,用用户、Schema(模式)和权限区分业务对象 | Database → Schema → 表等对象;各库对象分开,但仍共用实例资源及用户、角色等全局对象 |
| 用户与模式 | 创建用户时自动建立同名默认模式;一个用户可拥有多个模式 | 用户/角色管身份和权限;Schema 用来组织表等对象,区分不同模式中的同名对象 |
| 表空间 | 表空间由一个或多个数据文件构成;主要有 SYSTEM、ROLL、MAIN、TEMP 等 | 常规表空间对应存储目录;可容纳不同数据库的对象 |
| 数据组织 | 页组成簇,簇组成段,段位于表空间中;ROLL 保存回滚所需信息,也用于一致性读 | 支持行存、列存等组织方式;文件和数据页的管理方式随存储引擎而不同 |
| 日志名称 | 联机 Redo 记录数据修改,归档日志保留历史 Redo;用于恢复和主备同步 | WAL(也称 XLog)记录数据修改,用于恢复和主备复制;两者都要与记录报错等信息的运行日志区分 |
| 服务端与配置 | dmserver;dm.ini 配置实例;dm.ctl 是控制文件,不是普通配置文本 |
gaussdb;postgresql.conf;pg_hba.conf 控制连接认证 |
**熟悉 openGauss → 达梦:**先确认 dm.ini 对应的实例,再决定业务放在同库的不同模式中,还是拆成独立实例。以 APP.ORDERS 为例,APP 是模式名,ORDERS 是表名;表空间决定表等对象存在哪里。
**熟悉达梦 → openGauss:**先确认连接的 Database 和使用的 Schema。search_path 决定不写模式名时,按什么顺序查找表等对象。单库备份不包含其他库,也不包含共享的用户、角色等全局对象。
建库前,先确定字符集、是否区分大小写、兼容模式、数据和日志位置、备份空间及账号权限。达梦还要确定页大小等初始化参数。兼容模式能适配部分语法和行为,但驱动、系统视图、备份格式和存储过程仍要分别检查。
主备复制负责同步数据,集群管理负责判断故障和切换角色。日志同步正常,不代表自动接管已经配置完成。
| 对照点 | 达梦数据守护 | openGauss 传统主备 |
|---|---|---|
| 复制内容与存储 | 通过 MAL 通信链路传递 Redo,备库按日志更新本地数据;主备各存一份 | 持续传输 WAL,备机按日志更新本地数据;各副本分别存储 |
| 主备初始数据 | 先从主库备份还原出备库,再配置守护;两个分别新建的空库不能直接组成主备 | 从主机构建备机,先复制一致的数据,再持续接收日志 |
| 复制配置入口 | dmarch.ini 选归档类型;dmmal.ini 配置通信;dm.ini 开启相关功能 |
replconninfo 等连接配置;同步备选择与提交等待参数分开管理 |
| 故障管理 | dmwatcher 检查实例状态;自动接管还必须配置确认监视器 dmmonitor |
CM 的 server/agent 负责监控和故障处理;两节点部署要配置仲裁,判断失联后谁能继续服务 |
| 扩展与容灾 | 可增加备库;异步备也可继续向下游备库传日志,要关注日志落后多少、故障后如何接管 | 支持一主多备;级联备通过其他备机接收日志;按网络条件和可接受的数据丢失量选择同步或异步 |
达梦:REALTIME 先向备库发送日志,再写本地联机日志;TIMELY 先写本地联机日志,再发送;ASYNC 定时发送归档日志。提交时是否还要等备库按日志更新数据(重演),取决于事务一致模式和部署条件,不能只看归档类型的名称。
openGauss:synchronous_standby_names 选择哪些备机参与同步;synchronous_commit 决定提交时等到哪一步。on 等待同步备机把日志写入磁盘(刷盘),remote_apply 等待备机按日志完成数据更新(回放)。开启最大可用模式后,同步备不足时,主库可能继续提交,而不再等齐原先要求的备机。
读写分离还要配置驱动和连接方式,应用才会把查询分给备库。业务如果要求写入后马上读到新数据,要让这类查询走主库,或确认当前配置能保证这种一致性。
计划切换(switchover)是在主备都正常时交换角色,通常用于维护。故障接管(failover/takeover)是在原主异常时,让备库成为新主。切换后的检查项见第 7.4 节。
RPO 表示最多能接受丢失多长时间内的数据,RTO 表示最多能接受业务中断多久。异步复制可能丢失尚未送达备库的修改;同步方案也要看提交时等到了哪一步,以及故障时是否继续提交。恢复时间还要算上应用重连和事务重试,不能只看备库成为主库用了多久。
| 架构 | 存储与读写方式 | 运维重点 |
|---|---|---|
| 达梦 DMDSC | 多个实例共用一个数据库,都能读写;集群协调各节点的操作,保持数据一致 | DMASM 管共享存储,DMCSS 负责集群同步;还要监控节点间网络、共享盘和相关服务 |
| openGauss DataPod 资源池化 | DSS 管共享存储,DMS 协调各节点访问;一个节点写、多个节点读,备机支持实时一致性读 | 检查共享盘、网络、仲裁及 DSS/DMS;备份和参数修改需使用资源池化对应的流程 |
| openGauss oGRAC | 多个实例共享数据,都能读写;由集群保证跨节点读写的一致性 | 按 oGRAC 专用流程部署和维护;这项能力不代表普通主备或所有旧版本都支持多写 |
共享存储增加的是访问同一数据库的实例,不是独立的数据副本。要防整个存储或机房故障,还需在另一处保存数据:达梦 DMDSC 可配合数据守护,openGauss 资源池化可采用网络双集群方案。
| 架构 | 数据与计算方式 | 使用边界 |
|---|---|---|
| 达梦 DMMPP | 把数据分到多个执行节点,让各节点同时处理任务;每个节点都可配置主备 | 每个备库只保存对应执行节点的数据;不能把这些备库直接当成一套完整的 MPP 只读查询集群 |
| 达梦 DMDPC | SP 接收请求并安排执行任务;BP 存数据并执行任务;MP 管表结构、数据分布等元数据。BP、MP 可配置 RAFT 多副本 | 分片把不同数据分开存,副本把同一份数据多存几份;副本也占空间,节点数不能直接换算成可用容量 |
| openGauss SPQ | 数据仍放在资源池化共享存储中,把查询任务交给多个节点同时执行 | 扩展的是多节点计算能力,不能据此把普通主备当成分片多写数据库 |
| 阶段 | 达梦 DM8 | openGauss |
|---|---|---|
| 安装软件 | 图形化、命令行或静默安装 | 企业版通常通过 XML 和 OM 安装;也有极简版等形态,DataKit 可提供图形化入口 |
| 初始化实例 | 用 dminit 或数据库配置助手创建数据库及初始文件 |
用 gs_initdb 创建初始数据目录;企业版通常由安装流程调用 |
| 构建主备 | 先用备份还原同步主备数据,再配置 MAL、归档、守护和确认监视器 | 配置复制连接、构建备机,再部署 CM 并验证仲裁 |
| 共享存储 | 先配置共享盘、DMASM、DMCSS,再创建 DMDSC | 先准备共享盘和网络,再按资源池化或 oGRAC 流程实施 |
| 容器与虚拟机 | 仍需设计数据持久化、故障隔离和高可用 | 同样需要;容器或虚拟机本身不等于数据库高可用 |
**达梦:**使用 dmdba 安装软件,再初始化单机数据库。PATH 为新库目录,密码字段替换为符合策略的实际值。
./DMInstall.bin -i
dminit PATH=/data/dm DB_NAME=DAMENG INSTANCE_NAME=DMSERVER \
PORT_NUM=5236 CHARSET=1 CASE_SENSITIVE=Y \
SYSDBA_PWD='替换管理员密码' SYSAUDITOR_PWD='替换审计员密码'
CHARSET=1 表示 UTF-8;CASE_SENSITIVE=Y 表示大小写敏感。建库参数应在初始化前确定,不能将重新执行初始化当成修改现有库。
**openGauss:**企业版安装前,准备与版本匹配的 XML、安装包和系统环境。预安装权限按对应版本指南配置,gs_install 在数据库安装用户(示例为 omm)下执行。
gs_preinstall -U omm -G dbgrp -X /opt/software/cluster_config.xml gs_install -X /opt/software/cluster_config.xml
| 用途 | 达梦 DM8 | openGauss |
|---|---|---|
| SQL 命令行 | disql |
gsql |
| 实例启停 | 注册的 DmService... 服务或 dmserver |
gs_ctl |
| 集群管理 | dmwatcher、dmmonitor;共享集群还有 dmcss 等 |
gs_om、cm_ctl |
| 配置管理 | dm.ini 及参数管理过程 |
gs_guc、postgresql.conf、pg_hba.conf |
| 逻辑导出导入 | dexp、dimp |
gs_dump、gs_dumpall、gs_restore |
| 物理备份恢复 | 联机 BACKUP SQL;脱机 dmrman |
gs_basebackup、gs_probackup |
| 可视化运维 | MANAGER、CONSOLE、DEM | DataKit |
DEM 和 DataKit 是配套管理平台,平台页面不可用,不等于数据库已经停止。
**达梦:**先启动客户端,再输入 LOGIN,按提示填写地址、端口、用户名和密码:
disql /nolog
在 disql 中查询数据库和实例:
SELECT * FROM V$VERSION;
SELECT * FROM V$INSTANCE;
SELECT * FROM V$DATABASE;
SELECT * FROM V$TABLESPACE;
| disql 命令 | 用途 |
|---|---|
LOGIN |
交互输入连接信息,登录其他实例 |
DESC APP.ORDERS |
查看指定表结构 |
@/tmp/check.sql |
执行 SQL 文件 |
EXIT |
退出客户端 |
达梦普通 SQL 以分号结束;创建存储过程等语句块时,按 DIsql 规则使用独立一行的 / 结束。退出前显式 COMMIT 或 ROLLBACK,不要依赖客户端默认提交行为。
**openGauss:**下面连接本机 5432 端口的 postgres 库,按提示输入密码:
gsql -h 127.0.0.1 -p 5432 -d postgres -U dbadmin
在 gsql 中,SQL 以分号结束,反斜线命令不需要分号:
SELECT version();
SELECT current_database(), current_user;
SHOW search_path;
| gsql 命令 | 用途 |
|---|---|
\l |
列出数据库 |
\c appdb |
切换到 appdb |
\dn |
列出模式 |
\dt app.* |
列出 app 模式的表 |
\d app.orders |
查看指定表结构 |
\du |
列出角色 |
\i /tmp/check.sql |
执行 SQL 文件 |
\q |
退出客户端 |
**达梦:**以下假设已注册服务 DmServiceDMSERVER,以有权限管理该服务的用户执行。
service DmServiceDMSERVER status service DmServiceDMSERVER start service DmServiceDMSERVER stop
需要前台观察启动日志时,可在实例已停止的情况下使用:
dmserver /data/dm/DAMENG/dm.ini
**openGauss:**使用数据库运行用户,指定现有数据目录。
gs_ctl status -D /data/opengauss gs_ctl start -D /data/opengauss gs_ctl stop -D /data/opengauss -m fast
fast 会断开连接并回滚活动事务,适用于已安排维护窗口的停机操作。
CM 或数据守护管理下的实例,应从集群管理入口安排启停,避免管理组件重新拉起实例或触发接管。
**达梦:**在 disql 中执行:
SELECT NAME, TYPE, VALUE, SYS_VALUE, FILE_VALUE
FROM V$PARAMETER
WHERE NAME IN ('PORT_NUM', 'MAX_SESSIONS', 'BUFFER', 'ARCH_INI');
**openGauss:**在 gsql 中执行:
SHOW data_directory;
SHOW port;
SHOW max_connections;
SHOW shared_buffers;
SHOW archive_mode;
SHOW archive_command;
参数写进配置文件,不一定马上生效:有些只影响当前连接,有些需要重新加载配置,有些需要重启。达梦看参数类型,openGauss 看参数上下文。修改后再查实际值;资源池化环境还要确认其他节点的配置已同步。
| 作用 | 达梦数据守护 | openGauss 传统主备 |
|---|---|---|
| 实例参数 | dm.ini |
postgresql.conf |
| 复制通道 | dmmal.ini 配置实例间通信的地址和端口 |
replconninfo1 等参数配置复制连接,还要配好连接认证 |
| 复制和归档策略 | dmarch.ini 设置日志归档和发送方式;定时发送还可能用到 dmtimer.ini |
设置哪些备机参与同步、提交等到哪一步,以及 WAL 如何归档 |
| 故障管理 | dmwatcher.ini、dmmonitor.ini |
cm_server.conf、cm_agent.conf |
| 客户端访问 | 驱动、服务名及 dm_svc.conf 等 |
驱动、多地址连接或业务访问入口 |
在 disql 中执行:
SELECT * FROM V$INSTANCE;
SELECT * FROM V$ARCH_STATUS;
交互检查时使用已准备好的普通监视器配置。普通监视器也支持管理命令,并非只读工具;已有确认监视器服务时,不要重复启动同一份确认监视器配置。
dmmonitor /data/dm/dmmonitor_normal.ini
在 dmmonitor 中执行:
show global info show help
重点看主备角色、数据库、守护和归档状态。Valid 表示归档有效,不代表备库已经追平。LSN 是日志位置;主库持续写入时,要看备库的位置是否跟着前进、主备差距是否不断扩大。
在操作系统终端查看 CM 集群状态:
cm_ctl query -Cvidp
在有日志发送连接的节点查询复制状态:
SELECT application_name, client_addr, state, sync_state,
sender_sent_location, receiver_write_location,
receiver_flush_location, receiver_replay_location
FROM pg_stat_replication;
SHOW synchronous_standby_names;
SHOW synchronous_commit;
SHOW most_available_sync;
按发送 → 写入备库 → 备库刷盘 → 备库回放查看进度。哪两个位置的差距持续扩大,就先查对应环节。位置差不是延迟秒数;日志已经写到磁盘,也可能还没更新到数据中,备库查询仍可能读到旧值。
| 操作 | 使用时机 | 验收重点 |
|---|---|---|
| 计划切换 | 主备均正常,维护时交换角色 | 备库数据追平,应用连接转向新主,读写正常 |
| 故障接管 | 原主不可用,备库接替服务 | 旧主不再对外写入,核实是否丢数据,验证业务恢复 |
| 原主重加入 | 故障修复后,让旧主重新成为备库 | 从新主同步数据,不能让旧主直接恢复写服务 |
| 异地容灾演练 | 模拟机房或站点故障 | 另一站点的存储、网络可用,仍能完成仲裁;记录实际丢失数据量和恢复时间 |
容灾是完整链路:数据库复制 + 故障判断 + 写节点切换 + 业务入口切换 + 应用重连。多个节点位于同一主机或共享同一故障存储,不能提供完整的站点级保护。
逻辑备份导出建表等对象定义和表中数据,适合按库、模式或表搬迁、恢复;两种产品的导出文件不能直接互导。
| 任务 | 达梦 | openGauss |
|---|---|---|
| 单库或对象导出 | dexp |
gs_dump |
| 整体导出范围 | dexp FULL=Y:当前达梦数据库 |
gs_dumpall:实例内全部数据库及用户、角色等全局对象 |
| 导入 | dimp |
SQL 文本用 gsql;归档格式用 gs_restore |
| 导出范围 | FULL(整库)、OWNER(用户)、SCHEMAS(模式)、TABLES(表),一次只选一种 |
数据库、模式、表 |
下面导出 APP 模式,再导入独立测试实例 127.0.0.1:5237。密码换成实际值;/backup/dm 在运行 dexp/dimp 的主机上。导入前先准备目标账号、模式和表空间。
dexp 'USERID=SYSDBA/替换密码@127.0.0.1:5236' \
SCHEMAS=APP DIRECTORY=/backup/dm FILE=app.dmp LOG=app_exp.log
dimp 'USERID=SYSDBA/替换密码@127.0.0.1:5237' \
SCHEMAS=APP DIRECTORY=/backup/dm FILE=app.dmp LOG=app_imp.log
整库逻辑导出时,将 SCHEMAS=APP 替换为 FULL=Y。密码含特殊字符时按工具的转义规则处理;自动化任务优先使用受控参数文件或已配置的凭据机制。
以下在终端执行。/backup/og 由运行导出工具的用户写入;导入示例使用已创建的空测试库 appdb_restore,所需角色和表空间应预先准备。
导出为 SQL 文本,再导入测试库:
gs_dump -h 127.0.0.1 -p 5432 -U dbadmin \ -F p -f /backup/og/appdb.sql appdb gsql -h 127.0.0.1 -p 5432 -U dbadmin \ -d appdb_restore -f /backup/og/appdb.sql
需要选择性恢复对象时,使用归档格式:
gs_dump -h 127.0.0.1 -p 5432 -U dbadmin \ -F c -f /backup/og/appdb.dump appdb gs_restore -h 127.0.0.1 -p 5432 -U dbadmin \ -d appdb_restore /backup/og/appdb.dump
两种方式选一种,不要重复导入同一个目标库。gs_dump 把源库名写在命令末尾,不加 -d;gsql 和 gs_restore 用 -d 指定导入哪个库。
备份全部数据库及全局对象:
gs_dumpall -h 127.0.0.1 -p 5432 -U dbadmin -f /backup/og/all.sql
逻辑恢复完成后检查导入日志、对象数量、无效对象、行数和关键业务数据;跨库迁移还应检查字符集、大小写及 SQL 兼容性。
物理备份保存数据页等底层内容,适合整库恢复。联机备份在数据库运行时执行,脱机操作则需要停库。主备用于故障接管;误删也会同步到备库,找回历史数据仍要靠独立备份。
| 能力 | 达梦 | openGauss |
|---|---|---|
| 全量备份 | 联机 BACKUP DATABASE 或脱机 DMRMAN |
gs_basebackup、gs_probackup |
| 增量备份 | 完全备份配合增量备份 | gs_probackup 的 PTRACK 模式 |
| 整库还原 | 停止目标库,先还原数据文件,再应用日志完成恢复 | 停止目标实例,恢复数据文件,再回放日志 |
| 时间点恢复 | 用物理备份和连续归档日志,恢复到指定时间或日志位置(LSN) | 用物理备份和连续 WAL,执行时间点恢复(PITR) |
先确认数据库处于 OPEN 状态、本地归档已启用且正常;备份目录位于数据库服务器,数据库运行用户需要写权限。采用 DMAP 辅助进程方式时确保 DMAP 服务可用。
在 disql 中执行全量备份:
BACKUP DATABASE FULL BACKUPSET '/backup/dm/full_20260920';
增量备份只保存变化的部分,不能单独还原;恢复所需的全量及相关增量备份要一起保留。下面是累计增量示例:
BACKUP DATABASE INCREMENT CUMULATIVE
WITH BACKUPDIR '/backup/dm'
BACKUPSET '/backup/dm/inc_20260921';
DMRMAN 负责脱机备份还原,联机热备通过 SQL 执行,两者用途不同。
下面把全量备份还原到独立的单机测试库。测试库需提前初始化并停止,数据文件使用独立路径。源、目标路径不同时,先按手册设置文件映射,也就是指定各个数据文件还原到哪里,避免写回源库目录。
在终端启动工具:
dmrman
在 DMRMAN 中依次执行:
RESTORE DATABASE '/data/dm_restore/DAMENG/dm.ini'
FROM BACKUPSET '/backup/dm/full_20260920';
RECOVER DATABASE '/data/dm_restore/DAMENG/dm.ini'
FROM BACKUPSET '/backup/dm/full_20260920';
RECOVER DATABASE '/data/dm_restore/DAMENG/dm.ini' UPDATE DB_MAGIC;
RESTORE 还原数据文件,RECOVER 再应用日志,使数据达到一致状态。随后更新数据库标识 DB_MAGIC,再启动测试库检查。构建数据守护备库要按包含 FOR STANDBY 等要求的对应流程执行,不能直接照搬这组单机恢复命令。
以下 openGauss 备份示例适用于常规单机或传统主备环境。在终端使用 gs_basebackup,先配置复制连接认证和权限,预留足够的 max_wal_senders 连接,并创建空的备份目录。示例不含数据目录外的自定义表空间;如有,需配置表空间映射或采用合适的备份格式。
gs_basebackup -h 127.0.0.1 -p 5432 -U dbadmin \ -D /backup/og/base_20260920 -F plain -X stream -P
-X stream 在备份期间同步接收所需 WAL。此工具只做全量备份,不做增量。
以下使用 gs_probackup,由数据库运行用户在本机执行。增量备份前,先启用 enable_cbm_tracking=on 记录数据页变化,再做一次全量备份。示例不含外部表空间;如有数据目录外的自定义表空间,需按文档配置 --external-dirs。
先创建备份目录结构,再登记要备份的实例,以下两条通常只需执行一次:
gs_probackup init -B /backup/og/probackup gs_probackup add-instance -B /backup/og/probackup \ -D /data/opengauss --instance=og1
执行全量备份;后续再执行增量备份:
gs_probackup backup -B /backup/og/probackup --instance=og1 \ -b FULL -h 127.0.0.1 -p 5432 -U dbadmin -d postgres gs_probackup backup -B /backup/og/probackup --instance=og1 \ -b PTRACK -h 127.0.0.1 -p 5432 -U dbadmin -d postgres
查看并校验备份:
gs_probackup show -B /backup/og/probackup --instance=og1 gs_probackup validate -B /backup/og/probackup --instance=og1
恢复演练时,从 show 结果选择 BACKUP_ID。先停止目标实例;恢复环境的主版本要与源库一致,目标目录单独准备。如有外部表空间,需另行映射到独立路径,不能只修改 -D。
gs_probackup restore -B /backup/og/probackup --instance=og1 \ -i BACKUP_ID -D /data/og_restore
还原后检查端口、目录和恢复配置,再启动验证。上述命令用于还原选定的备份。恢复到备份之后的某个时间,还需要覆盖这段时间的连续 WAL 和 PITR 配置,不能只填一个 --recovery-target-time。传统主备的主库回退后,还要重新构建备机。
**达梦:**在 disql 中执行:
SELECT SESS_ID, STATE, TRX_ID, SQL_TEXT FROM V$SESSIONS;
SELECT * FROM V$TRXWAIT;
SELECT * FROM V$LOCK WHERE BLOCKED = 1;
**openGauss:**在 gsql 中执行:
SELECT * FROM pg_stat_activity;
SELECT * FROM pg_locks;
先找出哪些会话在等待,再查它们在等哪把锁、锁被哪个事务占着。没有查询结果时,也要确认账号是否有查看权限,以及检查时阻塞是否已经结束。
以下以已有业务表 app.orders/APP.ORDERS 为例;统计信息收集应在合适的维护时段执行。
达梦:
CALL DBMS_STATS.GATHER_TABLE_STATS('APP', 'ORDERS');
EXPLAIN SELECT * FROM APP.ORDERS WHERE ORDER_ID = 1001;
openGauss:
ANALYZE app.orders;
EXPLAIN SELECT * FROM app.orders WHERE order_id = 1001;
统计信息描述表的数据量和分布,优化器据此选择执行计划。openGauss 的 VACUUM/autovacuum 维护方式取决于存储引擎;VACUUM FULL 可能阻塞正常访问,不适合当作例行清理命令。这些空间维护方法不能直接套用到达梦。
| 现象 | 优先检查 |
|---|---|
| 连接不上 | 地址和端口 → 监听 → 网络与认证 → 实例状态 → 连接数与连接池 |
| 主备延迟 | 日志发送 → 接收 → 刷盘 → 回放 → 备机查询和 I/O 负载 |
| 空间持续增长 | 区分数据、事务日志、归档、备份;检查日志保留和备份链依赖 |
| SQL 突然变慢 | 阻塞 → 执行计划变化 → 统计信息 → I/O 与并发负载 |
| 切换后应用仍失败 | 新主角色 → 业务访问入口 → 驱动重连 → 连接池旧连接 → 事务重试 |
文章
阅读量
获赞
