keepalived2.2.8+drbd9+nfs高可用存储部署

目录

一.本文基于上一篇文章keepalived环境来做的,主机信息如下

二.为两台虚拟机准备添加一块新硬盘设备

三.安装drbd9

1.使用扩展源的rpm包来下载

2.创建资源并挂载到新增的硬盘

3.主设备升级身份

4.主备两个设备手动切换身份演示

四.安装配置nfs

五.安装keeepalived

六.编辑keepalived.conf配置文件

1.主设备配置文件如下

2.备设备配置文件如下

3.脚本文件

七.测试

1.主设备nfs掉点,查看keepalived调用探测脚本是否能够将nfs重新启动

2.主设备keepalived掉点,查看VIP和挂载目录是否能够飘逸到备设备


一.本文基于上一篇文章keepalived环境来做的,主机信息如下

主keepalived+drbd:192.168.2.130(main)

备keepalived+drbd:192.168.2.133(serverc)

VIP:192.168.2.100

二.为两台虚拟机准备添加一块新硬盘设备

关机状态下进行(开机状态下新增后需要重启)如果没有特殊名称要求,直接都点下一步即可,两台设备都做

[root@main ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part ├─centos-root 253:0    0   17G  0 lvm  /└─centos-swap 253:1    0    2G  0 lvm  
sdb               8:16   0   20G  0 disk    #刚才新增的
sr0              11:0    1  4.4G  0 rom  /cdrom

三.安装drbd9

1.使用扩展源的rpm包来下载

主备都做

[root@main ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org && rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm && yum install gcc gcc-c++ make glibc flex kernel* -y && yum install -y drbd90-utils kmod-drbd90 && modprobe drbd && echo drbd > /etc/modules-load.d/drbd.conf && lsmod | grep drbd
drbd                  654854  0 
libcrc32c              12644  5 xfs,drbd,ip_vs,nf_nat,nf_conntrack
[root@main drbd.d]# systemctl start drbd   #启动drbd
​
[root@main ~]# tree /etc/drbd.d  #配置文件和资源存放路径如下
/etc/drbd.d
├── global_common.conf
└── r0.res
​
0 directories, 2 files
[root@main ~]# cat /etc/drbd.conf 
# You can find an example in  /usr/share/doc/drbd.../drbd.conf.example
​
include "drbd.d/global_common.conf";
include "drbd.d/*.res";

2.创建资源并挂载到新增的硬盘

[root@main drbd.d]# cat r0.res #创建r0资源,主备都做,可以拷贝进行
resource r0 {disk /dev/sdb;device /dev/drbd0;meta-disk internal;on main {address 192.168.2.130:7789;}on serverc {address 192.168.2.133:7789;}
}
[root@main drbd.d]# drbdadm create-md r0
initializing activity log
initializing bitmap (640 KB) to all zero
Writing meta data...
New drbd meta data block successfully created.
[root@main drbd.d]# drbdadm up r0

3.主设备升级身份

刚安装完成两台设备应该都是secondary,主备手动升级身份

初始化过程在9版本用watch drbdadm status 资源名称看

[root@main drbd.d]# drbdadm primary r0 --force
[root@main drbd.d]# mkfs.xfs /dev/drbd0  #主做备不做
[root@main drbd.d]# mkdir /data   
[root@main drbd.d]# mount /dev/drbd0 /data   
[root@main drbd.d]# drbdadm status r0    #查看状态,只查看角色可以使用drbdadm role r0
r0 role:Primarydisk:UpToDateserverc role:Secondarypeer-disk:UpToDate
[root@serverc ~]# drbdadm status r0   #备设备的状态
r0 role:Secondarydisk:UpToDatemain role:Primarypeer-disk:UpToDate[root@main ~]# mkfs.xfs /dev/drbd0
meta-data=/dev/drbd0             isize=512    agcount=4, agsize=1310678 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242711, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@main ~]# mount /dev/drbd0 /data   #主设备查看挂载情况,写入测试文件
[root@main ~]# df -h | grep data
/dev/drbd0                20G   33M   20G   1% /data
[root@main drbd.d]# ll /data
total 0
[root@main drbd.d]# echo hello > /data/a.txt
[root@main drbd.d]# ll /data/
total 4
-rw-r--r-- 1 root root 6 Mar 29 21:53 a.txt
[root@main drbd.d]# cat /data/a.txt 
hello

4.主备两个设备手动切换身份演示

先在主备降级并卸载后到备设备升级挂载

[root@main ~]# drbdadm role r0
Primary
[root@main ~]# umount /data
[root@main ~]# drbdadm secondary r0
[root@main ~]# drbdadm role r0
Secondary
​
[root@serverc ~]# drbdadm role r0
Secondary
[root@serverc ~]# drbdadm primary r0
[root@serverc ~]# mount /dev/drbd0 /data
[root@serverc ~]# drbdadm role r0
Primary
#在日志中是可以清除查看到这个身份转换过程的
#tail -f /var/log/messages
Mar 30 13:38:53 main kernel: XFS (drbd0): Unmounting Filesystem
Mar 30 13:39:05 main kernel: drbd r0: Preparing cluster-wide state change 1582556808 (1->-1 3/2)
Mar 30 13:39:05 main kernel: drbd r0: State change 1582556808: primary_nodes=0, weak_nodes=0
Mar 30 13:39:05 main kernel: drbd r0: Committing cluster-wide state change 1582556808 (1ms)
Mar 30 13:39:05 main kernel: drbd r0: role( Primary -> Secondary ) [secondary]
Mar 30 13:39:35 main kernel: drbd r0 serverc: Preparing remote state change 1834794712
Mar 30 13:39:35 main kernel: drbd r0 serverc: Committing remote state change 1834794712 (primary_nodes=1)
Mar 30 13:39:35 main kernel: drbd r0 serverc: peer( Secondary -> Primary ) [remote]

四.安装配置nfs

主备都做

[root@main drbd.d]# yum install -y rpcbind nfs-utils
[root@main drbd.d]# vim /etc/exports
[root@main ~]# cat /etc/exports
/data 192.168.2.0/24(rw,sync,no_root_squash)
[root@serverc ~]# cat /etc/exports
/data 192.168.2.0/24(rw,sync,no_root_squash)
​
systemctl start rpcbind nfs

五.安装keeepalived

参考上一篇文章部署

六.编辑keepalived.conf配置文件

1.主设备配置文件如下

[root@main keepalived]# cat keepalived.conf
! Configuration File for keepalived
​
global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.2.130smtp_connect_timeout 30router_id LVS_DEVEL1vrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}
​
vrrp_script chk_nfs {    #这个要写在引用部分前,不然引用不上这个脚本,在这还是耽误了挺长时间,还有后面track_script及后面三个部分的顺序好像也是有影响,可以自己具体实验一下script "/etc/keepalived/chk_nfs.sh"interval 2  #每隔多少秒检测weight -40   
}
​
vrrp_instance VI_1 {state MASTER   #主interface ens33virtual_router_id 51mcast_src_ip 192.168.2.130priority 100advert_int 1nopreempt   #非抢占模式,优先级生效authentication {auth_type PASSauth_pass 123456}track_script {   #引入验证块chk_nfs}notify_master /etc/keepalived/notify_master.sh   #以下是几个日志脚本,稍后写notify_backup /etc/keepalived/notify_backup.shnotify_fault /etc/keepalived/notify_fault.shvirtual_ipaddress {   #VIP192.168.2.100}
}

