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

DMHS搭建DMDSC 2节点集群同步到单库

DMHS搭建DMDSC 2节点集群同步到单库

  • 环境介绍
  • 1 安装DMOCI
    • 1.1 关闭数据库实例服务
    • 1.2 将DMOCI 复制到源端与目的端的数据库bin目录
    • 1.3 对数据库bin 执行目录文件更改用户属组和权限
  • 2 启动源数据库服务并配置数据库实例参数
    • 2.1 使用DMCSSM启动集群实例
    • 2.2 DMDSC源其中一个节点执行SQL脚本(不同数据库品牌执行脚本不同)
    • 2.3 DMDSC源其中一个节点配置开启逻辑日志功能
  • 3 安装DMHS程序
    • 3.1 源和目的每个节点上传DMHS安装包和授权
      • 3.1.1 HS73 上传DMHS安装包和授权
      • 3.1.2 HS74 上传DMHS安装包和授权
      • 3.1.3 HS75 上传DMHS安装包和授权
    • 3.2 安装程序
      • 3.2.1 HS73 完整安装(包含web端)
      • 3.2.2 EP74 精简安装
      • 3.2.3 EP75 精简安装
  • 4 启动DMHS
    • 4.1 HS73启动内置数据库+启动web服务+启动HS_AGENT服务
    • 4.2 HS74 启动HS_AGENT服务
    • 4.3 HS75 启动HS_AGENT服务
  • 5 配置IP端口代理环境(WINDOWS环境和linux网络通跳过此步骤)
  • 6 web方式登录DMHS管理界面
    • 6.1 登录界面
    • 6.2 登录成功后的界面
  • 7 配置DMHS实例
    • 7.1 HS75 先配置目的端
    • 7.2 HS73和HS74是集群,要先在HS73和HS74本机配置服务文件
      • 7.2.1 编写 vi /etc/dm_svc.conf
      • 7.2.2 HS73验证配置文件可用
      • 7.2.3 HS74验证配置文件可用
    • 7.3 源DMDSC HS73 配置HS实例
    • 7.4 源DMDSC HS74 配置HS实例
    • 7.5 修改源端 HS73,HS74 实例配置
      • 7.5.1 修改 HS73实例配置文件
        • 7.5.1.1 对HS73 实例捕获器 cpt 右键修改配置
        • 7.5.1.2 对HS73 实例右键修改配置
      • 7.5.2 修改 HS74实例配置文件
        • 7.5.2.1 对HS74 实例捕获器 cpt 右键修改配置
        • 7.5.2.2 对HS74 实例右键修改配置
  • 8 启动HS服务
    • 8.1 启动HS75 实例服务
    • 8.2 启动HS73 实例服务
    • 8.3 启动HS74 实例服务
  • 9 启动HS实例目的端执行器+源端捕获器
    • 9.1 启动目的端HS75 执行器
    • 9.2 HS73 装载字典
    • 9.3 启动源端 HS73 启动cpt 捕获器,开始实时同步数据
    • 9.4 启动源端 HS74 启动cpt 捕获器,开始源端主备模式实时同步数据
  • 10 验证数据同步情况
  • 11 恭喜搭建完成

环境介绍

由 2 节点的 DM8 DMDSC集群+DMHS,数据同步到DM8单库+DMHS环境搭建

名称详情
CPUx86
OSKylin v10
DBDM8.1-2-18-21.11.11-150669-10013-ENT Pack16
DMHSdmhs_V4.1.1_dm8_rev99696_rh6_64_veri_20210527
DMDSC-IP192.168.248.73, 192.168.248.74
DM单机-IP192.168.248.75
宿主机192.168.100.169
DMDSC搭建步骤点我跳转-11.3 DM8:DMDSC共享存储集群搭建

1 安装DMOCI

在这里插入图片描述

1.1 关闭数据库实例服务

