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

达梦数据库系列—17. 主备集群搭建-实时主备

目录

配置实时主备

1、环境说明

2、数据准备

脱机备份、脱机还原方式

联机备份、脱机还原方式

3、配置主库

3.1 配置 dm.ini

3.2 配置 dmmal.ini

3.3 配置 dmarch.ini

3.4 配置 dmwatcher.ini

3.5 启动主库为mount

3.6 设置 OGUID

3.7 修改数据库模式

4、配置备库

4.1 配置 dm.ini

4.2 配置 dmmal.ini

4.3 配置 dmarch.ini

4.4 配置 dmwatcher.ini

4.5 启动备库为mount

4.6 设置 OGUID

4.7 修改数据库模式

5 、配置监视器

5.1 配置单实例监视器

5.2 配置多实例监视器

6 、启动守护进程

7 、启动监视器


配置实时主备

1、环境说明

  1. 准备三台机器 DW_P、DW_S1、DW_M,DW_P 和 DW_S1 用来部署主备库,DW_M 用来部署确认监视器。其中 DW_P 和 DW_S1 配置两块网卡,一块接入内部网络交换模块,一块接入到外部交换机,DW_M 接入内部网络。
  2. 三台机器都事先安装了 DM,安装路径为'/dm',执行程序保存在'/dm/bin'目录中,数据存放路径为'/dm/data'。

配置环境说明

DW_P

192.168.64.131 192.168.169.141

主库 GRP1_RT_01

Linux rh7

192.168.64.131 外部服务 IP;
192.168.169.141 内部通信 IP

DW_S1

192.168.64.132 192.168.169.142

备库 GRP1_RT_02

Linux rh7

192.168.64.132 外部服务 IP;
192.168.169.142 内部通信 IP

DW_M

192.168.64.73

确认监视器

Linux rh7

端口规划

实例名

PORT_NUM

MAL_INST_DW_PORT

MAL_HOST

MAL_PORT

MAL_DW_PORT

GRP1_RT_01

32141

33141

192.168.169.141

61141

52141

GRP1_RT_02

32142

33142

192.168.169.142

61142

52142

2、数据准备

每个库都有一个永久魔数(permenant_magic),一经生成,永远不会改变,主库传送日志时会判断这个值是否一样,确保是来自同一个数据守护环境中的库,否则传送不了日志。

DW_P 机器上初始化主库至目录/dm/data:

dminit path=/dm/data

DW_S1 机器上初始化备库至目录/dm/data:

dminit path=/dm/data

数据要通过备份还原的方式准备。

脱机备份、脱机还原方式
  1. 正常关闭数据库
  2. 进行脱机备份
./dmrman CTLSTMT="BACKUP DATABASE '/dm/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET  '/dm/data/BACKUP_FILE_01'"

3.拷贝备份文件到备库所在机器

4.执行脱机数据库还原与恢复

数据库还原:

./dmrman CTLSTMT="RESTORE DATABASE '/dm/data/DAMENG/dm.ini' FROM BACKUPSET '/dm/data/BACKUP_FILE_01'"

因为脱机备份没有产生任何 REDO 日志,所以恢复这一步此处省略。

数据库更新:

./dmrman CTLSTMT="RECOVER DATABASE '/dm/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
联机备份、脱机还原方式
  1. 对主库进行联机备份操作
SQL> BACKUP DATABASE BACKUPSET '/dm/data/BACKUP_FILE_01';

    2.拷贝备份文件到备库所在机器

    3.执行脱机数据库还原与恢复

./dmrman CTLSTMT="RESTORE DATABASE '/dm/data/DAMENG/dm.ini' FROM BACKUPSET '/dm/data/BACKUP_FILE_01'"
./dmrman CTLSTMT="RECOVER DATABASE '/dm/data/DAMENG/dm.ini' FROM BACKUPSET '/dm/data/BACKUP_FILE_01'"
./dmrman CTLSTMT="RECOVER DATABASE '/dm/data/DAMENG/dm.ini' UPDATE DB_MAGIC"

3、配置主库

3.1 配置 dm.ini
##实例名,建议使用“组名_守护环境_序号”的命名方式,总长度不能超过16INSTANCE_NAME = GRP1_RT_01PORT_NUM = 32141 ##数据库实例监听端口DW_INACTIVE_INTERVAL = 60 ##接收守护进程消息超时时间ALTER_MODE_STATUS = 0 ##不允许手工方式修改实例模式/状态/OGUIDENABLE_OFFLINE_TS = 2 ##不允许备库OFFLINE表空间MAL_INI = 1 ##打开MAL系统ARCH_INI = 1 ##打开归档配置RLOG_SEND_APPLY_MON = 64 ##统计最近64次的日志发送信息
3.2 配置 dmmal.ini

