当前位置: 首页 > news >正文

达梦数据库-实时主备集群部署详解(附图文)手工搭建一主一备数据守护集群DW

1)手工搭建一主一备数据守护集群;

2)连接集群进行增删改查基本操作;

3)监视器查看集群状态;

1 准备工作

目录规划:(在对应服务器上创建目录owner为dmdba组为dinstall)
数据库软件安装目录 /home/dmdba/dmdbms
实例安装目录 /dmdata/
归档日志存放目录 /dmdata/arch
备份文件存放目录 /dmdata/dmbak/

IP规划:

类别

IP地址

实例名

实例端口号

主库A

10.137.88.59

dw1

5236

备库B

10.137.88.61

dw2

5237

监视器

10.137.88.58

【说明】这里将监视器配在独立的服务器上,三台服务器都要事先安装好dm8

端口规划:

实例名

实例端口

MAL 系统监听 TCP 连接的端口

实例本地的守护进程监听 TCP 连接的端口

实例监听守护进程 TCP 连接的端口

dw1

5236

7336

7436

7536

dw2

5236

7336

7436

7536

2 主备集群配置

2.1 初始化实例

2个节点完成实例初始化
执行以下命令

./dminit path=/home/dmdba/dm8/dmdbms/data db_name=dmdb instance_name=dw1 page_size=32 extent_size=32 log_size=2048 SYSDBA_PWD=Password1 SYSAUDITOR_PWD=Password1 PORT_NUM=5236

【注意】后面实例名需跟此处保持一致,端口号默认为5236(可以不写端口号),密码长度在闭区间[8,48]内,且需要包含大小写和数字。如果有特殊符号的话需要加引号,没有则不用。

常用参数说明

参数

说明

示例值

PATH

数据文件路径

/dm8/data

DB_NAME

数据库名

DAMENG

INSTANCE_NAME

实例名

DMSERVER

PORT_NUM

服务端口

5236

SYSDBA_PWD

SYSDBA密码

Dameng123

PAGE_SIZE

页大小

8,16,32(默认8K)

CASE_SENSITIVE

大小写敏感

0(不敏感)/1(敏感)

CHARSET

字符集

0(GB18030)/1(UTF-8)/2(EUC-KR)

完整参数查看:

./dminit HELP

常用端口对照表

端口类型

默认端口

配置文件参数

数据库服务端口

5236

PORT_NUM

MAL通信端口

61141

MAL_PORT

守护进程端口

52141

DW_PORT

归档端口

5237

ARCH_PORT

主库:

备库:

./dminit path=/home/dmdba/dm8/dmdbms/data db_name=dmdb instance_name=dw1 page_size=32 extent_size=32 log_size=2048 SYSDBA_PWD=Password1 SYSAUDITOR_PWD=Password1 PORT_NUM=5236

2.2 启动实例

以主机dmdb01为主库,启动一次实例(启动一次后即可关停)

dmserver /dmdata/dmdb/dm.ini

如图,出现system is ready后输入exit停止数据库。

2.3 备库还原

传输备份文件

【说明】这里利用的是两台服务器,所以需要利用scp命令传输备份文件

# 主库
scp -r /home/dmdba/bakfull dmdba@10.137.88.61:/home/dmdba/
# 备库
scp -r dmdba@10.137.88.59:/home/dmdba/bakfull /home/dmdba/ 

backup 全库

在主机dmdb01上执行以下命令,确认主库 dmap 服务已启动:

ps -ef|grep dmap


已启动:

dmdba用户 启动dmrman工具:
./dmrman use_ap=2
执行 backup 全库:
backup database '/dmdata/dmdb/dm.ini' backupset '/home/dmdba/bakfull';

备份还原备库

将备份的文件/home/dmdba/bakfull拷贝到备库服务器上。

在主机dmdb02上使用 dmrman 工具还原备库,dmdba 用户执行:

./dmrman use_ap=2
restore database '/dmdata/dmdb/dm.ini' from backupset '/home/dmdba/bakfull';
recover database '/dmdata/dmdb/dm.ini' from backupset '/home/dmdba/bakfull';
recover database '/dmdata/dmdb/dm.ini'  update db_magic;

【说明】./dmrman use_ap=2这一步很关键,只输./dmrman,在接下来的步骤中会报一堆错

备库:

【说明】图中报错[603]显示为备份期间没有日志产生,可忽略

2.4 修改参数

如何修改去搜vim编辑器的用法

