达梦数据库dsc集群动态添加节点

前提条件:在安装好的的dsc集群:达梦数据库dsc集群保姆级部署文档_达梦数据库文档-CSDN博客上动态添加节点

1、环境信息

扩展节点信息:

操作环境:VMware Workstation 16 Pro

dmdsc集群

机器ip

主机名

操作系统

资源配置

实例名

达梦软件安装目录

数据存储目录

dmdsc2

192.168.58.43

dmdsc2

kylin-v10

4核4G,磁盘20g

DMDSC2

/dm8/dminstall

/dm8/data

存储规划:

保持跟之前的dsc集群的一致

ASM磁盘名

大小

用途

DCR

1G

存放DCR配置信息

VOTE

1G

存放表决文件

LOG0

3G

存放在线日志文件

DATA0

9.6G

存放数据文件

扩展节点同样的需要添加裸设备磁盘,按照之前dsc节点方式划分,对划分出的磁盘目录进行赋权,同样需要安装达梦数据库软件:

1、配置dmdsc2虚拟机文件

dmdsc2虚拟机目录下的.vmx查看是否末尾有以下参数,如果没有的手动加入

disk.locking="FALSE" 
scsi0:1.SharedBus="Virtual" 
scsi1:1.SharedBus="Virtual"# disk.locking="FALSE" 参数是设置虚拟磁盘的锁定行为。FALSE 表示禁用磁盘锁定,禁用磁盘锁定允许多个虚拟机同时访问同一个虚拟磁盘,这在一些特定的配置(例如共享磁盘集群)中是有用的。
# scsi0:1.SharedBus="Virtual" 这个参数设置 SCSI 控制器 0 上的第 1 个设备(通常是虚拟磁盘)的共享总线行为。SharedBus="Virtual" 表示 SCSI 总线处于虚拟共享模式,使多个虚拟机可以共享同一个 SCSI 总线上的设备。
# scsi1:1.SharedBus="Virtual" 这个参数设置 SCSI 控制器 1 上的第 1 个设备(通常是虚拟磁盘)的共享总线行为。SharedBus="Virtual" 表示 SCSI 总线处于虚拟共享模式,使多个虚拟机可以共享同一个 SCSI 总线上的设备。

2、dmdsc2虚拟机添加永久磁盘

dmdsc2虚拟机新增永久磁盘,两台虚拟机操作步骤相同,步骤如下:

1、点击编辑虚拟机设置

2、选择硬盘,点击添加

3、点击硬盘,点击下一步

4、选择磁盘类型,选择SCSI,点击下一步

5、选择使用现有虚拟磁盘,点击下一步

6、选择之前创建好的虚拟磁盘文件:D:\share\sharedisk.vmdk ,点击完成,最后选择保持现有格式

7、点击高级按钮

8、选择新添加的磁盘设置成独立+永久模式,最后点击确定、确定,完成操作

3、启动dmdsc2虚拟机,查看磁盘状态

fdisk -l

4、关闭防火墙并安装达梦数据库软件

关闭防火墙:

systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

创建用户组、用户、安装目录:

# 创建用户组和用户
groupadd dinstall
useradd -g dinstall dmdba
echo "Dameng123" |passwd --stdin dmdba# dminstall是达梦数据库软件安装的位置,dmdata是达梦数据库实例存放位置,dmarch是达梦数据库归档日志存放位置,dmbak是达梦数据库备份文件存放位置
mkdir -p /dm8/{dminstall,dmdata,dmarch,dmbak}
chown -R dmdba:dinstall /dm8
chmod -R 755 /dm8

调整系统资源限制:

# 在/etc/security/limits.conf文件里面追加下面的内容vim /etc/security/limits.conf# 内容如下:
dmdba   soft    nofile  65536
dmdba   hard    nofile  65536
dmdba   soft    nproc   65536
dmdba   hard    nproc   65536

下载或者上传达梦的安装包:

在官网选择好自己的cpu平台和操作系统版本,开放版这里没有银河麒麟v10,选择redhat7代替

 
# 下载dm8
wget https://download.dameng.com/eco/adapter/DM8/202401END/dm8_20240408_x86_rh7_64.zip
# 解压dm8
unzip dm8_20240408_x86_rh7_64.zip