配置 MAL 系统,各主备库的 dmmal.ini 配置必须完全一致,MAL_HOST 使用内部网络 IP,MAL_PORT 与 dm.ini 中 PORT_NUM 使用不同的端口值,MAL_DW_PORT 是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:

MAL_CHECK_INTERVAL = 5 ##MAL链路检测时间间隔MAL_CONN_FAIL_INTERVAL = 5 ##判定MAL链路断开的时间[MAL_INST1]MAL_INST_NAME = GRP1_RT_01 ##实例名,和dm.ini中的INSTANCE_NAME一致MAL_HOST = 192.168.169.141  ##MAL系统监听TCP连接的IP地址MAL_PORT = 61141 ##MAL系统监听TCP连接的端口MAL_INST_HOST = 192.168.64.131 ##实例的对外服务IP地址MAL_INST_PORT = 32141 ##实例的对外服务端口,和dm.ini中的PORT_NUM一致MAL_DW_PORT = 52141 ##实例本地的守护进程监听TCP连接的端口MAL_INST_DW_PORT = 33141 ##实例监听守护进程TCP连接的端口[MAL_INST2]MAL_INST_NAME = GRP1_RT_02MAL_HOST = 192.168.169.142MAL_PORT = 61142MAL_INST_HOST = 192.168.64.132MAL_INST_PORT = 32142MAL_DW_PORT = 52142MAL_INST_DW_PORT = 33142
3.3 配置 dmarch.ini

修改 dmarch.ini,配置本地归档和实时归档。

除了本地归档外,其他归档配置项中的 ARCH_DEST 表示实例是 Primary 模式时,需要同步归档数据的目标实例名。

当前实例 GRP1_RT_01 是主库,需要向 GRP1_RT_02(实时备库)同步数据,因此实时归档的 ARCH_DEST 配置为 GRP1_RT_02。

[ARCHIVE_REALTIME]ARCH_TYPE = REALTIME ##实时归档类型ARCH_DEST = GRP1_RT_02 ##实时归档目标实例名[ARCHIVE_LOCAL1]ARCH_TYPE = LOCAL ##本地归档类型ARCH_DEST = /dm/data/DAMENG/arch ##本地归档文件存放路径ARCH_FILE_SIZE = 128 ##单位Mb,本地单个归档文件最大值ARCH_SPACE_LIMIT = 0 ##单位Mb,0表示无限制,范围1024~2147483647M
3.4 配置 dmwatcher.ini

配置为全局守护类型,使用自动切换模式。

[GRP1]DW_TYPE = GLOBAL ##全局守护类型DW_MODE = AUTO ##自动切换模式DW_ERROR_TIME = 10 ##远程守护进程故障认定时间INST_RECOVER_TIME = 60 ##主库守护进程启动恢复的间隔时间INST_ERROR_TIME = 10 ##本地实例故障认定时间INST_OGUID = 453331 ##守护系统唯一OGUID值INST_INI = /dm/data/DAMENG/dm.ini ##dm.ini配置文件路径INST_AUTO_RESTART = 1 ##打开实例的自动启动功能INST_STARTUP_CMD = /dm/bin/dmserver ##命令行方式启动RLOG_SEND_THRESHOLD = 0 ##指定主库发送日志到备库的时间阈值,默认关闭RLOG_APPLY_THRESHOLD = 0 ##指定备库重演日志的时间阈值,默认关闭
3.5 启动主库为mount

以 Mount 方式启动主库

./dmserver /dm/data/DAMENG/dm.ini mount
3.6 设置 OGUID

系统通过OGUID值确定一个守护进程组,确保数据守护系统中,数据库、守护进程和监视器配置相同的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);
3.7 修改数据库模式
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);SQL>alter database primary;SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

4、配置备库