2.备设备配置文件如下

[root@serverc keepalived]# cat keepalived.conf
! Configuration File for keepalived
​
global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_DEVEL2vrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}
vrrp_script chk_nfs { script "/etc/keepalived/chk_nfs.sh"interval 2weught 40
}
​
vrrp_instance VI_1 {state BACKUP   #从interface ens33virtual_router_id 51priority 80   #优先级低于主advert_int 1nopreemptauthentication {auth_type PASSauth_pass 123456}track_script {chk_nfs}notify_master /etc/keepalived/notify_master.shnotify_backup /etc/keepalived/notify_backup.shnotify_fault /etc/keepalived/notify_fault.shvirtual_ipaddress {192.168.2.100}
}

3.脚本文件

主备都做

[root@main keepalived]# cat chk_nfs.sh    #nfs检测脚本
#!/bin/bash
/usr/bin/systemctl status nfs
if [ $? -ne 0 ]     #校测到没有启动就尝试启动nfs
thensystemctl start nfsif [ $? -ne 0 ]then    #如果仍然启动不了就卸载,降级,停止keealived服务umount -v /dev/drbd0drbdadm secondary r0systemctl stop keepalivedfi
fi[root@main keepalived]# cat notify_master.sh 
#!/bin/bash
time=`date "+%F  %H:%M:%S"`   #日志时间格式
log=/etc/keepalived/logs   
echo -e "$time    ------notify_master------\n" >> $log/notify_master.log
drbdadm primary r0 &>> $log/notify_master.log    #当为主设备时先升级,挂载,重启nfs
mount -v /dev/drbd0 /data &>> $log/notify_master.log
systemctl restart nfs &>> $log/notify_master.log
echo -e "\n" >> $log/notify_master.log[root@main keepalived]# cat notify_backup.sh 
#!/bin/bash
time=`date "+%F %H:%M:%S"`
log=/etc/keepalived/logs
echo -e "$time ------notify_backup------\n" >> $log/notify_backup.log
systemctl stop nfs &>> $log/notify_backup.log   #当为备设备时,先停止nfs,卸载,降级
umount -v /dev/drbd0 &>> $log/notify_backup.log
drbdadm secondary r0 &>> $log/notify_backup.log
echo -e "\n" >> $log/notify_backup.log[root@main keepalived]# cat notify_fault.sh      
#!/bin/bash
time=`date "+%F  %H:%M:%S"`
echo -e "$time  ------notify_fault------\n" >> /etc/keepalived/logs/notify_fault.log
systemctl stop nfs &>> /etc/keepalived/logs/notify_fault.log
umount -v /dev/drbd0 &>> /etc/keepalived/logs/notify_fault.log
drbdadm secondary r0 &>> /etc/keepalived/logs/notify_fault.log
echo -e "\n" >> /etc/keepalived/logs/notify_fault.logchmod +x *.sh