[dmdba@dmdsc73 ~]$ cd /home/dmdba/dmdbms/bin
[dmdba@dmdsc73 bin]$ ./dmcssm ini_path=/home/dmdba/tool/dmcssm.ini
[monitor]         2023-03-09 09:10:38: CSS MONITOR V8
[monitor]         2023-03-09 09:10:38: CSS MONITOR SYSTEM IS READY.[monitor]         2023-03-09 09:10:38: Wait CSS Control Node choosed...
[monitor]         2023-03-09 09:10:39: Wait CSS Control Node choosed succeed.ep stop GRP_DSC
[monitor]         2023-03-09 09:11:18: 通知CSS(seqno:0)关闭节点(DSC73)的自动拉起功能
[monitor]         2023-03-09 09:11:18: 通知CSS(seqno:0)关闭节点(DSC73)的自动拉起功能成功
[monitor]         2023-03-09 09:11:18: 通知CSS(seqno:1)关闭节点(DSC74)的自动拉起功能
[monitor]         2023-03-09 09:11:18: 通知CSS(seqno:1)关闭节点(DSC74)的自动拉起功能成功
[monitor]         2023-03-09 09:11:18: 关闭CSS自动拉起功能成功
[monitor]         2023-03-09 09:11:18: 通知CSS(seqno:0)执行EP STOP(GRP_DSC)
[monitor]         2023-03-09 09:11:26: 通知当前活动的CSS执行清理操作
[monitor]         2023-03-09 09:11:27: 清理CSS(0)请求成功
[monitor]         2023-03-09 09:11:27: 清理CSS(1)请求成功
[monitor]         2023-03-09 09:11:27: 命令EP STOP GRP_DSC执行成功

1.2 将DMOCI 复制到源端与目的端的数据库bin目录

若存在相同的文件替换即可

1.3 对数据库bin 执行目录文件更改用户属组和权限

HS73

[root@dmdsc73 dmdba]$ chown -R dmdba:dinstall /home/dmdba/dmdbms/bin
[root@dmdsc73 dmdba]$ chmod -R 755 /home/dmdba/dmdbms/bin
[root@dmdsc73 dmdba]$

HS74

[root@dmdsc74 ~]$ chown -R dmdba:dinstall /home/dmdba/dmdbms/bin
[root@dmdsc74 ~]$ chmod -R 755 /home/dmdba/dmdbms/bin
[root@dmdsc74 ~]$

HS75
关闭数据库服务,拷贝DMOCI,对数据库bin 执行目录文件更改用户属组和权限

[root@node75 ~]$ /home/dmdba/dmdbms/bin/DmService75 stop
Stopping DmService75:                                      [ OK ]
[root@node75 ~]$ chown -R dmdba:dinstall /home/dmdba/dmdbms/bin
[root@node75 ~]$ chmod -R 755 /home/dmdba/dmdbms/bin
$$完成拷贝后,启动数据库服务
[root@node75 ~]$/home/dmdba/dmdbms/bin/DmService75 start
Startting DmService75:                                      [ OK ]

2 启动源数据库服务并配置数据库实例参数

2.1 使用DMCSSM启动集群实例