4.1 配置 dm.ini
##实例名,建议使用“组名_守护环境_序号”的命名方式,总长度不能超过16INSTANCE_NAME = GRP1_RT_02PORT_NUM = 32142 ##数据库实例监听端口DW_INACTIVE_INTERVAL = 60 ##接收守护进程消息超时时间ALTER_MODE_STATUS = 0 ##不允许手工方式修改实例模式/状态/OGUIDENABLE_OFFLINE_TS = 2 ##不允许备库OFFLINE表空间MAL_INI = 1 ##打开MAL系统ARCH_INI = 1 ##打开归档配置RLOG_SEND_APPLY_MON = 64 ##统计最近64次的日志重演信息
4.2 配置 dmmal.ini
MAL_CHECK_INTERVAL = 5 ##MAL链路检测时间间隔MAL_CONN_FAIL_INTERVAL = 5 ##判定MAL链路断开的时间[MAL_INST1]MAL_INST_NAME = GRP1_RT_01 ##实例名,和dm.ini中的INSTANCE_NAME一致MAL_HOST = 192.168.169.141  ##MAL系统监听TCP连接的IP地址MAL_PORT = 61141 ##MAL系统监听TCP连接的端口MAL_INST_HOST = 192.168.64.131  ##实例的对外服务IP地址MAL_INST_PORT = 32141 ##实例的对外服务端口,和dm.ini中的PORT_NUM一致MAL_DW_PORT = 52141 ##实例对应的守护进程监听TCP连接的端口MAL_INST_DW_PORT = 33141 ##实例监听守护进程TCP连接的端口[MAL_INST2]MAL_INST_NAME = GRP1_RT_02MAL_HOST = 192.168.169.142MAL_PORT = 61142MAL_INST_HOST = 192.168.64.132MAL_INST_PORT = 32142MAL_DW_PORT = 52142MAL_INST_DW_PORT = 33142
4.3 配置 dmarch.ini
[ARCHIVE_REALTIME]ARCH_TYPE = REALTIME ##实时归档类型ARCH_DEST = GRP1_RT_01 ##实时归档目标实例名[ARCHIVE_LOCAL1]ARCH_TYPE = LOCAL ##本地归档类型ARCH_DEST = /dm/data/DAMENG/arch ##本地归档文件路径ARCH_FILE_SIZE = 128 ##单位Mb,本地单个归档文件最大值ARCH_SPACE_LIMIT = 0 ##单位Mb,0表示无限制,范围1024~2147483647M
4.4 配置 dmwatcher.ini
[GRP1]DW_TYPE = GLOBAL ##全局守护类型DW_MODE = AUTO ##自动切换模式DW_ERROR_TIME = 10 ##远程守护进程故障认定时间INST_RECOVER_TIME = 60 ##主库守护进程启动恢复的间隔时间INST_ERROR_TIME = 10 ##本地实例故障认定时间INST_OGUID = 453331 ##守护系统唯一OGUID值INST_INI = /dm/data/DAMENG/dm.ini ##dm.ini配置文件路径INST_AUTO_RESTART = 1 ##打开实例的自动启动功能INST_STARTUP_CMD = /dm/bin/dmserver ##命令行方式启动RLOG_APPLY_THRESHOLD = 0 ##指定备库重演日志的时间阈值,默认关闭
4.5 启动备库为mount
./dmserver /dm/data/DAMENG/dm.ini mount
4.6 设置 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);
4.7 修改数据库模式
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步

5 、配置监视器

在主库发生故障时,能够自动通知实时备库接管为新的主库,具有自动故障处理的功能。

5.1 配置单实例监视器

/dm/data目录下配置dmmonitor.ini

MON_DW_CONFIRM = 1 ##确认监视器模式MON_LOG_PATH = /dm/data/log ##监视器日志文件存放路径MON_LOG_INTERVAL = 60 ##每隔60s定时记录系统信息到日志文件MON_LOG_FILE_SIZE = 32 ##每个日志文件最大32MMON_LOG_SPACE_LIMIT = 0 ##不限定日志文件总占用空间[GRP1]MON_INST_OGUID = 453331 ##组GRP1的唯一OGUID值##以下配置为监视器到组GRP1的守护进程的连接信息,以“IP:PORT”的形式配置##IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORTMON_DW_IP = 192.168.169.141:52141MON_DW_IP = 192.168.169.142:52142
5.2 配置多实例监视器

各实例的 MON_ID 与 MON_INST_ID 应相同。

MON_LOG_PATH         = /dm/data/logMON_LOG_INTERVAL       = 60MON_LOG_FILE_SIZE       = 32MON_LOG_SPACE_LIMIT     = 0MON_DW_CONFIRM        = 1MON_INST_NUM         = 3      ##实例总个数MON_HB_INTERVAL        = 60      ##通信心跳校验间隔MON_BRO_INTERVAL       = 100     ##raft协议中实例通信心跳间隔MON_VOTE_INTERVAL       = 100     ##raft协议中基础投票间隔MON_ID            = 1       ##当前监视器在监视器系统中的IDMON_MID            = 45614    ##当前监视器系统的唯一标识[GRP1]MON_INST_OGUID      = 453331MON_DW_IP           = 192.168.169.141:52141MON_DW_IP           = 192.168.169.142:52142[MON1]MON_HOST          = 192.168.169.141    ##系统监听TCP连接的IP地址MON_PORT          = 8339         ##系统监听TCP连接的端口号MON_INST_ID        = 1          ##监视器实例在监视器系统中的ID[MON2]MON_HOST            = 192.168.169.141  ##系统监听TCP连接的IP地址MON_PORT            = 8340 ##系统监听TCP连接的端口号MON_INST_ID = 2 ##监视器实例在监视器系统中的ID[MON3]MON_HOST            = 192.168.169.141  ##系统监听TCP连接的IP地址MON_PORT            = 8341 ##系统监听TCP连接的端口号MON_INST_ID = 3 ##监视器实例在监视器系统中的ID