i 修改

esc + / 查找

esc + wq 保存并退出

esc +wq!强制保存并退出

esc + q 退出不保存

修改参数去安装数据库的目录下修改。

2.4.1 修改dm.ini参数

所有节点都要修改
执行以下命令:

vi /dmdata/dmdb/dm.ini


主库dmdb01上修改以下参数值:

INSTANCE_NAME = dw1
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2

备库dmdb02上修改以下参数值:

INSTANCE_NAME = dw2
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2

2.4.2 配置归档配置文件 dmarch.ini

在实例目录下新建文件 dmarch.ini,执行以下命令:

vi /dmdata/dmdb/dmarch.ini

主库dmdb01上添加以下内容:

[ARCHIVE_REALTIME1]  
ARCH_TYPE     = REALTIME  
ARCH_DEST     = dw2   
[ARCHIVE_LOCAL1]
ARCH_TYPE     = LOCAL 
ARCH_DEST     = /dmdata/arch    
ARCH_FILE_SIZE    = 2048
ARCH_SPACE_LIMIT  = 102400

【说明】如果后续ARCH_DEST这里报错的话,可以:

把配置文件改成:

ARCH_DEST = /dmarch 

然后输入以下命令:

su - root
sudo mkdir -p /dmarch
sudo chown -R dmdba:dinstall /dmarch
sudo chmod -R 755 /dmarch
exit
touch /dmarch/test_file && echo "权限设置成功"||echo"仍有问题"
rm -f/dmarch/test_file

备库Dmdb02上添加以下内容:

[ARCHIVE_REALTIME1]  
ARCH_TYPE     = REALTIME 
ARCH_DEST     = dw1   
[ARCHIVE_LOCAL1]
ARCH_TYPE     = LOCAL
ARCH_DEST     = /dmdata/arch  
ARCH_FILE_SIZE    = 2048
ARCH_SPACE_LIMIT  = 102400    

2.4.3 配置MAL系统配置文件 dmmal.ini

在实例目录下新建文件 dmmal.ini,执行以下命令。
vi /dmdata/dmdb/dmmal.ini
主备库2个节点文件内容要相同。

MAL_CHECK_INTERVAL   = 5  
MAL_CONN_FAIL_INTERVAL  = 15  
[MAL_INST1]MAL_INST_NAME = dw1 MAL_HOST     = 10.137.88.59  MAL_PORT     = 7336MAL_INST_HOST   = 10.137.88.59  MAL_INST_PORT   = 5236 MAL_DW_PORT   = 7436MAL_INST_DW_PORT = 7536
[MAL_INST2]MAL_INST_NAME = dw2 MAL_HOST      = 10.137.88.61  MAL_PORT          = 7336MAL_INST_HOST         = 10.137.88.59  MAL_INST_PORT         = 5236 MAL_DW_PORT  = 7436MAL_INST_DW_PORT = 7536

2.4.4 配置守护进程配置文件 dmwatcher.ini

在实例目录下新建文件 dmwatcher.ini,执行以下命令:

vi /dmdata/dmdb/dmwatcher.ini


主备库2节点文件内容要相同。

[GRP_DW] 
DW_TYPE    = GLOBAL  
DW_MODE    = MANUAL 
DW_ERROR_TIME     = 30  
INST_RECOVER_TIME  = 60         
INST_ERROR_TIME   = 20  
INST_OGUID         = 453331 
INST_INI           = /dmdata/dmdb/dm.ini 
INST_AUTO_RESTART  = 1   
INST_STARTUP_CMD   = /home/dmdba/dmdbms/bin/DmServiceDW start

2.5注册服务

以上启动为前台方式启动,仅用户搭建过程中验证配置。配置没问题后需要将实例,守护进程和确认监视器注册为系统服务。
使用 root 用户,到数据库安装目录的script/root下。
注册守护进程服务(主备库都执行)。

./dm_service_installer.sh -t dmwatcher -p DW -watcher_ini /dmdata/dmdb/dmwatcher.ini	

注册数据库实例服务(主备库都执行):

./dm_service_installer.sh -t dmserver -p DW -dm_ini /dmdata/dmdb/dm.ini

2.6 Mount状态启动集群

以 mount 方式启动数据库实例
使用 dmdba 用户,执行以下命令(主备库都执行):

su - dmdba
cd /home/dmdba/dmdbms/bin
./dmserver /dmdata/dmdb/dm.ini mount

