分享一篇Oracle RAC实战安装11G

news2024/10/7 12:25:32

分享一次很久以前的Oracle rac项目实施。

1、拓扑结构

基础环境是2台H3C的服务器+2台3PAR的双活存储,操作系统centos7.2。借用下别人家的拓扑先(这是一套典型的RAC架构)。

图片

2、网卡TEAM操作

以eno51和en052组成Team1组为示例:


nmcli con add type team con-nameteam1 ifname team1 config '{"runner": {"name":"activebackup"}}'
nmcli con mod team1 ipv4.addresses'192.168.1.1/24'
nmcli con mod team1 ipv4.methodmanual
nmcli con add type team-slavecon-name team1-port1 ifname eno51 master team1
nmcli con add type team-slavecon-name team1-port2 ifname eno52 master team1
teamdctl team1 state(查看状态)

配置完成后,修改其它网卡的启动模式从原来的dhcp改为none

3、修改主机名

hostnamectl set-hostname <主机名>
hostnamectl status进行查看

4、配置yum源

使用本地源有两个方法

(1)挂载光驱

mount  /dev/cdrom  /mnt

(2)如果没有光驱则用以下方法,挂载系统安装盘的ISO文件

需要先把安装ISO文件rhel-server-7.2-x86_64-dvd.iso上传到指定目录,并在目录下执行

mount -o loop rhel-server-7.2-x86_64-dvd.iso /mnt

创建配置文件cat /etc/yum.repos.d/local.repo

[rhel]name=rhelgpgcheck=0enable=1baseurl=file:///mnt

5、安装系统包

yum install -yelfutils-libelf-devel.x86_64yum install -ycompat-libstdc++-33.x86_64yum install -y compat-libcap1.x86_64yum install -y gcc.x86_64yum install -y gcc-c++.x86_64yum install -y glibc.i686yum install -y glibc-devel.i686yum install -y glibc-devel.x86_64yum install -y ksh-*.x86_64yum install -y libaio.i686yum install -y libaio-devel.i686yum install -y libaio-devel.x86_64yum install -y smartmontoolsyum install -y libgcc.i686yum install -y libstdc++.i686yum install -y libstdc++-devel.i686yum install -y libstdc++-devel.x86_64yum install -y libXi.i686yum install -y libXi.x86_64yum install -y libXtst.i686yum install -y libXtst.x86_64yum install -y sysstat.x86_64yum install xorg-x11-xauthyum install -y xtermyum install -y ntpdateyum install -y device-mapper-multipath

以下安装包需要手动安装

rpm -ivhcompat-libstdc++-33-3.2.3-72.el7.x86_64.rpmrpm -e ksh-20120801-22.el7_1.2.x86_64rpm -ivhpdksh-5.2.14-37.el5_8.1.x86_64.rpm

6、修改HOSTS

10.10.17.1           dyckrac110.10.17.2           dyckrac210.10.17.3           dyckrac1-vip10.10.17.4           dyckrac2-vip10.10.17.5           dyck-scan192.168.1.1         dyckrac1-priv192.168.1.2         dyckrac2-priv

7、创建用户

/usr/sbin/groupadd -g 501 oinstall/usr/sbin/groupadd -g 502 dba/usr/sbin/groupadd -g 504 asmadmin/usr/sbin/groupadd -g 506 asmdba/usr/sbin/groupadd -g 507 asmoper/usr/sbin/useradd -u 501 -g oinstall-G asmadmin,asmdba,asmoper -d /home/grid -m grid/usr/sbin/useradd -u 502 -g oinstall-G dba,asmdba -d /home/oracle -m oracleecho oracle|passwd--stdin oracleecho grid|passwd --stdin grid

8、修改用户环境变量

使用su - oracle命令切换到ORACLE用户下

编辑文件  ~/.bash_profile   增加如下内容(实例名按实际填写,分别修改两个节点)

export ORACLE_SID=orcl1export ORACLE_BASE=/u01/app/oracleexportORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1exportPATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch

使用su - grid命令切换到ORACLE用户下

