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

news/2024/11/8 18:44:07/

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 恭喜搭建完成


http://www.ppmy.cn/news/31158.html

相关文章

软件测试分类知识分享,第三方软件测试机构收费贵不贵?

软件测试可以很好的检验软件产品的质量以及规避产品上线之后可能会发生的错误&#xff0c;随着技术的发展&#xff0c;软件测试已经是一个完整且体系庞大的测试活动&#xff0c;不同的测试领域有着不同的测试方法、技术与名称&#xff0c;那么具体有哪些分类呢? 一、软件测试…

【微信小程序】-- WXS 脚本(二十九)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…

ALG和STUN

目录 ALG 应用层网关讲解 Client1使用FTP主动模式建立FTP Client1使用FTP被动模式建立FTP STUN讲解 ALG 应用层网关讲解 用来替换应用层信息 Client1使用FTP主动模式建立FTP 主动模式&#xff1a;服务器收到客户端发来的请求FTP的地址和端口 服务器使用20端口直接向客户端建…

LearnOpenGL-光照-1.颜色

本人刚学OpenGL不久且自学&#xff0c;文中定有代码、术语等错误&#xff0c;欢迎指正 我写的项目地址&#xff1a;https://github.com/liujianjie/LearnOpenGLProject 文章目录颜色OpenGL代码例子颜色 物体颜色简介 我们在现实生活中看到某一物体的颜色并不是这个物体真正拥有…

第十四届蓝桥杯第三期模拟赛 C/C++ B组 原题与详解

文章目录 一、填空题 1、1 找最小全字母十六进制数 1、1、1 题目描述 1、1、2 题解关键思路与解答 1、2 给列命名 1、2、1 题目描述 1、2、2 题解关键思路与解答 1、3 日期相等 1、3、1 题目描述 1、3、2 题解关键思路与解答 1、4 乘积方案数 1、4、1 题目描述 1、4、2 题解关…

Spring的@Conditional注解

前言Conditional是Spring4新提供的注解&#xff0c;它的作用是按照一定的条件进行判断&#xff0c;满足条件给容器注册bean。Conditional的源码定义&#xff1a;//此注解可以标注在类和方法上 Target({ElementType.TYPE, ElementType.METHOD}) Retention(RetentionPolicy.RUNTI…

【模板进阶】

目录 1. 非类型模板参数 2. 模板的特化 2.1 概念 2.2 函数模板特化 2.3 类模板特化 2.3.1 全特化 3 模板分离编译 3.1 什么是分离编译 3.2 模板的分离编译 4. 模板总结 有需要的老哥可以先看看模板的介绍&#xff1a;http://t.csdn.cn/2TkUYhttp://t.csdn.cn/2TkUY 1. …

嵌入式学习笔记——寄存器实现控制LED小灯

文章目录前言GPIO通用输出模式初始化LED小灯的GPIO原理图初始化代码初始化的效果功能函数封装直接分开宏定义两个使用条件运算符封装函数实现简单的功能前言 上一篇中&#xff0c;介绍了GPIO相关的所有寄存器&#xff0c;并在最后简单实现了一个LED灯的控制&#xff0c;由于那…