6 、启动守护进程

./dmwatcher /dm/data/DAMENG/dmwatcher.ini

守护进程启动后,进入 Startup 状态,此时实例都处于 Mount 状态。守护进程开始广播自身和其监控实例的状态信息,结合自身信息和远程守护进程的广播信息,守护进程将本地实例 Open,并切换为 Open 状态。

7 、启动监视器

多实例确认监视器系统中,需逐个单独启动各监视器。

启动监视器:

./dmmonitor /dm/data/dmmonitor.ini

至此一主一备的实时数据守护系统搭建完毕,在搭建步骤和各项配置都正确的情况下,在监视器上执行 show 命令,可以监控到所有实例都处于 Open 状态,所有守护进程也都处于 Open 状态,即为正常运行状态。

达梦技术社区:https://eco.dameng.com/

相关文章:

达梦数据库系列—17. 主备集群搭建-实时主备

目录 配置实时主备 1、环境说明 2、数据准备 脱机备份、脱机还原方式 联机备份、脱机还原方式 3、配置主库 3.1 配置 dm.ini 3.2 配置 dmmal.ini 3.3 配置 dmarch.ini 3.4 配置 dmwatcher.ini 3.5 启动主库为mount 3.6 设置 OGUID 3.7 修改数据库模式 4、配置备库…...

【24医学顶刊】GANDALF:主动学习 + 图注意力变换器 + 变分自编码器,改善多标签图像分类

GANDALF:主动学习 图注意力变换器 变分自编码器,改善多标签图像分类 提出背景子解法1:多标签信息样本的选择子解法2:生成信息丰富且非冗余的合成样本 例子:胸部X射线图像分析传统方法的操作和局限GaNDLF方法的优势 工…...

Linux 权限介绍

文章目录 Linux 权限介绍权限类型权限的数字表示查看文件信息修改权限相关指令 Linux 权限介绍 在 Linux 系统中,权限管理是非常重要的一部分,它确保了系统的安全性和文件的合理访问。 权限类型 [ r ]代表可读(read)&#xff1…...

kernel header解析