七.测试

1.主设备nfs掉点,查看keepalived调用探测脚本是否能够将nfs重新启动

[root@main keepalived]# systemctl stop nfs
[root@main keepalived]# systemctl status nfs
● nfs-server.service - NFS server and servicesLoaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)Drop-In: /run/systemd/generator/nfs-server.service.d└─order-with-mounts.confActive: active (exited) since Sat 2024-03-30 14:15:02 CST; 5s agoProcess: 82157 ExecStopPost=/usr/sbin/exportfs -f (code=exited, status=0/SUCCESS)Process: 82153 ExecStopPost=/usr/sbin/exportfs -au (code=exited, status=0/SUCCESS)Process: 82151 ExecStop=/usr/sbin/rpc.nfsd 0 (code=exited, status=0/SUCCESS)Process: 82283 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)Process: 82266 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)Process: 82264 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)Main PID: 82266 (code=exited, status=0/SUCCESS)Tasks: 0Memory: 0BCGroup: /system.slice/nfs-server.serviceMar 30 14:15:02 main systemd[1]: Starting NFS server and services...
Mar 30 14:15:02 main systemd[1]: Started NFS server and services.
[root@main keepalived]# df -h |grep data
/dev/drbd0                20G   33M   20G   1% /data#具体日志文件如下
Mar 30 14:15:00 main systemd: Stopping NFS server and services...
Mar 30 14:15:00 main systemd: Stopped NFS server and services.
Mar 30 14:15:00 main systemd: Stopping NFSv4 ID-name mapping service...
Mar 30 14:15:00 main systemd: Stopping NFS Mount Daemon...
Mar 30 14:15:00 main rpc.mountd[65956]: Caught signal 15, un-registering and exiting.
Mar 30 14:15:00 main systemd: Stopped NFSv4 ID-name mapping service.
Mar 30 14:15:00 main kernel: nfsd: last server has exited, flushing export cache
Mar 30 14:15:00 main systemd: Stopped NFS Mount Daemon.
Mar 30 14:15:02 main systemd: Starting Preprocess NFS configuration...
Mar 30 14:15:02 main systemd: Started Preprocess NFS configuration.
Mar 30 14:15:02 main systemd: Starting NFSv4 ID-name mapping service...
Mar 30 14:15:02 main systemd: Starting NFS Mount Daemon...
Mar 30 14:15:02 main systemd: Started NFSv4 ID-name mapping service.
Mar 30 14:15:02 main rpc.mountd[82263]: Version 1.3.0 starting
Mar 30 14:15:02 main systemd: Started NFS Mount Daemon.
Mar 30 14:15:02 main systemd: Starting NFS server and services...
Mar 30 14:15:02 main kernel: NFSD: starting 90-second grace period (net ffffffffb0b16200)
Mar 30 14:15:02 main systemd: Reloading GSSAPI Proxy Daemon.
Mar 30 14:15:02 main systemd: Reloaded GSSAPI Proxy Daemon.
Mar 30 14:15:02 main systemd: Started NFS server and services.
Mar 30 14:15:02 main systemd: Starting Notify NFS peers of a restart...
Mar 30 14:15:02 main sm-notify[82289]: Version 1.3.0 starting
Mar 30 14:15:02 main sm-notify[82289]: Already notifying clients; Exiting!
Mar 30 14:15:02 main systemd: Started Notify NFS peers of a restart.