编辑文件  ~/.bash_profile   增加如下内容(实例名按实际填写,分别修改两个节点)

export ORACLE_SID=+ASM1export ORACLE_BASE=/g01/app/gridexportORACLE_HOME=/g01/app/11.2.0/gridexportPATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch

9、配置GRID用户及ORACLE用户SSH互信

以GRID用户为例,

先在1节点从ROOT用户SU到GRID用户下

su – gridmkdir .sshtouch authorized_keys

然后创建秘钥文件

ssh-keygen -t rsa

执行回车,直到结

cat id_rsa.pub>> authorized_keys

然后到2节点执行以上相同操作。然后把2节点id_rsa.pub里的内容拷贝插入到1点的authorized_keys文件里。

在1节点把id_rsa.pub里的内容拷贝,然后插入到2节点authorized_keys文件里。

执行完毕后在两个节点分别执行

ssh dyckrac1 datessh dyckrac2 datessh dyckrac1-priv datessh dyckrac2-priv date

其间提示都输入yes。执行完成后再次执行这4条命令测试,直接显示时间不提示输入密码表示互信配置成功。

以同样的方式配置ORACLE用户互信

上面这个操作是笨方法了,现在可以用grid里自带的脚本直接处理

 ./sshUserSetup.sh -user grid -hosts "dyckrac1 dyckrac2" -advanced -noPromptPassphrase

10、关闭防火墙

systemctl stop firewalld.service&& sudo systemctl disable firewalld.service

11、关闭SELINUX

sed -i -e "s/SELINUX=enforcing/SELINUX=disabled/g"/etc/selinux/config

12、修改limits限制

修改配置文件cat /etc/security/limits.conf

grid soft nproc 16384
grid hard nproc 16384
grid soft nofile 65536
grid hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft nofile 65536
oracle hard nofile 65536

13、修改内核参数

修改文件/etc/sysctl.conf,增加如下内容:

共享内存段按自己的实际内存修改,我这里分享个脚本来自动计算

cp /etc/sysctl.conf /etc/sysctl.conf.bak
echo "#oracle" >> /etc/sysctl.conf
echo "kernel.shmmni = 4096" >> /etc/sysctl.conf
echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf
echo "fs.file-max = 6815744" >> /etc/sysctl.conf
echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 9000 65500" >> /etc/sysctl.conf
echo "net.core.rmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.rmem_max = 4194304" >> /etc/sysctl.conf
echo "net.core.wmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.wmem_max = 1048586" >> /etc/sysctl.conf
echo "vm.swappiness = 10" >> /etc/sysctl.conf
echo "kernel.shmmax= $(free|grep Mem |awk '{print int($2*1024*0.85)}')" >> /etc/sysctl.conf
echo "kernel.shmall = $(free|grep Mem |awk '{print int(($2*1024*0.85)/4096)}')" >> /etc/sysctl.conf
echo "vm.nr_hugepages = $(free -m|grep Mem |awk '{print int(($2*0.8*0.8)/2)}')" >> /etc/sysctl.conf
free -m
sysctl -p

14、禁用Transparent HugePages(不禁用导致ORACLE性能问题)