主备库都要是ready状态,表示成功

2.7 修改数据库模式

在新的终端使用 disql 工具连接数据库:

./disql SYSDBA/Password1

主备库都修改 oguid,执行以下命令:

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); 
SQL>sp_set_oguid(453331); 
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

系统通过OGUID值确定一个守护进程组,由用户保证OGUID值的唯一性,并确保数据守护系统中,数据库、守护进程和监视器配置相同的OGUID值。

主库dmdb01上修改数据库模式为 primary,执行以下命令:


SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); 	//第1步
SQL>alter database primary;					//第2步
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0); 	//第3步

主库:

备库dmdb02上修改数据库模式为 standby,执行以下命令:

如果当前数据库不是 Normal 模式,需要先修改 dm.ini 中 ALTER_MODE_STATUS 值为 1,允许修改数据库模式,修改 Standby 模式成功后再改回为 0。如果是 Normal 模式,请忽略下面的第 1 步和第 3 步。

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); 	//第1步
SQL>alter database standby; 						//第2步
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0); 	//第3步

备库:

2.8 启动守护进程


dmdba 用户下,到数据库安装目录的 bin 下执行以下命令(主备库都执行):

./dmwatcher /dmdata/dmdb/dmwatcher.ini

守护进程启动后,会将 Mount 的实例 Open。这里是前台启动的方式,因为我们前面注册了服务名称,所以就没必要前台启动,直接配好主从的主备关系后crtl+C退出两个实例的前台mount启动,然后调整实例启动服务脚本里的启动状态,依次按顺序启动主、备库实例、然后再主、备库的守护DmWatcher服务。

2.9 配置监视器

启动监视器(可以在任意节点配置)

守护进程配置为自动切换时,必须配置确认监视器。在主备服务器以外的服务器上(需安装有 DM 数据库软件,且与主备心跳网络端口开放)。

设置权限

# 查看当前权限
ls -l dmmonitor.ini# 设置权限(使用分步法避免错误)
sudo chown dmdba dmmonitor.ini
sudo chgrp dinstall dmmonitor.ini
sudo chmod 640 dmmonitor.ini

新建确认监视器配置文件 dmmonitor.ini,执行以下命令:

vi /dmdata/dmdb/dmmonitor.ini

添加以下内容:

MON_DW_CONFIRM    = 0
MON_LOG_PATH    = /home/dmdba/dmdbms/log
MON_LOG_INTERVAL  = 60
MON_LOG_FILE_SIZE   = 200
MON_LOG_SPACE_LIMIT  = 1024
[GRP_DW] MON_INST_OGUID    = 453331MON_DW_IP     = 10.137.88.59:7436MON_DW_IP     = 10.137.88.61:7436

执行以下命令,启动监视器。

su - dmdba
cd /home/dmdba/dmdbms/bin
./dmmonitor /dmdata/dmdb/dmmonitor.ini	

启动后输入 show 命令查看集群状态。

其中守护进程状态 WSTATUS 为 OPEN,实例状态 ISTATUS 为 OPEN,归档类型 RTYPE 为 TIMELY,归档状态 RSTAT 为VALID。

2.10 disql 客户端验证


使用 disql 客户端登录主库,创建测试表,插入数据,执行以下命令:

./disql SYSDBA/Password1@10.137.88.59:5236

SQL 提示符下执行以下命令:

create table test(id int);
insert into test values (1);
commit;

用 disql 客户端登录备库,查询测试表验证,执行以下命令:

./disql SYSDBA/Password1@10.137.88.61:5236

sql:

select * from test;

如图,验证成功

3 可能遇到的问题

无法访问/dm8/data/

  1. 达梦数据库未正确安装或安装路径不正确
  2. /dm8/data/目录尚未创建
  3. 当前用户没有访问该目录的权限
  4. 环境变量配置不正确

解决方案

1. 确认达梦数据库安装情况

首先检查达梦数据库是否已正确安装:

ps -ef | grep dmserver

如果未找到相关进程,可能需要重新安装达梦数据库。

2. 检查目录是否存在

ls -ld /dm8/data/

如果目录不存在,需要创建:

sudo mkdir -p /dm8/data/
sudo chown -R dmdba:dinstall /dm8/

3. 检查权限问题

确保当前用户(通常是dmdba)有访问权限:

sudo chown -R dmdba:dinstall /dm8/data/
sudo chmod -R 755 /dm8/data/

4. 检查环境变量