EP STARTUP GRP_DSC
[monitor]         2023-03-09 09:11:43: 通知CSS(seqno:0)执行EP STARTUP(DSC73)
[monitor]         2023-03-09 09:11:52: 通知CSS(seqno:0)执行EP STARTUP(DSC73)成功
[monitor]         2023-03-09 09:11:52: 通知CSS(seqno:1)执行EP STARTUP(DSC74)
[monitor]         2023-03-09 09:12:00: 通知CSS(seqno:1)执行EP STARTUP(DSC74)成功
[monitor]         2023-03-09 09:12:00: 通知CSS(seqno:0)打开节点(DSC73)的自动拉起功能
[monitor]         2023-03-09 09:12:00: 通知CSS(seqno:0)打开节点(DSC73)的自动拉起功能成功
[monitor]         2023-03-09 09:12:00: 通知CSS(seqno:1)打开节点(DSC74)的自动拉起功能
[monitor]         2023-03-09 09:12:01: 通知CSS(seqno:1)打开节点(DSC74)的自动拉起功能成功
[monitor]         2023-03-09 09:12:01: 打开CSS自动拉起功能成功
[monitor]         2023-03-09 09:12:01: 通知当前活动的CSS执行清理操作
[monitor]         2023-03-09 09:12:01: 清理CSS(0)请求成功
[monitor]         2023-03-09 09:12:02: 清理CSS(1)请求成功
[monitor]         2023-03-09 09:12:02: 命令EP STARTUP GRP_DSC执行成功[CSS73]            [DB]: 设置命令[DCR_LOAD], 目标站点 DSC73[0], 命令序号[29]
[CSS73]            [DB]: 设置命令[DCR_LOAD], 目标站点 DSC74[1], 命令序号[30]
[CSS73]            [DB]: 设置命令[NONE], 目标站点 DSC73[0], 命令序号[0]
[CSS73]            [DB]: 设置命令[NONE], 目标站点 DSC74[1], 命令序号[0]
[CSS73]            [DB]: 设置命令[EP START], 目标站点 DSC73[0], 命令序号[32]
[CSS73]            [DB]: 设置命令[NONE], 目标站点 DSC73[0], 命令序号[0]
[CSS73]            [DB]: 设置命令[EP START], 目标站点 DSC74[1], 命令序号[34]
[CSS73]            [DB]: 设置命令[NONE], 目标站点 DSC74[1], 命令序号[0]
[CSS73]            [DB]: 设置命令[EP START2], 目标站点 DSC73[0], 命令序号[37]
[CSS73]            [DB]: 设置命令[NONE], 目标站点 DSC73[0], 命令序号[0]
[CSS73]            [DB]: 设置命令[EP START2], 目标站点 DSC74[1], 命令序号[39]
[CSS73]            [DB]: 设置命令[NONE], 目标站点 DSC74[1], 命令序号[0]
[CSS73]            [DB]: 设置命令[EP OPEN], 目标站点 DSC73[0], 命令序号[42]
[CSS73]            [DB]: 设置命令[EP OPEN], 目标站点 DSC74[1], 命令序号[43]
[CSS73]            [DB]: 设置命令[NONE], 目标站点 DSC73[0], 命令序号[0]
[CSS73]            [DB]: 设置命令[NONE], 目标站点 DSC74[1], 命令序号[0]
[CSS73]            [DB]: 设置命令[EP REAL OPEN], 目标站点 DSC73[0], 命令序号[45]
[CSS73]            [DB]: 设置命令[EP REAL OPEN], 目标站点 DSC74[1], 命令序号[46]
[CSS73]            [DB]: 设置命令[NONE], 目标站点 DSC73[0], 命令序号[0]
[CSS73]            [DB]: 设置命令[NONE], 目标站点 DSC74[1], 命令序号[0]

2.2 DMDSC源其中一个节点执行SQL脚本(不同数据库品牌执行脚本不同)

在这里插入图片描述

2.3 DMDSC源其中一个节点配置开启逻辑日志功能

HS73
DMDSC 开启逻辑日志功能(其中一个节点执行,集群会自动同步配置)

RLOG_APPEND_LOGIC =2 (会立即生效,不用重启数据库服务)

[dmdba@dmdsc73 ~]$ cd dmdbms/bin
[dmdba@dmdsc73 bin]$ ./disql SYSDBA/SYSDBA
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.373(ms)
disql V8
SQL> sp_set_para_value(1,'RLOG_APPEND_LOGIC',2);
DMSQL 过程已成功完成
已用时间: 12.224(毫秒). 执行号:500.
SQL> EXIT
[dmdba@dmdsc73 bin]$

HS73查询dm.ini参数值
在这里插入图片描述
HS74查询dm.ini参数值
在这里插入图片描述
HS75查询dm.ini参数值(默认值)
在这里插入图片描述

3 安装DMHS程序

3.1 源和目的每个节点上传DMHS安装包和授权

上传目录:/home/dmsoft/
添加执行权限修改文件属组

3.1.1 HS73 上传DMHS安装包和授权

在这里插入图片描述

3.1.2 HS74 上传DMHS安装包和授权

在这里插入图片描述

3.1.3 HS75 上传DMHS安装包和授权

在这里插入图片描述

3.2 安装程序

源端建议完整版安装(包含web端),目的端可以简易安装
使用dmdba用户安装

3.2.1 HS73 完整安装(包含web端)