挂载iso镜像:

mount -o loop dm8_20240408_x86_rh7_64.iso /mnt

切换到dmdba用户下安装达梦数据库产品:

su - dmdba
/mnt/DMInstall.bin -i

根据实际情况去配置:

根据上面执行结果的要求,新开一个窗口登录root用户执行上述root_installer.sh脚本注册数据库服务:

/dm8/dminstall/script/root/root_installer.sh

到这里,dm8软件就安装完成了

麒麟操作系统需要修改 RemoveIPC 参数,防止关闭asm服务时,进程还在,导致重新起来报错:

vim /etc/systemd/logind.conf
设置 RemoveIPC 参数为 no保存后重启服务
systemctl daemon-reload
systemctl restart systemd-logind
##检查验证
grep RemoveIPC /etc/systemd/logind.conf
# RemoveIPC=no
#结果验证确认
loginctl show-session|grep RemoveIPC
systemctl show systemd-logind|grep RemoveIPC

5、dmdsc2机器修改udev规则文件并授权

# 如果没有70-persistent-ipoib.rules这个文件,新创建一个就可以
vim /etc/udev/rules.d/70-persistent-ipoib.rules# 内容如下:
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N" 
ACTION=="add", KERNEL=="sdb3", RUN+="/bin/raw /dev/raw/raw3 %N" 
ACTION=="add", KERNEL=="sdb4", RUN+="/bin/raw /dev/raw/raw4 %N" 
ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"

执行下面的命令,使 udev 生效:

udevadm trigger --type=devices --action=change# 重启dmdsc2机器
reboot# 查看dmdsc2配置的udev是否生效并对磁盘目录赋权
ll /dev/raw/raw*
chown -R dmdba:dinstall /dev/raw
ll /dev/raw/raw*

2、扩展流程

1、dsc集群控制节点(dmdsc0)导出dmdcr_cfg.ini配置文件

选择控制节点(dmdsc0)192.168.58.40,使用DMASMCMD工具export出备份文件dmdcr_cfg_bak.ini,命令:

su - dmdba
cd /dm8/dminstall/bin
./dmasmcmd# 指定导出命令
export dcrdisk '/dev/raw/raw1' to '/dm8/dmdata/dmdcr_cfg_bak.ini'

2、为新增节点准备日志文件(dmdsc0节点操作)

可选择任意节点操作,这里选择控制节点(dmdsc0)192.168.58.40

1、使用disql登陆数据库,执行添加日志文件命令,至少两个日志文件,路径不必须是ASM文件格式,大小可以参考其他活动节点,命令:

su - dmdba
cd /dm8/dminstall/bin
./disql# 指定添加日志文件命令
alter database add node logfile '+DMLOG/log/DSC2_log01.log' size 256, '+DMLOG/log/DSC2_log02.log' size 256;

2、使用dmctlcvt工具将dm.ctl转换为文本文件dmctl.txt,查看目录/dm8/dmdata目录下的dmctl.txt文件,新增节点的日志文件信息已经添加进dm.ctl,命令:

su - dmdba
cd /dm8/dminstall/bin
./dmctlcvt TYPE=1 SRC=+DMDATA/data/dsc/dm.ctl DEST=/dm8/dmdata/dmctl.txt DCR_INI=/dm8/dmdata/dmdcr.ini
cat /dm8/dmdata/dmctl.txt |grep log

3、使用dmasmtool工具登陆ASM文件系统,可以看到新增的节点日志文件,命令:

su - dmdba
cd /dm8/dminstall/bin
./dmasmtool DCR_INI=/dm8/dmdata/dmdcr.ini
# 执行命令,查看log目录中是否有新增节点日志文件
ls +DMLOG/log

3、为新增节点准备配置文件路径

控制节点(dmdsc0)192.168.58.40节点/dm8/dmdata/dsc0目录拷贝到dmdsc2新增节点的192.168.58.43的/dm8/dmdata目录下,dsc0修改名字为dsc2。

# 在dmdsc0节点操作
su - dmdba
cd /dm8/dmdata
scp -r dsc0 dmdba@192.168.58.43:/dm8/dmdata/dsc2