确保已设置达梦数据库的环境变量:

cat ~/.bash_profile

应该包含类似以下内容:

export DM_HOME=/dm8
export PATH=$DM_HOME/bin:$PATH
export LD_LIBRARY_PATH=$DM_HOME/bin:$LD_LIBRARY_PATH

5. 初始化数据库实例

如果/data目录是空的,可能需要初始化数据库:

cd /dm8/bin
./dminit path=/dm8/data

解决达梦数据库归档目录权限不足问题

您在执行 touch /dmarch/test_file 时遇到权限不足的问题,这表明 dmdba 用户对 /dmarch 目录没有足够的权限。以下是完整的解决方案:

1. 检查当前权限状态

ls -ld /dmarch

正常应该显示:

drwxr-xr-x 2 dmdba dinstall 4096 Jan 1 10:00 /dmarch

2. 授予dmdba用户完整权限

# 使用root用户执行
sudo chown -R dmdba:dinstall /dmarch
sudo chmod -R 775 /dmarch  # 给属主和属组读写执行权限# 如果存在SELinux限制
sudo chcon -R -t dm_db_data_t /dmarch

3. 验证权限修复

# 切换回dmdba用户
su - dmdba# 再次测试
touch /dmarch/test_file && echo "权限设置成功" || echo "仍有问题"
rm -f /dmarch/test_file

4. 特殊情况处理

情况1:目录被其他进程占用

sudo lsof /dmarch
# 如果有进程占用,先停止相关服务
sudo systemctl stop DmServiceDMSERVER

情况2:文件系统只读

mount | grep "/dmarch"
# 如果是ro,重新挂载
sudo mount -o remount,rw /dmarch

情况3:磁盘空间满

df -h /dmarch
# 清理空间或扩展存储

5. 生产环境推荐权限设置

对象

推荐权限

命令示例

归档目录

775

chmod 775 /dmarch

归档文件

664

find /dmarch -type f -exec chmod 664 {} \;

归档子目录

775

find /dmarch -type d -exec chmod 775 {} \;

6. 永久生效配置

# 设置默认umask(添加到/etc/profile)
echo "umask 002" | sudo tee -a /etc/profile
source /etc/profile# 设置开机自动修复权限(可选)
echo "chown -R dmdba:dinstall /dmarch" | sudo tee -a /etc/rc.local
sudo chmod +x /etc/rc.local

7. 验证达梦归档功能

# 启动数据库到mount模式
./dmserver /dmdata/dmdb/dm.ini mount# 在disql中验证
./disql SYSDBA/SYSDBA
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
SQL> SELECT * FROM V$ARCHIVED_LOG;

如果仍有问题,请检查:

  1. 用户组是否正确:id dmdba 应显示属于 dinstall 组
  2. SELinux状态:getenforce 如果是Enforcing模式需要调整策略
  3. 磁盘inode是否耗尽:df -i /dmarch

验证达梦数据库归档路径(ARCH_DEST)正确性的完整指南

1. 基础路径验证方法

检查路径是否存在