只需要配置依赖库路径,其他参数默认
请配置依赖库路径:/home/dmdba/dmdbms/bin

安装日志记录:

[dmdba@dmdsc73 ~]$ cd /home/dmsoft
[dmdba@dmdsc73 dmsoft]$ ./dmhs_V4.1.1_dm8_rev99696_rh6_64_veri_20210527.bin -i
Extract install files.........1.英文(English)
2.简体中文(简体中文)
请选择安装语言[2.简体中文(简体中文)]:
/tmp/DMHSInstall/install.log
1.免费试用达梦数据实时同步
2.使用已申请的Key文件
验证许可证文件[1.免费试用达梦数据实时同步]:2
Key文件路径:/home/dmsoft/dmhs.key
Key文件限制信息如下:
有效日期:2023-06-25
用户名称:达梦公司产品试用
服务器颁布类型:试用版
发布类型:企业版
Key类型:企业版
授权用户数:无限制
并发连接数:无限制
1.精简版
2.完整版(web客户端)
3.自定义
安装类型[1.精简版]:2
1.实时同步软件服务器
2.远程部署工具
3.实时同步软件客户端
4.内置数据库
5.实时同步软件配置助手
6.手册
所需磁盘空间:899 MB
安装目录: [/home/dmdba/dmhs]
Web服务端口(8080):
1.统一部署
2.现在初始化
是否初始化达梦数据实时同步系统[1.统一部署]:
正在安装
default start ...    default finished.
server start ...    server finished.
hs_agent start ...    hs_agent finished.
webmanager start ...    webmanager finished.
db start ...    db finished.
hsca start ...    hsca finished.
doc start ...    doc finished.
doc start ...    doc finished.
postinstall start ...    postinstall finished.
正在创建快捷方式
安装成功
远程部署工具配置
远程部署工具名称[HsAgent]:
主机Ip(外网)[192.168.248.73](192.168.248.73):
远程部署工具管理端口[5456](1000-65535):
内置数据库轮询间隔[3](1-60):
内置数据库IP[192.168.248.73]:
内置数据库端口[15236]:
内置数据库用户名[SYSDBA]:
内置数据库密码[SYSDBA]:
服务脚本环境变量设置
依赖库路径
提示:此配置项供用户配置源或目的数据库依赖库路径和odbc依赖库路径, 多个路径以":"隔开(例:/opt/dmdbms/bin:/usr/local/lib),此配置项会添加到服务脚本的NEED_LIB_PATH的变量值中。
请配置依赖库路径:/home/dmdba/dmdbms/bin
内置数据库服务
1.自动
2.手动
启动方式:[2.手动]
正在创建内置数据库服务
初始化内置数据库
初始化内置数据库失败
远程控制服务
1.自动
2.手动
启动方式:[2.手动]
正在创建远程控制服务
web服务
1.自动
2.手动
启动方式:[2.手动]
正在创建web服务
达梦数据实时同步V4.0安装完成
更多安装信息,请查看安装日志文件:
/home/dmdba/dmhs02/log/install.log[dmdba@dmdsc73 dmsoft]$

3.2.2 EP74 精简安装

其中需要改动的参数:
内置数据库IP配置HS73的IP
内置数据库IP[]:192.168.248.73
请配置依赖库路径:/home/dmdba/dmdbms/bin

其他默认安装

安装日志记录:

[dmdba@node74 dmsoft]$ ./dmhs_V4.1.1_dm8_rev99696_rh6_64_veri_20210527.bin -i
Extract install files.........1.英文(English)
2.简体中文(简体中文)
请选择安装语言[2.简体中文(简体中文)]:
/tmp/DMHSInstall/install.log
1.免费试用达梦数据实时同步
2.使用已申请的Key文件
验证许可证文件[1.免费试用达梦数据实时同步]:2
Key文件路径:/home/dmsoft/dmhs.key
Key文件限制信息如下:
有效日期:2023-06-25
用户名称:达梦公司产品试用
服务器颁布类型:试用版
发布类型:企业版
Key类型:企业版
授权用户数:无限制
并发连接数:无限制
1.精简版
2.完整版(web客户端)
3.自定义
安装类型[1.精简版]:
1.实时同步软件服务器
2.远程部署工具
3.实时同步软件配置助手
4.手册
所需磁盘空间:584 MB
安装目录: [/home/dmdba/dmhs]
1.统一部署
2.现在初始化
是否初始化达梦数据实时同步系统[1.统一部署]:
正在安装
default start ...    default finished.
server start ...    server finished.
hs_agent start ...    hs_agent finished.
hsca start ...    hsca finished.
doc start ...    doc finished.
postinstall start ...    postinstall finished.
正在创建快捷方式
安装成功
远程部署工具配置
远程部署工具名称[HsAgent]:
主机Ip(外网)[192.168.248.75](192.168.248.75):
远程部署工具管理端口[5456](1000-65535):
内置数据库轮询间隔[3](1-60):
内置数据库IP[]:192.168.248.73
内置数据库端口[15236](1000-65535):
内置数据库用户名[SYSDBA]:
内置数据库密码[SYSDBA]:
服务脚本环境变量设置
依赖库路径
提示:此配置项供用户配置源或目的数据库依赖库路径和odbc依赖库路径, 多个路径以":"隔开(例:/opt/dmdbms/bin:/usr/local/lib),此配置项会添加到服务脚本的NEED_LIB_PATH的变量值中。
请配置依赖库路径:/home/dmdba/dmdbms/bin
远程控制服务
1.自动
2.手动
启动方式:[2.手动]
正在创建远程控制服务
达梦数据实时同步V4.0安装完成
更多安装信息,请查看安装日志文件:
/home/dmdba/dmhs02/log/install.log[dmdba@node74 dmsoft]$

3.2.3 EP75 精简安装

其中需要改动的参数:
内置数据库IP配置HS73的IP
内置数据库IP[]:192.168.248.73
请配置依赖库路径:/home/dmdba/dmdbms/bin

其他默认安装

安装日志记录:

[dmdba@node75 dmsoft]$ ./dmhs_V4.1.1_dm8_rev99696_rh6_64_veri_20210527.bin -i
Extract install files.........1.英文(English)
2.简体中文(简体中文)
请选择安装语言[2.简体中文(简体中文)]:
/tmp/DMHSInstall/install.log
1.免费试用达梦数据实时同步
2.使用已申请的Key文件
验证许可证文件[1.免费试用达梦数据实时同步]:2
Key文件路径:/home/dmsoft/dmhs.key
Key文件限制信息如下:
有效日期:2023-06-25
用户名称:达梦公司产品试用
服务器颁布类型:试用版
发布类型:企业版
Key类型:企业版
授权用户数:无限制
并发连接数:无限制
1.精简版
2.完整版(web客户端)
3.自定义
安装类型[1.精简版]:
1.实时同步软件服务器
2.远程部署工具
3.实时同步软件配置助手
4.手册
所需磁盘空间:584 MB
安装目录: [/home/dmdba/dmhs]
1.统一部署
2.现在初始化
是否初始化达梦数据实时同步系统[1.统一部署]:
正在安装
default start ...    default finished.
server start ...    server finished.
hs_agent start ...    hs_agent finished.
hsca start ...    hsca finished.
doc start ...    doc finished.
postinstall start ...    postinstall finished.
正在创建快捷方式
安装成功
远程部署工具配置
远程部署工具名称[HsAgent]:
主机Ip(外网)[192.168.248.75](192.168.248.75):
远程部署工具管理端口[5456](1000-65535):
内置数据库轮询间隔[3](1-60):
内置数据库IP[]:192.168.248.73
内置数据库端口[15236](1000-65535):
内置数据库用户名[SYSDBA]:
内置数据库密码[SYSDBA]:
服务脚本环境变量设置
依赖库路径
提示:此配置项供用户配置源或目的数据库依赖库路径和odbc依赖库路径, 多个路径以":"隔开(例:/opt/dmdbms/bin:/usr/local/lib),此配置项会添加到服务脚本的NEED_LIB_PATH的变量值中。
请配置依赖库路径:/home/dmdba/dmdbms/bin
远程控制服务
1.自动
2.手动
启动方式:[2.手动]
正在创建远程控制服务
达梦数据实时同步V4.0安装完成
更多安装信息,请查看安装日志文件:
/home/dmdba/dmhs02/log/install.log[dmdba@node75 dmsoft]$