修改新增节点(dmdsc2)192.168.58.43的dsc2中的dm.ini文件:

 # dmdsc2节点操作su - dmdbacd /dm8/dmdata/dsc2vim dm.ini# 修改配置文件存放路径和实例名

如果之前有打开了归档参数,也要修改 dmarch.ini,就参考其它节点去配置,要根据自己的实际情况去修改,这里是示范操作,如下: 

ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK=0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMARCH/ARCH/DMDSC2
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/dmarch
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DMDSC0
ARCH_INCOMING_PATH = +DMARCH/ARCH/DMDSC0
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_REMOTE2]
ARCH_TYPE = REMOTE
ARCH_DEST = DMDSC1
ARCH_INCOMING_PATH = +DMARCH/ARCH/DMDSC1
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024

4、为新增节点增加dmdcr.ini配置文件(dmdsc2节点)

在新增节点的/dm8/dmdata目录下新建dmdcr.ini配置文件,注意设置dmdcr_seqo为2(因为之前的节点使用了0/1),修改dm.ini路径,文件内容为:

su - dmdba
vim /dm8/dmdata/dmdcr.ini
# 内容如下:
DMDCR_PATH     = /dev/raw/raw1
DMDCR_MAL_PATH =/dm8/dmdata/dmasvrmal.ini
DMDCR_SEQNO   = 2
DMDCR_AUTO_OPEN_CHECK = 60

5、修改dsc集群环境中所有节点的MAL配置文件

所有节点的MAL配置文件都要保持一致,修改后的dmasvrmal.ini配置文件如下:

su - dmdba
vim /dm8/dmdata/dmasvrmal.ini
# 内容如下:
[MAL_INST0]MAL_INST_NAME = DMASM0MAL_HOST = 192.168.58.40MAL_PORT = 7238
[MAL_INST1]MAL_INST_NAME = DMASM1MAL_HOST = 192.168.58.41MAL_PORT = 7238
[MAL_INST2]
MAL_INST_NAME = DMASM2
MAL_HOST = 192.168.58.43
MAL_PORT = 7238

所有节点的MAL配置文件都要保持一致,修改后的dmmal.ini配置文件如下:

# 所有节点都需要修改dmmal.ini配置文件,dmmal.ini配置文件分别在dsc0、dsc1、dsc2目录# 内容如下:
[mal_inst0]mal_inst_name  = DMDSC0mal_host       = 192.168.58.40mal_port       = 9236[mal_inst1]mal_inst_name  = DMDSC1mal_host       = 192.168.58.41mal_port       = 9236[mal_inst2]mal_inst_name  = DMDSC2mal_host       = 192.168.58.43mal_port       = 9236

6、控制节点(dmdsc0)修改dmdcr_cfg_bak.ini配置文件,增加节点信息

CSS/ASMSVR/DB 都要配置,所有组信息修改:

su - dmdba
vim /dm8/dmdata/dmdcr_cfg_bak.iniDCR_GRP_N_EP = 3
DCR_GRP_EP_ARR = {0,1,2}

每个组增加一个节点信息,注意 DCR_EP_SHM_KEY、端口号不能冲突;各组信息要放在各自的后面,即[GRP_CSS]中 DMCSS2 放在 DMCSS1 后面,[GRP_ASM]中DMASM2放在 DMASM1后面,DMDSC2放在DMDSC1 后面,添加的内容为:

[GRP_CSS]
DCR_EP_NAME        = DMCSS2
DCR_EP_HOST        = 192.168.58.43
DCR_EP_PORT        = 9341
 
[GRP_ASM]
DCR_EP_NAME        = DMASM2
DCR_EP_SHM_KEY     = 93362
DCR_EP_SHM_SIZE    = 20
DCR_EP_HOST        = 192.168.58.43
DCR_EP_PORT        = 9349
DCR_EP_ASM_LOAD_PATH  = /dev/raw
 
[GRP_DSC]
DCR_EP_NAME        = DMDSC2
DCR_EP_SEQNO       = 2
DCR_EP_PORT        = 5236
DCR_CHECK_PORT     = 9741

