当前位置: 首页 > 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…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...

Vue记事本应用实现教程

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

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

数据库分批入库

今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...