4 启动DMHS

4.1 HS73启动内置数据库+启动web服务+启动HS_AGENT服务

在这里插入图片描述

4.2 HS74 启动HS_AGENT服务

在这里插入图片描述

4.3 HS75 启动HS_AGENT服务

在这里插入图片描述

5 配置IP端口代理环境(WINDOWS环境和linux网络通跳过此步骤)

因本地网络与虚拟机不通,此处通过IP+端口代理访问
(宿主机:192.168.100.169 虚拟机:192.168.248.73)

在这里插入图片描述

6 web方式登录DMHS管理界面

WEB端登录:IP+端口(默认IP , 端口 192.168.248.73:8080)
经过IP,端口代理映射后为 192.168.100.169:7380
默认用户名 admin
默认密码 888888

6.1 登录界面

在这里插入图片描述

6.2 登录成功后的界面

在这里插入图片描述

7 配置DMHS实例

7.1 HS75 先配置目的端

在这里插入图片描述
在这里插入图片描述
确定,配置完成

7.2 HS73和HS74是集群,要先在HS73和HS74本机配置服务文件

7.2.1 编写 vi /etc/dm_svc.conf

在这里插入图片描述

7.2.2 HS73验证配置文件可用

在这里插入图片描述

7.2.3 HS74验证配置文件可用

在这里插入图片描述

7.3 源DMDSC HS73 配置HS实例

在这里插入图片描述
在这里插入图片描述

7.4 源DMDSC HS74 配置HS实例

在这里插入图片描述
在这里插入图片描述

7.5 修改源端 HS73,HS74 实例配置

查看 DMDSC集群 dmdcr_cfg.ini 配置文件中GRP_ASM组 相关端口号
在这里插入图片描述

7.5.1 修改 HS73实例配置文件

7.5.1.1 对HS73 实例捕获器 cpt 右键修改配置

在这里插入图片描述

7.5.1.2 对HS73 实例右键修改配置

在这里插入图片描述

<dir_replace><item>0#/home/dmdba/dmdata/dmarch73</item><item>1#/home/dmdba/dmdata/dmarch74</item>
</dir_replace>

7.5.2 修改 HS74实例配置文件

7.5.2.1 对HS74 实例捕获器 cpt 右键修改配置

在这里插入图片描述

7.5.2.2 对HS74 实例右键修改配置

在这里插入图片描述

在这里插入图片描述

<dir_replace><item>0#/home/dmdba/dmdata/dmarch74</item><item>1#/home/dmdba/dmdata/dmarch73</item>
</dir_replace>

8 启动HS服务

8.1 启动HS75 实例服务

在这里插入图片描述

8.2 启动HS73 实例服务

在这里插入图片描述

8.3 启动HS74 实例服务

在这里插入图片描述

9 启动HS实例目的端执行器+源端捕获器

9.1 启动目的端HS75 执行器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.2 HS73 装载字典

在这里插入图片描述

copy 0 "sch.name='SYSDBA'" DICT|LSN|CREATE|INSERT|INDEX

在这里插入图片描述
查看HS73实例日志
在这里插入图片描述
在这里插入图片描述
装载成功

9.3 启动源端 HS73 启动cpt 捕获器,开始实时同步数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.4 启动源端 HS74 启动cpt 捕获器,开始源端主备模式实时同步数据

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
等待刷新后
在这里插入图片描述

10 验证数据同步情况

在这里插入图片描述
在这里插入图片描述

11 恭喜搭建完成

相关文章:

DMHS搭建DMDSC 2节点集群同步到单库

DMHS搭建DMDSC 2节点集群同步到单库环境介绍1 安装DMOCI1.1 关闭数据库实例服务1.2 将DMOCI 复制到源端与目的端的数据库bin目录1.3 对数据库bin 执行目录文件更改用户属组和权限2 启动源数据库服务并配置数据库实例参数2.1 使用DMCSSM启动集群实例2.2 DMDSC源其中一个节点执行…...