# 检查目录是否存在
ls -ld /dmarch
  • 有效输出:显示目录详细信息(如 drwxr-xr-x 2 dmdba dinstall 4096 Jan 1 10:00 /dmarch
  • 无效输出ls: cannot access '/dmarch': No such file or directory

测试路径可写性(使用dmdba用户)

su - dmdba
test -w /dmarch && echo "可写" || echo "不可写"

2. 高级验证方法

创建测试文件

# 测试文件创建/删除
touch /dmarch/test_file && rm /dmarch/test_file && echo "测试成功" || echo "测试失败"

检查磁盘空间

df -h /dmarch  # 查看挂载点和可用空间

验证文件系统类型

mount | grep "/dmarch"
# 应显示rw(读写)权限,如:/dev/sdb1 on /dmarch type xfs (rw,relatime)

3. 达梦专用验证命令

在数据库内验证归档配置

-- 查看归档参数
SELECT PARA_NAME, PARA_VALUE FROM V$DM_INI WHERE PARA_NAME LIKE '%ARCH%';-- 查看归档日志记录
SELECT COUNT(*) FROM V$ARCHIVED_LOG;

强制生成归档日志测试

ALTER SYSTEM ARCHIVE LOG CURRENT;

4. 自动化验证脚本

#!/bin/bash
ARCH_PATH="/dmarch"echo "===== 基础检查 ====="
[ -d "$ARCH_PATH" ] && echo "目录存在" || echo "目录不存在"
[ -w "$ARCH_PATH" ] && echo "目录可写" || echo "目录不可写"
df -h $ARCH_PATHecho -e "\n===== 达梦归档测试 ====="
./disql SYSDBA/SYSDBA <<EOF
ALTER SYSTEM ARCHIVE LOG CURRENT;
SELECT DEST_NAME, DEST_PATH, STATUS FROM V\$DM_ARCH_DEST WHERE DEST_PATH='$ARCH_PATH';
EOF

5. 常见问题排查

问题现象

解决方案

目录不存在

sudo mkdir -p /dmarch && chown dmdba:dinstall /dmarch

权限不足

sudo chmod -R 775 /dmarch

磁盘空间满

清理空间或扩展存储

SELinux限制

sudo chcon -t dm_db_data_t /dmarch

路径拼写错误

检查大小写和特殊字符

6. 生产环境建议

  1. 使用独立存储:归档目录最好放在独立磁盘
mkfs.xfs /dev/sdb1 && mount /dev/sdb1 /dmarch
  1. 设置监控:检测归档目录空间
echo "/dmarch 90%" >> /etc/monit/conf.d/space.conf
  1. 定期维护:设置归档清理策略
ALTER SYSTEM SET ARCHIVE_DELETE_POLICY='TIME,7' SCOPE=BOTH;

通过以上方法,您可以全面验证归档路径的正确性。如果仍有问题,建议检查 /dmdata/dmdb/dm_DMSERVER.log 获取详细错误信息。

达梦数据库归档路径(ARCH_DEST)配置

在达梦数据库的dmarch.ini配置文件中,ARCH_DEST参数指定归档日志的存储路径,关于"不需要以/arch结尾"的原因如下:

1. 技术本质原因

  1. 路径解析机制
    • 达梦数据库的归档模块会自动处理路径结尾
    • 系统内部会标准化路径格式(自动处理末尾斜杠)
  1. 文件生成规则
    • 归档文件实际存储在/dmarch/arch_XXX.log这样的子路径中
    • 数据库自动创建必要的子目录结构

2. 实际配置建议

正确配置示例

[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch       # 简洁形式(推荐)
# ARCH_DEST = /dmarch/    # 带斜杠也可工作但不必要

应避免的配置

ARCH_DEST = /dmarch/arch  # 冗余路径(不推荐)

3. 路径验证方法

# 查看实际归档文件存储位置
ls -l /dmarch/arch_*# 在数据库内验证
./disql SYSDBA/SYSDBA <<EOF
SELECT DEST_PATH, ARCHIVED_SEQ FROM V\$ARCHIVED_LOG 
WHERE DEST_PATH LIKE '%/dmarch%' FETCH FIRST 1 ROW ONLY;
EOF

4. 生产环境最佳实践

  1. 独立挂载点
# 专为归档创建独立分区
mkfs.xfs /dev/sdb1
mount /dev/sdb1 /dmarch
  1. 权限设置
chown -R dmdba:dinstall /dmarch
chmod -R 775 /dmarch
  1. 监控配置
# 监控归档空间使用率
echo "/dmarch 85%" >> /etc/monit/conf.d/archive.conf

5. 技术原理图示

/dmarch/          ← ARCH_DEST指定的根目录
├── arch_0001.log  ← 数据库自动生成
├── arch_0002.log
└── arch_XXXX.log

达梦数据库会自动在指定路径下创建归档文件,无需人工指定arch子目录。这种设计使配置更简洁,同时降低因路径配置错误导致的问题风险。

实例(DM2)的归档信息在实例(DM1)中没有找到

错误诊断

关键错误信息是:

[monitor] 2025-08-18 15:12:20: 实例(DM2)的归档信息在实例(DM1)中没有找到

这表明备库(DM2)无法从主库(DM1)获取归档日志,导致数据同步中断。以下是详细分析:

错误原因

  1. 归档配置不完整
    • 主库未正确配置归档到备库的路径
    • 备库未正确配置从主库接收归档
  1. 网络连通性问题
    • 主备库之间的MAL端口(7336)或守护端口(7436)不通
  1. 归档日志不连续
    • 主库生成的归档日志未完整传输到备库
  1. 配置不一致
    • 主备库的OGUID或归档参数不一致

解决方案

1. 检查主库归档配置

-- 在主库执行
SELECT DEST_NAME, DEST_TYPE, DEST_PATH FROM V$DM_ARCH_DEST;

确保包含备库的归档配置:

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DM2  # 备库实例名
ARCH_TRACE_FLAG = ALL

2. 验证网络连接

# 在备库测试连接主库端口
telnet 10.137.90.249 7336  # MAL端口
telnet 10.137.90.249 7436  # 守护端口

3. 修复归档中断问题

-- 在备库执行(需停止守护进程)
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;-- 重新注册归档
ALTER DATABASE REGISTER ARCHIVELOG '/path/to/missing/archive.log';-- 重新启动恢复
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

4. 检查关键配置一致性

配置项

主库(DM1)

备库(DM2)

OGUID

453331

453331

MAL_PORT

7336

7336

DW_PORT

7436

7436

ARCH_INI

1

1

完整修复流程

  1. 停止集群服务
# 主备库都执行
systemctl stop DmWatcherServiceDW
systemctl stop DmServiceDMSERVER
  1. 修正主库归档配置
vi /dmdata/dmdb/dmarch.ini

添加:

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DM2
ARCH_TRACE_FLAG = ALL
  1. 启动服务(严格按顺序)
# 1. 启动备库实例
systemctl start DmServiceDMSERVER@DM2# 2. 启动主库实例
systemctl start DmServiceDMSERVER@DM1# 3. 启动备库守护
systemctl start DmWatcherServiceDW@DM2# 4. 启动主库守护
systemctl start DmWatcherServiceDW@DM1

验证修复结果

dmmonitor /dmdata/dmdb/dmmonitor.ini
MON> SHOW DATABASE

正常输出应显示:

Database    Role     Status     OGUID    归档状态
----------  -------  ---------  -------  --------
DM1         PRIMARY  OPEN       453331   VALID
DM2         STANDBY  MOUNT      453331   VALID

预防措施

  1. 设置归档监控
# 监控归档间隔
echo "*/5 * * * * dmdba /dm8/bin/check_archive.sh" >> /var/spool/cron/dmdba
  1. 定期检查同步状态
-- 在备库执行
SELECT ARCHIVED_SEQ, APPLIED_SEQ FROM V$ARCH_GAP;
  1. 配置告警规则
# 在dmmonitor.ini中添加
[ALARM]
ARCHIVE_LAG = 5  # 允许的最大日志延迟数
http://www.dtcms.com/a/341685.html

相关文章:

  • HyDE vs HyPE:AI检索界的‘假想敌’革命,如何让RAG系统从‘找资料’变成‘懂你心’?”
  • Firefox 142 引入 CRLite 用于私有证书撤销
  • 【AI应用】部署AI向量数据库Milvus
  • Oracle:配置让插入语句时id自动输入
  • Sora网页打不开怎么办?常见原因与解决方法
  • 从零开始:打造一个现代化的BMI计算器Web应用
  • JVM面试精选 20 题(终)
  • 数据结构之排序大全(2)
  • 【科研绘图系列】R语言绘制平滑曲线折线图
  • 2025招商铸盾车联网CTF竞赛初赛题解
  • Vue 3 高性能实践 全面提速剖析!
  • 基于SpringBoot+Vue的吴韵苏香文旅小程序(协同过滤算法、Echarts图形化分析、腾讯地图API、二维码识别)
  • Linux KGDB 内核调试完全指南:原理、架构与应用
  • ADG duplicate实施方案详细教程(单机版)
  • 基于STM32单片机智能药盒定时吃药喂水蓝牙APP设计
  • abc Replace
  • cadence16.6修改原理图的Page Number过程中遇到问题
  • 工地智能安全带让高空作业更安全
  • PCB题目基础练习3
  • 前端项目面试分析
  • 解决 nginx: [warn] “ssl_stapling“ ignored, issuer certificate not found 报错
  • cobbler
  • 连续空间强化学习:策略输出的两种形态 —— 概率分布与确定性动作
  • 智慧城市SaaS平台/市政设施运行监测系统之排水管网运行监测、综合管廊运行监测
  • lesson43:Python操作MongoDB数据库完全指南
  • Hyperledger Fabric官方中文教程-改进笔记(十三)-使用测试网络创建通道
  • 25年CATL宁德时代社招晋升竞聘Veirfy测评SHL题库演绎数字语言推理答题指南
  • Js逆向 某花顺登录滑块逆向
  • AI入门学习--理解token
  • Springboot 项目配置多数据源