2.主设备keepalived掉点,查看VIP和挂载目录是否能够飘逸到备设备

[root@main keepalived]# systemctl stop keepalived.service
[root@serverc keepalived]# ip a |grep ens33 -A1   #VIP已漂移
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:2b:95:b3 brd ff:ff:ff:ff:ff:ffinet 192.168.2.133/24 brd 192.168.2.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet 192.168.2.100/32 scope global ens33valid_lft foreve preferred_lft forever
[root@serverc keepalived]# df -h   #挂载漂移
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 2.9G     0  2.9G   0% /dev
tmpfs                    2.9G     0  2.9G   0% /dev/shm
tmpfs                    2.9G   20M  2.9G   1% /run
tmpfs                    2.9G     0  2.9G   0% /sys/fs/cgroup
/dev/mapper/centos-root   17G  4.1G   13G  25% /
/dev/sda1               1014M  272M  743M  27% /boot
/dev/sr0                 4.4G  4.4G     0 100% /cdrom
tmpfs                    585M     0  585M   0% /run/user/0
/dev/drbd0                20G   33M   20G   1% /data
#日志情况如下
Mar 30 15:08:13 main Keepalived_vrrp[116817]:   Reset promote_secondaries counter 0
Mar 30 15:08:13 main Keepalived_vrrp[116817]: (VI_1) Entering BACKUP STATE (init)
Mar 30 15:08:13 main Keepalived_vrrp[116817]: VRRP sockpool: [ifindex(  2), family(IPv4), proto(112), fd(12,13) multicast, address(224.0.0.18)]
Mar 30 15:08:13 main Keepalived_vrrp[116817]: VRRP_Script(chk_nfs) succeeded
Mar 30 15:08:13 main rpc.mountd[114695]: Caught signal 15, un-registering and exiting.
Mar 30 15:08:13 main kernel: drbd r0 serverc: Preparing remote state change 1490261391
Mar 30 15:08:13 main kernel: drbd r0 serverc: Committing remote state change 1490261391 (primary_nodes=1)
Mar 30 15:08:13 main kernel: drbd r0 serverc: peer( Secondary -> Primary ) [remote]
Mar 30 15:08:13 main kernel: drbd r0/0 drbd0: Disabling local AL-updates ([root@serverc keepalived]# drbdadm status r0   #serverc此时变为主,#main变为备
r0 role:Primarydisk:UpToDatemain role:Secondarypeer-disk:UpToDate

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

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

相关文章

【YOLOv8】Yolov5和Yolov8网络结构的分析与对比

目录 一 YOLOv5 二 YOLOv8 yolo通常采用backbone-neck-head的网络结构。 Backbone 主要负责从输入图像中提取高层次的语义特征,常包含多个卷积层和池化层&#xff0c;构建了一个深层次的特征提取器。Neck通常用来进一步整合与调整backbone提取的特征&#xff0c;有利于将不同…

大话设计模式——24.迭代器模式(Iterator Pattern)

简介 提供一种方法顺序访问一个聚合对象中各个元素&#xff0c;而又不暴露该对象的内部实现。&#xff08;Java中使用最多的设计模式之一&#xff09; UML图 应用场景 Java的集合对象&#xff1a;Collection、List、Map、Set等都有迭代器Java ArrayList的迭代器源码 示例 简…

uniapp的h5项目 用命令起这个项目(vue-cli)

这里其实就相当于给uniapp h5套了一个vue-cli的壳&#xff08;纯属个人感觉&#xff09; 首先需要安装vue-cli 脚手架 npm install -g vue/cli然后创建项目&#xff08;这里需要在hbuilder创建&#xff09; vue create -p dcloudio/uni-preset-vue uniapp安装成功后它的结构…

OSCP靶场--Dibble

OSCP靶场–Dibble 考点(前端鉴权参数修改node.js代码注入 suid cp提权 ) 1.nmap扫描 ## ┌──(root㉿kali)-[~/Desktop] └─# nmap 192.168.173.110 -sV -sC -Pn --min-rate 2500 -p- Starting Nmap 7.92 ( https://nmap.org ) at 2024-04-09 06:36 EDT Nmap scan repor…

Jackson配置处理LocalDateTime、LocalDate等java8时间类型失效的问题解决

目录 前言 一、问题排查过程 1.1 SpringMvc是如何处理请求报文和响应报文 1.2 JacksonConfig配置排查 二、导致Jackson配置失效的原因 2.1 没有addSerializer 2.2 添加了EnableMvc注解 2.3 另外有地方配置了Jacksonhttpconver覆盖了配置 总结 前言 上一篇文章《使用Ja…

C/C++的内存管理

栈帧最主要的作用就是存储局部数据 C语言中动态内存管理方式 C语言动态内存管理 该篇详细的讲述了C语言动态内存管理的使用&#xff0c;不太懂的小伙伴可以去了解一下 C中动态内存管理方式 首先&#xff0c;C语言内存管理的方式在C中可以继续使用。但有些地方就无能为力而且使用…

Volatility-内存取证案例1-writeup--xx大赛

题目提示&#xff1a;flag{中文} 按部就班 &#xff08;1&#xff09;获取内存镜像版本信息 volatility -f 文件名 imageinfo 通过上述可知&#xff0c;镜像版本为Win7SP1X64。 &#xff08;2&#xff09;获取进程信息&#xff1a; volatility -f 镜像名 --profile第一步获取…

关于AI Agent、RAG技术揭秘:如何让人工智能更懂你?

人工智能技术正以前所未有的速度改变着我们的世界。从深度学习算法的突破到自动化和机器学习技术的进步。在这个变革的时代&#xff0c;几种前沿技术尤其引人注目&#xff0c;其中包括RAG&#xff08;Retrieval-Augmented Generation&#xff09;、AI Agent以及多模态技术。 近…

工频磁场抗扰度概述及相关注意事项

工频磁场 是指交流输变电设施产生的磁场&#xff0c;工频又称电力频率。 工频的特点是频率低、波长长&#xff1b;我国工频是50赫(Hz)&#xff0c;波长是6000千米(Km&#xff09; 工频磁场的抗扰度试验&#xff08;在有电流流过的地方都会伴生磁场&#xff0c;为了检查设备或系…

pmp就是智商税?

首先要明白的是&#xff0c;证书的价值并不在于证书本身&#xff0c;而在于学习过程中所获得的知识和经验&#xff0c;这才是证书真正的价值&#xff0c;是无法被复制的个人能力。 学习和考证都是经验的积累&#xff0c;通过这个过程可以不断地获取所需的知识&#xff0c;并加…

【Cesium学习笔记】一、加载Cesium并更换天地图底图

【Cesium学习笔记】一、加载Cesium 一、加载Cesium二、用Viewer显示地球三、更换天地图底图 Ps:本教程所有代码于同一个工程中&#xff0c;运行npm run dev默认首页为App.vue&#xff0c;只需替换App.vue的内容即可切换不同页面。 一、加载Cesium 本项目使用nvm管理node版本&…

微服务学习2

目录 一.网关路由 1.1.认识网关 1.2网关快速入门 1.2.1.创建项目 1.2.2.引入依赖 1.2.3.启动类 1.2.4.配置路由 1.3.路由过滤 二.网关登录校验 2.1网关请求处理流程 2.2网关过滤器 2.2.2网关过滤器 2.3自定义GlobalFilter 2.4.登录校验 2.4.1.JWT工具 2.4.2.登…

论文发表|《课外语文》期刊点评_投稿指南

论文发表|《课外语文》期刊点评_投稿指南 《课外语文》 知网 3版3300字符 全包 24年11-12月 可加急9-10月&#xff0c;次月出刊 &#xff08;操作周期2-3个月&#xff0c;文章不是教学类&#xff0c;不要摘要参考文献&#xff09; 《课外语文》杂志创刊于2002年&#xff…

SpringCloud集成Skywalking链路追踪和日志收集

1. 下载Agents https://archive.apache.org/dist/skywalking/java-agent/9.0.0/apache-skywalking-java-agent-9.0.0.tgz 2. 上传到服务器解压 在Spring Cloud项目中&#xff0c;每部署一个服务时&#xff0c;就拷贝一份skywalking的agent文件到该服务器上并解压。不管是部署…

基于PyAutoGUI图片定位的自动化截图工具--jmeter部分

1、计划 压测完成后需要编写性能测试报告&#xff0c;报告中所需数据截图较多&#xff0c;使用自动化操作方便快捷&#xff0c;就编写一个界面工具以便后续复用。之前编写过loadrunner报告的自动化截图脚本&#xff0c;现在用jmeter也比较多&#xff0c;就编写jmeter部分&#…

3V升9V3串LED驱动恒流WT7012

3V升9V3串LED驱动恒流WT7012 WT7012是一款性能卓越的升压转换器&#xff0c;设计用于驱动多达七串的白光LED。该器件具备宽输入工作电压范围(2-24V)&#xff0c;使其在单节或多节锂电池供电的应用中能够稳定提供背光。WT7012支持从3V起升至6V、9V、12V的恒流输出&#xff0c;通…

sqlserver问题记录

今天在利用sql查询数据时出现如下错误 在执行批处理时出现错误。错误消息为: 引发类型为“System.OutOfMemoryException”的异常。 症状 使用 SSMS 运行返回大量数据的 SQL 查询时&#xff0c;会收到类似于以下内容的错误消息&#xff1a; 执行批处理时出错。 错误消息为&…

Linux基础指令补全,权限问题分析—3

一、命令补全&#xff1a; 1.bc指令&#xff1a; 功能&#xff1a;命令行计算器&#xff0c;使用quit退出语法&#xff1a;bc 算式 2.uname指令&#xff1a; 语法&#xff1a;uname 选项功能&#xff1a;uname原来获取电脑或操作系统的相关信息选项&#xff1a; ①-a选项&am…

【IC前端虚拟项目】验证阶段开篇与知识预储备

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 从这篇开始进入验证阶段&#xff0c;因为很多转方向的小伙伴是转入芯片验证工程师方向的&#xff0c;所以有必要先做一个知识预储备的说明&#xff0c;或者作为验证入门的一个小指导吧。 在最开始&#…

如何做好2024年中央企业内部控制体系建设与监督工作

面对日益复杂的经济环境和全球一体化的挑战&#xff0c;中央企业作为国家经济的中流砥柱&#xff0c;必须不断提升内部控制体系的建设与执行水平。随着2024年的脚步逼近&#xff0c;中央企业需围绕国家宏观政策&#xff0c;积极采纳智能化技术&#xff0c;强化内控体系&#xf…