一条sql执行很慢可能的原因,如何优化

文章目录 sql怎么会变慢呢?1、大多数情况下很正常,偶尔很慢,则有如下原因2、这条 SQL 语句一直执行的很慢,则有如下原因:慢sql优化数据库中设置SQL慢查询分析慢查询日志慢sql如何让优化索引sql语句1、分页查询优化2、优化insert语句数据库结构优化优化器优化架构优化总结s…...

【设计模式】适配器模式和桥接模式

适配器模式 适配器模式 : 就是将一个类的接口变成客户端所期望的另一种接口&#xff0c;使得原本因为接口不匹配而无法一起工作的接口可以正常工作。属于结构型模式 比方说我有一个A牌子的奶瓶&#xff0c;然后买了个B牌子的奶嘴&#xff0c;不能匹配怎么办? 再买一个转换器…...

被隐藏的过程——预处理

文章目录0. 前言1. 程序的翻译环境和执行环境2. 被隐藏的过程2.1 翻译环境2.2 编译3.2.1 预编译3.2.2 编译2.2.3 汇编2.3 链接2.4 运行环境3. 预处理3.1 预定义符号3.2 #define3.2.1 #define定义标识符3.2.2 #define定义宏3.2.3 #define替换规则3.2.4 #和##3.2.5 带副作用的宏参…...

strace 用法介绍

strace 是什么 strace 是一个可用于诊断和调试的 Linux 用户空间跟踪器。我们用它来监控用户空间进程和内核的交互&#xff0c;比如系统调用、信号传递、进程状态变更等。 strace 作为一种动态跟踪工具&#xff0c;能够帮助我们高效地定位进程和服务故障。它像是一个侦探&…...

TiDB数据库架构概述

文章目录TiDB体系架构TiDB ServerStorage Cluster(存储引擎)PD cluster题目TiDB体系架构 TiDB Server Sql语句最先到达 TiDB Server集群 它是无状态的&#xff0c;数据并不是存储在这里面&#xff0c;当一个会话连接到TiDB Server集群上&#xff0c;sql语句发过来&#xff0c…...

[深入理解SSD系列综述 闪存实战2.1.2] SLC、MLC、TLC、QLC、PLC NAND_固态硬盘闪存颗粒类型

闪存最小物理单位是 Cell, 一个Cell 是一个晶体管。 闪存是通过晶体管储存电子来表示信息的。在晶体管上加入了浮动栅贮存电子。数据是0或1取决于在硅底板上形成的浮动栅中是否有电子。有电子为0,无电子为1. SSD 根据闪存颗粒区分,固态硬盘有SLC、MLC、TLC、QLC、PLC 五种类型…...

游戏逆向之游戏技能分析

角色的当前技能列表往往都是从系统的技能库中进行筛选而组成的&#xff0c;而这个筛选的过程大多非常的复杂&#xff0c;经过的代码和临时结构体的传递也非常的多&#xff0c;所以在分析技能对象来源的时候常常要将OD和CE配合来使用。下面我们来分析下《天堂2》的技能列表。 首…...

汽车制造商与IT公司之间的技术合作案例

如果您对最新汽车技术感兴趣的话,您可能经常听到汽车制造商和IT公司正在合作开发技术的消息。汽车生产商为何自身不进行技术开发,而是与IT企业合作呢?因为最近随着以IT技术为基础的电动汽车等环保汽车或无人驾驶汽车等的登场和发展,汽车制造商单独进行技术开发需要花费很多时间…...

funkyheatmap | 用这个包来完美复刻Nature Biotechnology的高颜值神图吧!~

1写在前面 天气开始暖和了☀️&#xff0c;发现旅游的人好多啊&#xff01;~&#x1f972; 不知道自己什么时候能有时间出去看看外面的世界&#xff0c;实在是太忙了。&#x1f637; 最近用到的有个包感觉很不错&#xff0c;分享给大家&#xff0c;funkyheatmap包。&#x1f61…...

tomcat8调优