[root@rac1 ~]# cat/sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never              //现在为启用
[root@rac1 ~]# cd /etc/default/
[root@rac1 default]#cp grub grub.bak
[root@rac1 ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's,release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=autord.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet transparent_hugepage=never"
GRUB_DISABLE_RECOVERY="true"

此处有差异

 On BIOS-based machines(安装系统时使用传统 BIOS的改法):

 grub2-mkconfig -o /boot/grub2/grub.cfg

On UEFI-based machines(安装系统时使用UEFI-BIOS时的改法):

grub2-mkconfig -o/boot/efi/EFI/redhat/grub.cfg

执行输入如下,执行完毕后重启                                                                   

configuration file ...
Found linux image:/boot/vmlinuz-3.10.0-327.el7.x86_64
Found initrd image:/boot/initramfs-3.10.0-327.el7.x86_64.img
Found linux image:/boot/vmlinuz-0-rescue-a6225ccf9497470bb6051d6392773fc9
Found initrd image:/boot/initramfs-0-rescue-a6225ccf9497470bb6051d6392773fc9.img
done
[root@rac1 default]# reboot

重启后 再查看

[root@rac1 ~]# cat/sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]              //现在为关闭

15、禁用avahi-daemon

systemctl stopavahi-daemon
systemctldisable avahi-daemon
systemctlstatus avahi-daemon

16、设置RemoveIPC=false(避免导致ASM实例CRASH)

# vi /etc/systemd/logind.conf
RemoveIPC=no

重启systemd-logind服务或重启主机​​​​​​​

systemctl daemon-reload
systemctl restart systemd-logind

设置原因请参考官方:ALERT: Setting RemoveIPC=yes on Redhat 7.2 Crashes ASM and DatabaseInstances as Well as Any Application That Uses a Shared Memory Segment (SHM) orSemaphores (SEM) (文档 ID 2081410.1)

17、配置多路径磁盘

使用/usr/lib/udev/scsi_id -g -u -d /dev/sda查出系统盘的WWID,关在MULTIAPTHD配置里把此ID列到屏蔽列表中

在两个节点启用multipathd并设置开机启动​​​​​​​

systemctl enable multipathd
mpathconf --enable

然后修改配置文件如下(此配置文件适合3PAR存储使用multipath的环境)

LINUX自带的multipath配置文件在/etc/multipath.conf​​​​​​​

defaults {
polling_interval 10
user_friendly_names no
find_multipaths yes
path_checker tur
 }
blacklist {
    wwid 3600508b1001c5b05f73bd869031e78f5 
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"
  }
multipaths {
multipath {
                wwid360002ac000000000000000030001f3c6
                aliasocrvote2
 }
multipath {
                wwid 360002ac000000000000000020001f3c6
                aliasocrvote1
 }
multipath {
                wwid 360002ac000000000000000040001f3c6
                aliasocrvote3
 }
multipath {
                wwid360002ac000000000000000050001f3c6 
                aliasasmdata01
 }   
       multipath {
                wwid   360002ac000000000000000060001f3c6
                alias   asmdata02
                 }
       multipath {
                wwid   360002ac000000000000000070001f3c6
                alias   asmdata03
         }
multipath {
                wwid   360002ac000000000000000080001f3c6 
                alias   asmdata04
 }
multipath {
                wwid   360002ac000000000000000090001f3c6
                alias   asmdata05
         }
       multipath {
                wwid    360002ac0000000000000000a0001f3c6 
                alias   asmdata06
}
    multipath {
                wwid    360002ac0000000000000000b0001f3c6
                alias   asmdata07
       }   
multipath {
                wwid    360002ac0000000000000000c0001f3c6
                alias   asmdata08
   }
multipath {
                wwid    360002ac0000000000000000d0001f3c6  
                alias   asmdata09
   }
        multipath {
                wwid    360002ac0000000000000000e0001f3c6 
                alias   asmdata10
   }
multipath {
                wwid    360002ac0000000000000000f0001f3c6  
                alias   asmdata11
}
        multipath {
                wwid    360002ac000000000000000100001f3c6 
                alias   asmdata12
}
}
devices  {
device {
vendor "3PARdata"
product "VV"
path_grouping_policy group_by_prio
path_selector "round-robin 0"
path_checker tur
features "0"
hardware_handler "1 alua"
prio alua
failback immediate
rr_weight uniform
no_path_retry 18
rr_min_io_rq 1
detect_prio yes
# fast_io_fail_tmo 10
# dev_loss_tmo 14
}
 }   

修改完成后执行service multipathd reload

18、绑定磁盘UDEV权限

创建文件/etc/udev/rules.d/12-mulitpath-privs.rules,内容如下​​​​​​​

ENV{DM_NAME}=="ocrvote*",OWNER:="grid", GROUP:="asmadmin", MODE:="660"
ENV{DM_NAME}=="asmdata*",OWNER:="grid", GROUP:="asmadmin", MODE:="660"

19、安装目录附权限​​​​​​​

chown -R oracle:oinstall /u01
chown -R grid:oinstall /g01

20、安装GI软件

使用ROOT用户拷贝软件包到/tmp目录解压,安装GI

1、解压grid软件

unzip -qp13390677_112040_Linux-x86-64_3of7.zip

2、对grid软件打补丁19404309​​​​​​​

unzip -q p19404309_112040_Linux-x86-64.zip
cd b19404309
export ORA_SHIPS=/tmp/soft
cp grid/cvu_prereq.xml$ORA_SHIPS/grid/stage/cvu

安装单节点。安装完成后按要求以root用户执行root.sh

然后升级OPatch。用最新OPatch替换$ORACLE_HOME目录下OPatch目录即可。

安装补丁18370031

解压补丁

使用GRID用户执行$ORACLE_HOME/OPatch/ocm/bin/emocmrsp生成ocm.rsp文件

使用grid用户进入到补丁包目录

cd /tmp/soft/18370031

然后执行以下命令升级

opatch apply -oh $ORACLE_HOME -ocmrf  $ORACLE_HOME/OPatch/ocm/bin/ocm.rsp

拷贝GRID软件到2节点

在1节点,以GRID用户身份执行

cd /g01
scp -r app grid@dyckrac2:/g01

拷贝完成后,以root用户执行以下脚本

/g01/app/oraInventory/orainstRoot.sh
/g01/app/11.2.0/grid/root.sh

克隆ORACLE_HOME目录

在1节点执行

cd/g01/app/oraInventory
rm-rf *
su-grid
cd$ORACLE_HOME/clone/bin

#下面的是一条命令

perlclone.pl -silent -debug ORACLE_BASE=/g01/app/gridORACLE_HOME=/g01/app/11.2.0/grid ORACLE_HOME_NAME=Ora11g_gridinfrahome1  INVENTORY_LOCATION=/g01/app/oraInventoryOSDBA_GROUP=oinstall OSOPER_GROUP=dba -O'"CLUSTER_NODES={dyckrac1,dyckrac2}"'  -O'"LOCAL_NODE=dyckrac1"' CRS=TRUE -ignoreSysPrereqs

等待执行成功,去2节点执行

在2节点执行

cd/g01/app/oraInventory
rm-rf *
su-grid
cd$ORACLE_HOME/clone/bin

#下面的是一条命令

perlclone.pl -silent -debug ORACLE_BASE=/g01/app/gridORACLE_HOME=/g01/app/11.2.0/grid ORACLE_HOME_NAME=Ora11g_gridinfrahome1  INVENTORY_LOCATION=/g01/app/oraInventoryOSDBA_GROUP=oinstall OSOPER_GROUP=dba-O'"CLUSTER_NODES={dyckrac1,dyckrac2}"'  -O'"LOCAL_NODE=dyckrac2"' CRS=TRUE-ignoreSysPrereqs

21、配置集群

以grid用户使用xstart登录到1节点执行

$ORACLE_HOME/crs/config/config.sh进行配置集群。

然后在1节点执行root.sh

成功后去2节点执行root.sh

最后的INS-20802报错忽略

查看集群状态正常则进行DB安装

安装DB

unzip -qp13390677_112040_Linux-x86-64_1of7.zip
unzip -qp13390677_112040_Linux-x86-64_2of7.zip

对db软件打补丁19404309​​​​​​​

unzip -q p19404309_112040_Linux-x86-64.zip
cd /tmp/soft/b19404309
export ORA_SHIPS=/tmp/soft
cp database/cvu_prereq.xml$ORA_SHIPS/database/stage/cvu

然后以ORACLE用户登录XSTART执行DB集群安装

安装中途会报错

另开一个窗口,直接修改ins_emagent.mk文件

$ vi $ORACLE_HOME/sysman/lib/ins_emagent.mk
#===========================
#  emdctl
#===========================
$(SYSMANBIN)emdctl:
$(MK_EMAGENT_NMECTL)
修改为:
#===========================
#  emdctl
#===========================
$(SYSMANBIN)emdctl:
$(MK_EMAGENT_NMECTL)-lnnz11

然后点击Retry继续安装

安装完成后,再后续可以继续打最新的补丁,也可以直接建库使用。

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

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

相关文章

校园闲置物品交易网站 |基于springboot框架+ Mysql+Java+Tomcat的校园闲置物品交易网站设计与实现(可运行源码+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 用户功能模块 管理员功能登录前台功能效果图 系统功能设计 数据库E-R图设计 lunwen…

章鱼网络 Community Call #19|​开启与 Eigenlayer 的合作

香港时间2024年3月8日12点&#xff0c;章鱼网络举行第19期 Community Call。 在过去的一个月&#xff0c;章鱼网络在成功完成 $NEAR Restaking 功能的安全审计之后&#xff0c;一直在稳步吸引关注。事实上&#xff0c;在整个行业中&#xff0c;我们是极少数已经推出 Restaking …

JavaWeb笔记 --- 三、MyBatis

三、MyBatis 概述 MyBatis是一个持久层框架&#xff0c;用于简化JDBC Mapper代理开发 在resources配置文件包中创建多级目录用 / MyBatis核心配置文件 enviroments&#xff1a;配置数据库连接环境信息。 可以配置多个enviroment&#xff0c;通过default属性切换不同的envir…

MySQL语法分类 DQL(5)分组查询

为了更好的学习这里给出基本表数据用于查询操作 create table student (id int, name varchar(20), age int, sex varchar(5),address varchar(100),math int,english int );insert into student (id,name,age,sex,address,math,english) values (1,马云,55,男,杭州,66,78),…

2核4g服务器能多少人在线?腾讯云2核4g服务器性能测评

腾讯云轻量应用服务器2核4G5M配置性能测评&#xff0c;腾讯云轻量2核4G5M带宽服务器支持多少人在线访问&#xff1f;并发数10&#xff0c;支持每天5000IP人数访问&#xff0c;腾讯云百科txybk.com整理2核4G服务器支持多少人同时在线&#xff1f;并发数测试、CPU性能、内存性能、…

FFmpeg 常用命令汇总

​​​​​​经常用到ffmpeg做一些视频数据的处理转换等&#xff0c;用来做测试&#xff0c;今天总结了一下&#xff0c;参考了网上部分朋友的经验&#xff0c;一起在这里汇总了一下。 1、ffmpeg使用语法 命令格式&#xff1a; ffmpeg -i [输入文件名] [参数选项] -f [格…

unity内存优化之AB包篇(微信小游戏)

1.搭建资源服务器使用(HFS软件(https://www.pianshen.com/article/54621708008/)) using System.Collections; using System.Collections.Generic; using UnityEngine;using System;public class Singleton<T> where T : class, new() {private static readonly Lazy<…

Unity的AssetBundle资源运行内存管理的再次深入思考

大家好&#xff0c;我是阿赵。   这篇文章我想写了很久&#xff0c;是关于Unity项目使用AssetBundle加载资源时的内存管理的。这篇文章不会分享代码&#xff0c;只是分享思路&#xff0c;思路不一定正确&#xff0c;欢迎讨论。   对于Unity引擎的资源内存管理&#xff0c;我…

【网络原理】TCP 协议中比较重要的一些特性(三)

目录 1、拥塞控制 2、延时应答 3、捎带应答 4、面向字节流 5、异常情况处理 5.1、其中一方出现了进程崩溃 5.2、其中一方出现关机&#xff08;正常流程的关机&#xff09; 5.3、其中一方出现断电&#xff08;直接拔电源&#xff0c;也是关机&#xff0c;更突然的关机&am…

校园博客系统 |基于springboot框架+ Mysql+Java的校园博客系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 管理员功能登录前台功能效果图 系统功能设计 数据库E-R图设计 lunwen参考 摘要 研究…

每日一练:LeeCode-125、验证回文串【字符串+双指针】

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后&#xff0c;短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s&#xff0c;如果它是 回文串 &#xff0c;返回 true &#xff1b;否则&#…

mysql中的非空间数据导入sqlserver中空间化

以下操作都在Navicat Premium 15软件中操作 1、mysql导出数据 以导出csv为例 不修改导出路径的话默认就是在桌面 设置编码UTF-8 这边还是默认,最好不要修改,如果文本识别符号为空,导入的时候可能字段会错乱 开始即可 2、导入sqlserver数据库中

App的测试,和传统软件测试有哪些区别?增加哪些方面的测试用例

从上图可知&#xff0c;测试人员所测项目占比中&#xff0c;App测试占比是最高的。 这就意味着学习期间&#xff0c;我们要花最多的精力去学App的各类测试。也意味着我们找工作前&#xff0c;就得知道&#xff0c;App的测试点是什么&#xff0c;App功能我们得会测试&#xff0…

绩效考核设计:拟定工时标准,实现量化考核

该度假村工程维修部的主要工作是修灯泡、换水管、修门、开锁等&#xff0c;部门员工大多是老员工&#xff0c;随着年龄的增加&#xff0c;这些员工的工作积极性越来越差&#xff0c;“老油条”越来越多&#xff0c;其他部门对工程维修部的抱怨声也越来越大。一起来看看人力资源…

RTC的Google拥塞控制算法 rmcat-gcc-02

摘要 本文档描述了使用时的两种拥塞控制方法万维网&#xff08;RTCWEB&#xff09;上的实时通信&#xff1b;一种算法是基于延迟策略&#xff0c;一种算法是基于丢包策略。 1.简介 拥塞控制是所有共享网络的应用程序的要求互联网资源 [RFC2914]。 实时媒体的拥塞控制对于许…

【Java设计模式】二十五、自定义Spring IoC

文章目录 1、IoC类的定义1.1 定义bean相关的pojo类PropertyValue1.2 定义MutablePropertyValues类1.3 定义BeanDefinition类 2、定义注册表相关类2.1 BeanDefinitionRegistry接口2.2 SimpleBeanDefinitionRegistry类 3、定义解析器相关类3.1 BeanDefinitionReader接口3.2 XmlBe…

【JavaScript】JavaScript 运算符 ④ ( 逻辑运算符 | 逻辑与运算符 | 逻辑或运算符 || | 逻辑非运算符 ! )

文章目录 一、JavaScript 逻辑运算符1、逻辑运算符 概念2、逻辑与运算符 &&3、逻辑或运算符 ||4、逻辑非运算符 !5、完整代码示例 一、JavaScript 逻辑运算符 1、逻辑运算符 概念 JavaScript 中的 逻辑运算符 的作用是 对 布尔值 进行运算 , 运算完成 后 的 返回值 也是…

10倍提效,每天100篇,如何使用AI提取arXiv论文知识?

arXiv arXiv是国际上最有影响力的论文预发平台&#xff0c;在arXiv发表论文&#xff0c;已经成为科研圈的“潜规则”。arXiv创建于1991年&#xff0c;论文主要是理工科论文&#xff0c;包括数学、物理、计算机、统计、金融等领域。 目前收录论文数量已达200万篇。研究人员每个月…

springboot 简易文件共享工具

文章目录 一、运行界面1、登录2、展示 二、源码传送1、使用技术2、代码结构3、源码 三、运行部署1、jar方式2、docker方式3、docker-compose方式 四、优化方向 一、运行界面 1、登录 后台查看日志&#xff0c;获取token值 2、展示 批量上传文件或者点击链接下载 二、源码传…

Vulnhub - Symfonos

希望和各位大佬一起学习&#xff0c;如果文章内容有错请多多指正&#xff0c;谢谢&#xff01; 个人博客链接&#xff1a;CH4SER的个人BLOG – Welcome To Ch4sers Blog Symfonos 靶机下载地址&#xff1a;https://www.vulnhub.com/entry/symfonos-1,322/ 0x01 信息收集 …