7、把dmdcr_cfg_bak.ini配置文件写回磁盘中

控制节点(dmdsc0)192.168.58.40上使用DMASMCMD工具将新增节点信息写回磁盘,新增节点作为error节点,命令:

# 在dmdsc0节点上操作
su - dmdba
cd /dm8/dminstall/bin
./dmasmcmd
# 执行命令,把配置文件写回磁盘中
extend dcrdisk '/dev/raw/raw1' from '/dm8/dmdata/dmdcr_cfg_bak.ini'

8、在 dmcssm (192.168.58.42)控制台执行扩展节点命令

su - dmdba
cd /dm8/dminstall/bin
./dmcssm ini_path=/dm8/dmdata/dmcssm.ini
# 执行扩展节点命令
extend node

程序会通知所有实例(CSS/ASMSVR/dmserver)更新信息,在 CSS 控制台执行 SHOW命令,能看到新增节点信息, ASMSVR/dmserver 是 error 节点, 程 序 会 通 知ASMSVR/dmserver 更新 MAL 信息。

9、启动新的 DMCSS、DMASM、DMDSC服务程序(dmdsc2节点)

在新增节点(dmdsc2)192.168.58.43节点启动 dmcss、dmasmsvr、dmserver程序

手动启动新的 dmcss,dcr_ini 指向新的 dmdcr.ini 文件:

su - dmdba
cd /dm8/dminstall/bin
./dmcss DCR_INI=/dm8/dmdata/dmdcr.ini

新开一个窗口手动启动新的 dmasmsvr,dcr_ini 指向新的 dmdcr.ini 文件,asmsvr 启动故障重加入流程:

su - dmdba
cd /dm8/dminstall/bin
./dmasmsvr DCR_INI=/dm8/dmdata/dmdcr.ini

如果 DMCSS 配置有自动拉起 dmasmsvr 的功能,可以等待 DMCSS 自动拉起dmasmsvr程序,不需要手动启动。这里没有配置自动拉起,需要使用手动启动,新开一个窗口,进行下面的操作步骤:

su - dmdba
cd /dm8/dminstall/bin
./dmserver /dm8/dmdata/dsc2/dm.ini dcr_ini=/dm8/dmdata/dmdcr.ini

10、使用dmcssm监控器(192.168.58.42)查看dsc集群状态

退出之前打开dmcssm监控器,修改监控器配置文件,新增节点的配置:

vim /dm8/dmdata/dmcssm.ini
# 新增内容:
CSSM_CSS_IP = 192.168.58.43:9341

进入DMCSSM监控器,show查看状态,新增节点的CSSASMDSC服务全部扩展成功,扩展结束。

cd /dm8/dminstall/bin
./dmcssm ini_path=/dm8/dmdata/dmcssm.ini
# 执行命令查看状态
show

注意:一定要关闭防火墙,不然会造成新增ASM不被识别而启动失败

11、注册服务

以上启动方式为前台启动,仅用于验证集群配置过程。配置成功后需要注册为系统服务,方便启动和关闭集群,以及实现开机自动启动。

先关闭之前由前台启动的dmcss、dmasm、dmdsc服务,关闭顺序:DMDSC-->DMASM-->DMCSS

# 前台启动输出exit,回车就可以关闭
exit

注册css服务:

su - dmdba
cd /dm8/dminstall/bin
cp service_template/DmCSSService ./DmCSSServiceDMCSS2# 修改DmCSSServiceDMCSS2文件
vim DmCSSServiceDMCSS2#修改内容:
DCR_INI_PATH=%DCR_INI_PATH% 改为 DCR_INI_PATH=/dm8/dmdata/dmdcr.ini

注册asm服务:

su - dmdba
cd /dm8/dminstall/bin
cp service_template/DmASMSvrService ./DmASMSvrServiceDMASM2# 修改DmASMSvrServiceDMASM2文件
vim DmASMSvrServiceDMASM2# 修改内容如下:
DCR_INI_PATH=%DCR_INI_PATH% 改为 DCR_INI_PATH=/dm8/dmdata/dmdcr.ini

注册dm实例服务:

su - dmdba
cd /dm8/dminstall/bin
cp service_template/DmService ./DmServiceDMDSC2# 修改DmServiceDMDSC0文件
vim DmServiceDMDSC2# 修改内容如下:
INI_PATH=%INI_PATH% 改为 INI_PATH=/dm8/dmdata/dsc2/dm.ini
DCR_INI_PATH=%DCR_INI_PATH% 改为 DCR_INI_PATH=/dm8/dmdata/dmdcr.ini

使用服务方式后台启动

su - dmdba
cd /dm8/dminstall/bin
# 启动dmcss、dmasm、dmdsc程序服务
./DmCSSServiceDMCSS2 start
./DmASMSvrServiceDMASM2 start
./DmServiceDMDSC2 start

大家想学习达梦数据库或者解决报错问题,可以去达梦数据库社区地址(https://eco.dameng.com)

制作不易,各位看官如果觉得还可以,对您有帮助,请给小弟一键三连鼓励一下,后续还会继续保持 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/391094.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【传知代码】基于标签相关性的多标签学习(论文复现)

在当今信息爆炸的时代,数据中包含的标签信息对于理解和分析复杂问题至关重要。在诸如文本分类、图像识别和推荐系统等应用中,如何有效地利用标签相关性提升多标签学习的效果成为了研究的热点之一。基于标签相关性的多标签学习方法,通过挖掘不…

JAVA项目基于SpringBoot的外卖点餐管理系统

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着生活节…

Flink笔记整理(六)

Flink笔记整理(六) 完整系列在公众号:是十三不是四十三,欢迎关注~ 文章目录 Flink笔记整理(六)八、状态管理8.1 Flink中的状态概述状态的分类 8.2 按键分区状态(Keyed State)值状态…

Windows 添加自定义服务实现开机(用户登录之前)自动运行 Python 脚本

实现效果 使用 Python 编写的一个脚本, 希望在 Windows 系统启动时, 用户登录之前就自动运行. 准备工作 首先确保 Python 脚本可以手动正常运行, 演示起见, 编写下面的一个简单的脚本用于在 C 盘根目录中生成一个包含脚本运行时间戳的文本文件. Python 脚本存放在 C:\Python…

python爬虫实践

两个python程序的小实验(附带源码) 题目1 爬取http://www.gaosan.com/gaokao/196075.html 中国大学排名,并输出。提示:使用requests库获取页面的基本操作获取该页面,运用BeautifulSoup解析该页面绑定对象soup&#x…

搭建jenkins一键部署java项目

一、搭建jenkins 链接: https://pan.baidu.com/s/1jzx15PiyI8EhLd_vg7q8bw 提取码: ydhl 复制这段内容后打开百度网盘手机App,操作更方便哦 直接使用docker导入镜像,运行就好 docker run -di --name jenkins -p 8080:8080 -v /home/jenkins_home:/var/je…

【人工智能】NLP入门指南:自然语言处理基础全解析

文章目录 前言一、NLPNLP(自然语言处理)NLU(自然语言理解)NLG(自然语言生成) 二、分词1.什么是分词2.常见的分词工具3.jieba分词 三、词向量1.什么是词向量2.文本张量表示方法3.常见的词向量模型3.1 ont-ho…

15.4 zookeeper java client之Curator使用(❤❤❤❤❤)

Curator使用 1. 为什么使用Curator对比Zookeeper原生2. 集成Curator2.1 依赖引入curator-frameworkcurator-recipes2.2 `yml`配置连接信息2.3 CuratorConfig配置类2.4 Curator实现Zookeeper分布式锁业务2.4.1 业务:可重入锁和不可重入锁可重入锁和不可重入锁InterProcessMutex …

scratch魔法门 2024年6月scratch四级 中国电子学会图形化编程 少儿编程等级考试四级真题和答案解析

目录 scratch魔法门 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 1、思路分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 5、pyt…

基于JAVA的美甲店员工管理系统,源码、部署+讲解

摘 要 随着社会科技的飞速发展和进步,网络技术的应用已经深入到生活的方方面面。在这样的背景下,企事业单位的绩效考评体系也受到了极大的影响和冲击。传统的绩效考评方式已经无法满足现代社会的高效需求,因此,研发一款智能化、高…

42 PCB布线叠层与阻抗介绍43 PCB布线过孔添加与设置44 差分对添加与设置45 布线间距规则与介绍

42 PCB布线叠层与阻抗介绍&&43 PCB布线过孔添加与设置&44 差分对添加与设置&&45 布线间距规则与介绍 第一部分 42 PCB布线叠层与阻抗介绍1 板子是怎么来的。2 四层板为例,做叠层和阻抗计算。 第二部分 43 PCB布线过孔添加与设置介绍PCBEdotor中…

c#中的BitConverter的java实现

最近在做c#项目的java迁移,发现部分C#方法java中没有对应实现如图: 且java中的数字类型都是有符号的所以转无符号的时候需要进行手动对符号位& 0xFFFF进行处理,目前只整理了项目中使用到的方法,后续有用到其他方法在进行追加如…

linux学习记录(一)--------目录及文件操作

文章目录 前言Linux目录及文件操作1.Linux目录结构2.常用的Linux命令3.vi编辑器的简单使用4.vi的两个模式 前言 小白学习linux记录有错误随时指出~ Linux目录及文件操作 Linux采用Shell命令->操作文件 1.Linux目录结构 根目录:/ 用户目录:~或者/ho…

H5+JS 4096小游戏

主要实现 1.使用WASD或方向按钮控制游戏 2.最高值4096,玩到4096视为胜利 3.随机生成2、4、8方块 4.移动方块 5.合并方块 JS代码干了什么 初始化游戏界面:创建游戏板和控制按钮。 定义游戏相关变量:如棋盘大小、棋盘状态、得分等。 初始化棋…

软件测试生命周期、BUG描述与处理策略

软件测试的生命周期 需求分析:需求是否完整、是否正确 测试计划:确定由谁测试、测试的起止时间、设计哪些模块 测试设计、测试开发:写测试用例(手工、自动化测试用例)、编写测试工具 执行测试用例 测试评估&…

面向未来的S2B2C电商供应链系统发展趋势与创新探索

S2B2C电商供应链系统的发展趋势及创新方向。首先分析当前市场环境和消费者需求的变化,如个性化消费、即时配送、绿色环保等趋势对供应链系统的影响。随后,预测并讨论未来供应链系统可能的技术革新,如物联网(IoT)在物流…

【系统架构设计师】二十四、安全架构设计理论与实践①

目录 一、安全架构概述 1.1 信息安全面临的威胁 1.1.1 安全威胁分类 1.1.2 常见的安全威胁 1.2 安全架构的定义和范围 二、安全模型 2.1 状态机模型 2.2 Bell-LaPadula模型 2.3 Biba模型 2.4 Clark-Wilson模型 2.5 Chinese Wall 模型 往期推荐 一、安全架构概述 1…

基于LoRA和AdaLoRA微调Qwen1.5-0.5B-Chat

本文只开放基于LoRA和AdaLoRA微调代码,具体技术可以自行学习。 Qwen1.5-0.5B-Chat权重路径:https://huggingface.co/Qwen/Qwen1.5-0.5B 数据集路径:https://github.com/DB-lost/self-llm/blob/master/dataset/huanhuan.json 1. 知识点 LoRA, AdaLoRA技术 具体技术可以去看…

数据结构第十讲:二叉树OJ题

数据结构第十讲:二叉树OJ题 1.单值二叉树2.相同的树3.对称二叉树4. 另一棵树的子树5.二叉树的前序遍历6.二叉树的中序遍历7.二叉树的后序遍历8.二叉树的构建及其遍历9.二叉树选择题9.1二叉树性质19.2二叉树性质29.3二叉树性质三9.4选择题 1.单值二叉树 链接: OJ题链…

『python爬虫』beautifulsoup库获取文本的方法.get_text()、.text 和 .string区别(保姆级图文)

目录 区别.string(不推荐用).text(get_text的简化版少敲代码的时候用).get_text(推荐用,功能强大,为什么不爱呢?) 示例代码总结 欢迎关注 『python爬虫』 专栏,持续更新中 欢迎关注 『python爬虫』 专栏,持续更新中 区别 省流直接看get_text 推荐用这个…