环境说明Jdk&#xff1a;1.8Tomcat: 8.5.69服务器 &#xff1a;2核 8G方案当调整Tomcat配置时&#xff0c;具体的配置方法可能会有所不同&#xff0c;因为它们受到许多因素的影响&#xff0c;例如Tomcat版本、操作系统、硬件配置等等。以下是每个建议的一些具体配置示例&#x…...

VS Code 解决 SpringBoot 项目启动时报 Failed to refresh live data from process **** 的问题

问题 SpringBoot 启动后 &#xff0c;VS Code 报错 Failed to refresh live data from process ****。 现场是&#xff0c;SpringBoot 项目启动时&#xff0c;VS Code 将进行如下刷新&#xff0c;图片如下所示 当刷新 10 次以后&#xff0c;如果还是失败&#xff0c;则会抛出…...

[ 红队知识库 ] 各种重要文件路径

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…...

Ajax和JSON的基本用法

局部请求页面不会变化&#xff0c;返回的响应我们要动态获取&#xff0c;获取后选择数据更新区域。<body> <input id"btnLoad" type"button" value"加载"> <div id"divContent"></div> <script>//获取点…...

【项目实战】基于netty-websocket-spring-boot-starter实现WebSocket服务器长链接处理

一、背景 项目中需要建立客户端与服务端之间的长链接&#xff0c;首先就考虑用WebSocket&#xff0c;再来SpringBoot原来整合WebSocket方式并不高效&#xff0c;因此找到了netty-websocket-spring-boot-starter 这款脚手架&#xff0c;它能让我们在SpringBoot中使用Netty来开发…...

BC双驱、ChatGPT大火,AI独角兽撬开盈利大门?

配图来自Canva可画 放眼AI行业&#xff0c;各大AI玩家长期亏损、“钱”景堪忧。 回看过去一年&#xff0c;部分AI独角兽的亏损问题愈发尖锐——云从科技2022年净亏损同比扩大至8.5亿元&#xff1b;寒武纪2022年净亏损11.6亿元&#xff0c;较上年同期扩大41.4%&#xff1b;地平…...

1/4车、1/2车、整车悬架H2/H∞控制仿真合集

目录 前言 1. 1/4悬架系统 1.1数学模型 1.2 H2/H∞求解反馈阵阵 1.3仿真分析 2. 1/2悬架系统 2.1数学模型 2.2 H2/H∞求解反馈阵阵 2.3仿真分析 3. 整车悬架系统 3.1数学模型 整车7自由度主动悬架数学模型 3.2 H2/H∞求解反馈阵阵 3.3仿真分析 4.总结 参考文献 …...

Git使用教程、命令

Git使用教程、命令 基本配置 git的配置文件位置&#xff1a; win: c:\users\<userName>\.gitconfig linux: /home/<userName>/.gitconfig # 个人/etc/gitconfig # 系统全局# 修改git init时的默认分支为master&#x…...

《c++ primer笔记》第九章 顺序容器

前言 知识点很多&#xff0c;这里只记录遗忘的。从这章开始会对前面章节的内容进行一个扩充&#xff0c;如果以前的忘了读起来会有点吃力。总的来说&#xff0c;本章节难度不大。 文章目录一、概述二、容器库概览2.1容器定义和初始化2.2赋值三、顺序容器操作3.1添加元素3.2删除…...

QML动画(弹动和翻转效果)

Flickable&#xff08;弹动&#xff09; QML中提供了一个Flickable元素&#xff0c;可以将其子项设置在一个可以拖拽和弹动的界面上&#xff0c;使得子项目的视图可以滚动。在传统的用户界面中&#xff0c;可以使用标准控件&#xff08;如滚动条和箭头按钮&#xff09;滚动视图…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码"&#xff1a;Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力&#xff0c;从金融交易到交通管控&#xff0c;这些关乎国计民生的关键领域…...

华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)

题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...

TCP/IP 网络编程 | 服务端 客户端的封装

设计模式 文章目录 设计模式一、socket.h 接口&#xff08;interface&#xff09;二、socket.cpp 实现&#xff08;implementation&#xff09;三、server.cpp 使用封装&#xff08;main 函数&#xff09;四、client.cpp 使用封装&#xff08;main 函数&#xff09;五、退出方法…...