一、kernel header定义: aarch64 kernel header u32 code0; /* Executable code */ u32 code1; /* Executable code */ u64 text_offset; /* Image load offset, little endian */ u64 image_size; /* Effective Image size, little…...

MQ运行时遇到的问题

遇到的问题描述:我在绑定通道的时候发现了通道绑定失败, 原因: 在代码中我第一次创建交换机的时候类型的默认没有修改成topic类型的,导致后面的代码再去进行注册的时候并没有实现那个类型 解决: 更改代码&#xff0…...

EDI是什么?与ERP有何关系

EDI的发展过程 电子数据交换(Electronic Data Interchange,EDI)是一种通过电子方式传输商业文件的技术。EDI的历史可以追溯到20世纪60年代,当时企业开始使用计算机进行数据处理。最早的EDI系统是为解决大型企业间的信息交换问题而…...

【MotionCap】在wsl2 ubuntu20.04构建及运行

https://github.com/MVIG-SJTU/AlphaPose/issues/1157conda create -n alphapose python=3.7 -y conda activate alphapose conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1...

iptables 防火墙(二)

iptables 防火墙(二) 一、SNAT 策略及应用SNAT 策略概述SNAT 策略的应用 二、DNAT 策略及应用DNAT 策略概述 三、规则的导出、导入规则的备份及还原iptables-save 命令iptables-restore 命令 使用 iptables 服务 四、使用防火墙脚本防火墙脚本的构成防火…...

【机器学习】在【PyCharm中的学习】:从【基础到进阶的全面指南】

目录 第一步:基础准备 1.1 Python基础 1.1.1 学习Python的基本语法 1.1.2 控制流 1.1.3 函数和模块 1.2 安装PyCharm 1.2.1 下载并安装 第二步:数据科学基础 2.1 安装必备库 2.1.1 使用pip安装 2.2 数据操作 2.2.1 Pandas基础操作 2.2.2 Nu…...

idea Error running ‘Application‘

1、Error running ‘Application’ Error running ApplicationError running Application. Command line is too long.Shorten the command line via JAR manifest or via a classpath file and rerun.找到 .idea/libraies/workspace.xml 中的 PropertiesComponent 属性&#…...

数据结构和顺序表

什么是数据结构 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 数据元素的三要素 数据结构包括三方面的内容:逻辑结构、存储结构、数据的运算。 逻辑结构 逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据。数据的逻辑结…...

【一步一步了解Java系列】:对这个系列的总结以及对缺漏内部类知识的补充

看到这句话的时候证明:此刻你我都在努力 加油陌生人 br />个人主页:Gu Gu Study专栏:一步一步了解Java 喜欢的一句话: 常常会回顾努力的自己,所以要为自己的努力留下足迹 喜欢的话可以点个赞谢谢了。 作者&#xf…...

TCP和UDP

目录 TCPUDPTCP 传输控制协议(Transmission Control Protocol, TCP)是一种面向连接的,可靠的,基于字节流的传输层通信协议。在该层,另一个重要传输协议是用户数据包协议(UDP)。 数据在TCP层称为流Stream,数组分组称为分段Segment。相对的在IP层,数据称为Datagram, 数…...

【ai】tx2 nx:ubuntu18.04 yolov4-triton-tensorrt 成功部署server 运行

isarsoft / yolov4-triton-tensorrt运行发现插件未注册? 【ai】tx2 nx: jetson Triton Inference Server 部署YOLOv4 【ai】tx2 nx: jetson Triton Inference Server 运行YOLOv4 对main 进行了重新构建 【ai】tx2 nx :ubuntu查找NvInfer.h 路径及哪个包、查找符号【ai】tx2…...

类与对象的创建

1.类是一种抽象的数据类型,他是对某一类事务整体描述/定义,但是并不能代表某一个具体的事物 eg:动物,植物,手机,电脑... Person类,Pet类,Car类,这些类都是用来描述、定义…...

基于单片机的 LED 照明灯智能调光系统设计

摘  要: 社会经济的不断发展,推动了智能化生活的进程,智能调光技术开始广泛应用在生活中,人们也逐渐提高了灯光亮灯率等的要求。基于此,笔者主要设计了基于单片机的 LED 照明灯智能调光系统,希望能够为相关…...

客户满意度调查方法有哪些

用户满意度调查作为改进用户体验工作中重要的一项活动,可以帮助企业深入了解客户对产品服务各方面评价。有许多企业想开展客户满意度调查,但是在调查方式上不清楚该用那种方式?另外还要考虑预算,民安智库(公众满意度调…...

为什么企业应用开发,c++干不过java?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「c的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! C/C这种东西,根本…...

基于盲信号处理的声音分离——最小化增益的ICA算法

基于最小化增益的ICA算法的算法是依据混合信号经过盲信号分离会产生一定的噪声,为了使得分离后的信号与原信号的比值最小时,叫做增益最小。当增益越小时,分离后噪声越小,分离信号越接近原信号,分离算法的效果越好。这是…...

自动化代码规范检查--Sonarqube部署

参考文档 官方文档安装数据库 官方给出几种数据库: # 我们选用postgres, 拉取镜像 docker pull postgres:16.0# 创建存储卷 docker volume create postgresql-data# 运行容器 docker run -d --name sonarqube-postgres \-p 5432:5432 \-e POSTGRES_DB=sonar_DB \-e POSTGRE…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐)​​ 在 save_images 方法中,​​删除或注释掉所有与 metadata …...

ubuntu22.04有线网络无法连接,图标也没了

今天突然无法有线网络无法连接任何设备,并且图标都没了 错误案例 往上一顿搜索,试了很多博客都不行,比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动,重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...

Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程

鸿蒙电脑版操作系统来了,很多小伙伴想体验鸿蒙电脑版操作系统,可惜,鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机,来体验大家心心念念的鸿蒙系统啦!注意:虚拟…...

数据库正常,但后端收不到数据原因及解决

从代码和日志来看,后端SQL查询确实返回了数据,但最终user对象却为null。这表明查询结果没有正确映射到User对象上。 在前后端分离,并且ai辅助开发的时候,很容易出现前后端变量名不一致情况,还不报错,只是单…...

用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法

用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法 大家好,我是Echo_Wish。最近刷短视频、看直播,有没有发现,越来越多的应用都开始“懂你”了——它们能感知你的情绪,推荐更合适的内容,甚至帮客服识别用户情绪,提升服务体验。这背后,神经网络在悄悄发力,撑起…...