Oracle系统性能监控工具oswatcher演示

1、关于 OSW

OSWatcher 的使用符合 Oracle 的标准许可条款,并且不需要额外的许可即可使用!!!!

OSWatcher (oswbb) 是一种 UNIX shell 脚本的集合,主要用于收集和归档操作系统和网络的度量,以便为诊断性能问题提供支持。作为最佳实践,用户应当在所有运行着 Oracle 实例的节点安装和运行 OSWatcher。当诊断性能问题的时候, Oracle support 可以采用 OSWatcher 数据来诊断那些可能已经超出数据库之外的性能问题。OSWatcher 可以从 MOS Note 301137.1 下载

作为最佳实践,Oracle Support 建议所有用户在其运行 Oracle 的服务器上部署 OSWatcher。OSWatcher 应被视为任何数据收集可能存在的附加或补充。主要原因是,如果 Oracle Support 不得不向开发提交一个 Bug,那么开发很可能会坚持要求提供 OSWatcher 数据。如果没有,该 Bug 可能无法继续分析,直到安装了 OSWatcher 并且问题再现。此外,比起其他工具,Oracle Support 更熟悉 OSWatcher 并且接受了 OSWatcher 的培训,他们了解基本操作系统诊断实用程序(如 vmstat、iostat、top 等)的输出。Oracle Support 可能不熟悉您现有的其他类型的自定义或特定于操作系统的数据收集工具。最后,Oracle Support 能够使用内部工具分析 OSWatcher 数据,避免耗时的任务比如必须手动检查成堆的文件。这将大大减少问题的解决时间。
Oracle Support 建议您使用默认快照间隔运行 OSWatcher,即 30 秒采样间隔和 48 小时的默认保留期。 以较低的频率采样或者大于 60 秒的采样对于诊断性能问题没有太大用处。

OSWatcher 更适合于小规模的情况,毕竟每台单机都要部署一次,性能都要单独分析!下面我就演示一下最新版本的oswbb840版本的安装及性能报告生成。

2、安装oswbba

上传文件oswbb840.tar到服务器/root目录

[root@rac1 ~]# mkdir -p /osw_monitor
[root@rac1 ~]# chown -R grid:oinstall /osw_monitor/
[root@rac1 ~]# mv /root/oswbb840.tar  /osw_monitor/
[root@rac1 ~]# chown -R grid:oinstall /osw_monitor/oswbb840.tar 
[root@rac1 ~]# su - grid
[grid@rac1 osw_monitor]$ tar -xvf oswbb840.tar 
[grid@rac1 osw_monitor]$ ls
oswbb  oswbb840.tar

3、创建RAC心跳网络监控配置文件

这个仅适用于RAC,如果你是单机,可以不看这节。

这里在oswbb目录提供了一个示例,只需要截取需要的部份并创建private.net文件就行,下面是整个配置文件示例

[grid@rac1 osw_monitor]$ cd oswbb
[grid@rac1 oswbb]$ cat Exampleprivate.net 
######################################################################
# This file contains examples of how to monitor private networks. To
# monitor your private networks create an executable file in this same
# directory named private.net. Use the example for your host os below.
# Make sure not to remove the last line in this file. Your file
# private.net MUST contain the rm lock.file line.
######################################################################
#Solaris Example
######################################################################
echo "zzz ***"`date`
traceroute -r -F <node1-priv>
traceroute -I -r -F <node1-priv>
traceroute -r -F <node2-priv>
traceroute -I -r -F <node2-priv>
######################################################################
#HP Example
######################################################################
echo "zzz ***"`date`
traceroute -r -F <node1-priv> 
traceroute -r -F <node2-priv> 

######################################################################
#Linux Example
######################################################################
echo "zzz ***"`date`
traceroute -r -F <node1-priv> 
traceroute -r -F <node2-priv>
######################################################################
#Tru64 Example
######################################################################
echo "zzz ***"`date`
traceroute -r -f <node1-priv>
traceroute -r -f <node2-priv>
######################################################################
#AIX Example
######################################################################
echo "zzz ***"`date`
traceroute -r <node1-priv>
traceroute -r <node2-priv>
######################################################################
# DO NOT DELETE THE FOLLOWING LINE!!!!!!!!!!!!!!!!!!!!!
######################################################################
rm locks/lock.file
[grid@rac1 oswbb]$ 

例如我这里监控的系统是linux,那么需要创建private.net文件内容如下

######################################################################
#Linux Example
######################################################################
echo "zzz ***"`date`
traceroute -r -F rac1-priv
traceroute -r -F rac2-priv
######################################################################
# DO NOT DELETE THE FOLLOWING LINE!!!!!!!!!!!!!!!!!!!!!
######################################################################
rm locks/lock.file

4、运行osw并进行监控

这里要重点说明一下,比如7版本的LINUX默认最小安装后,没有相应的网络命令,要提前安装下net-tools包。

手动启动 OSWbb 实用程序,可以直接在 OSWbb 的安装目录下执行 startOSWbb.sh shell 脚本, 该脚本一共有4个参数,其中两个为可选参数,他们分别是:

$1 = 快照间隔,以秒为单位。
$2 = 要存储的归档数据的小时数。
$3 = (可选)压缩工具的名称,可以自动将生成的文件进行压缩。
$4 = (可选)保存归档的非默认路径,改参数用于替换OSWBB_ARCHIVE_DEST环境变量,

这里设置保留每5s采集一次,保存期限360h/24=15天,后台运行,只需要执行nohup ./startOSWbb.sh 5 360 &即可

(如果不用nohup会在当前屏幕打印一堆)如果想要看输出,可以tail -f nohup.out文件。

[grid@rac1 oswbb]$ nohup ./startOSWbb.sh 5 360  &

[grid@rac1 oswbb]$ tail -f nohup.out 
Setting the archive log directory to/osw_monitor/oswbb/archive

Testing for discovery of OS Utilities...
VMSTAT found on your system.
IOSTAT found on your system.
MPSTAT found on your system.
IP found on your system.
TOP found on your system.
PIDSTAT found on your system.
NFSIOSTAT found on your system.
ARP found on your system.
TRACEROUTE found on your system.
Number of RAC Nodes: 2

The following Nodes are members of RAC Cluster:
Local Node: rac1
Remote Node(s): rac2

 CRS is up and running on local Node

ssh test is successful on all RAC Nodes.
Private.net configured on local node !

Discovery of CPU CORE COUNT
CPU CORE COUNT will be used by oswbba to automatically look for cpu problems

CPU CORE COUNT = 4
VCPUS/THREADS = 4

Discovery completed.

Starting OSWatcher v8.4.0  on Thu Dec 5 21:50:11 CST 2024
With SnapshotInterval = 5
With ArchiveInterval = 360

OSWatcher - Written by Carl Davis, Center of Expertise,
Oracle Corporation
For questions on install/usage please go to MOS (Note:301137.1)

Data is stored in directory: /osw_monitor/oswbb/archive

Starting Data Collection...

oswbb heartbeat:Thu Dec 5 21:50:16 CST 2024
oswbb heartbeat:Thu Dec 5 21:50:21 CST 2024
oswbb heartbeat:Thu Dec 5 21:50:26 CST 2024
oswbb heartbeat:Thu Dec 5 21:50:31 CST 2024

如果想要停止监控,只要执行stopSWbb.sh即可。

[grid@rac1 oswbb]$ nohup ./stopSWbb.sh

5、如何在windows执行生成报告

当然也是支持在Linux上输出图形报告,这要求你必须安装了x windows,并配置JDK环境,然后执行命令输出图形。

如果你的oracle服务不能安装图形界面且不能安装最新的JDK,那么我推荐你把监控数据打包拷贝到windows上,然后在windows端解析,新版本可以直接生成HTML报告,HTML看起来更友好。

我这里用的是新版本840的,所以需要最低jdk 1.8才行。windows安装JDK就没有啥可说的,一直下一步就行,环境变量不想配置也可以,只要cmd下执行java -jar能看到当前版本就OK。

那行,首先在linux端打包收集的信息,在oswbb目录下执行脚本,会在当前目录下生成tar包

[grid@rac1 oswbb]$ ./tar_up_full_archive.sh /osw_monitor/
[grid@rac1 oswbb]$ ls *.tar
osw_archive_1205242152.tar

文件拷贝到windows,解压到E盘根目录下,电脑安装JDK 1.8配置好环境变量。

先解压该压缩包,会生成osw_monitor文件夹

E:\>winrar x osw_archive_1205242152.tar

我们把新版本的解析包oswbba9013拷贝到E盘,然后执行如下命令

java -Duser.language=en -Duser.country=us -jar -Xmx256m e:\oswbba9013.jar -i E:\osw_monitor\oswbb\archive

这里进入到交互式界面,我这里按D生成HTML报告

E:\>java -Duser.language=en -Duser.country=us -jar -Xmx256m e:\oswbba9013.jar -i
 E:\osw_monitor\oswbb\archive

Validating times in the archive...


Starting OSW Analyzer V9.0.13
Copyright (c)  2023 by Oracle Corporation

Parsing Data. Please Wait...

Scanning file headers for version and platform info...

Parsing file rac1_prvtnet_24.12.05.2100.dat ...

Parsing file rac1_pidstat_24.12.05.2100.dat ...

Parsing file rac1_iostat_24.12.05.2100.dat ...

Parsing file rac1_nfsiostat_24.12.05.2100.dat ...

Parsing file rac1_vmstat_24.12.05.2100.dat ...

Parsing file rac1_meminfo_24.12.05.2100.dat ...

Parsing file rac1_netstat_24.12.05.2100.dat ...

Parsing file rac1_top_24.12.05.2100.dat ...


Parsing file rac1_ps_24.12.05.2100.dat ...


Parsing Completed.


Enter 1 to Display CPU Process Queue Graphs
Enter 2 to Display CPU Utilization Graphs
Enter 3 to Display CPU Other Graphs
Enter 4 to Display Memory Graphs
Enter 5 to Display Disk IO Graphs
Enter 61 to Display Individual OS Process I/O RPS Graphs
Enter 62 to Display Individual OS Process I/O WPS Graphs
Enter 63 to Display Individual OS Process Percent User CPU Graphs
Enter 64 to Display Individual OS Process Percent System CPU Graphs
Enter 65 to Display Individual OS Process Percent Total CPU (User + System) Grap
hs
Enter 66 to Display Individual OS Process Percent Memory Graphs

Enter GP to Generate Individual Process Profile
Enter GC to Generate All CPU Gif Files
Enter GM to Generate All Memory Gif Files
Enter GD to Generate All Disk Gif Files
Enter GN to Generate All Network Gif Files

Enter L to Specify Alternate Location of Gif Directory
Enter Z to Zoom Graph Time Scale (Does not change analysis dataset)
Enter B to Returns to Baseline Graph Time Scale (Does not change analysis datase
t)
Enter R to Remove Currently Displayed Graphs

Enter X to Export Parsed Data to Flat File
Enter S to Analyze Subset of Data(Changes analysis dataset including graph time
scale)
Enter A to Analyze Data
Enter D to Generate DashBoard

Enter Q to Quit Program

Please Select an Option:D
Enter a unique analysis/dashboard directory name or enter <CR> to accept default
 name:

A new analysis file analysis\rac1_Dec05215016_1733407401\analysis.txt has been c
reated.

Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_Run_Queue.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_Run_Adjusted_Queue.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_Block_Queue.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_HB.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_PS_Processes.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_Cpu_Idle.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_Cpu_Util.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_Cpu_System.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_Cpu_User.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_Cpu_Wa.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_Cpu_Interrupts.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_Context_Switches.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_Memory_Swap.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_Memory_Page_In_Rate.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_Memory_Page_Out_Rate.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_MemInfoTotalMem.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_MemInfoFreeMem.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_MemInfoAvailMem.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_MemInfoPercentFree.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_Cpu_Wa.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_Block_Queue.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_IO_ST.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_IO_AW.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_IO_PB.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_IO_RPS.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_IO_WPS.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_OS_IO_TPS.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ lo_rx_ok.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ lo_rx_err.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ lo_rx_drp.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ lo_rx_ovr.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ lo_tx_ok.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ lo_tx_err.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ lo_tx_drp.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth0_rx_ok.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth0_rx_err.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth0_rx_drp.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth0_rx_ovr.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth0_tx_ok.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth0_tx_err.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth0_tx_drp.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth1_rx_ok.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth1_rx_err.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth1_rx_drp.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth1_rx_ovr.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth1_tx_ok.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth1_tx_err.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth1_tx_drp.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth2_rx_ok.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth2_rx_err.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth2_rx_drp.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth2_rx_ovr.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth2_tx_ok.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth2_tx_err.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_link_ eth2_tx_drp.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_IpOutRequests.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_IpInReceives.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_IpFragCreates.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_IpFragOKs.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_IpInDiscards.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_IpReasmFails.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_ip_fragments_in_rate.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_ip_fragments_out_rate.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_UdpInDatagrams.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_UdpOutDatagrams.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_UdpInErrors.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_UdpInCsumErrors.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_UdpRcvbufErrors.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_UdpSndbufErrors.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_TcpInSegs.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_TcpOutSegs.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_TcpRetransSegs.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_TcpOutRsts.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_TcpEstabResets.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_TcpAttemptFails.jpg
Generating file analysis\rac1_Dec05215016_1733407401\dashboard\generated_files\O
SWg_tcp_retran_error_rate.jpg

Files written to the analysis directory.

Enter 1 to Display CPU Process Queue Graphs
Enter 2 to Display CPU Utilization Graphs
Enter 3 to Display CPU Other Graphs
Enter 4 to Display Memory Graphs
Enter 5 to Display Disk IO Graphs
Enter 61 to Display Individual OS Process I/O RPS Graphs
Enter 62 to Display Individual OS Process I/O WPS Graphs
Enter 63 to Display Individual OS Process Percent User CPU Graphs
Enter 64 to Display Individual OS Process Percent System CPU Graphs
Enter 65 to Display Individual OS Process Percent Total CPU (User + System) Grap
hs
Enter 66 to Display Individual OS Process Percent Memory Graphs

Enter GP to Generate Individual Process Profile
Enter GC to Generate All CPU Gif Files
Enter GM to Generate All Memory Gif Files
Enter GD to Generate All Disk Gif Files
Enter GN to Generate All Network Gif Files

Enter L to Specify Alternate Location of Gif Directory
Enter Z to Zoom Graph Time Scale (Does not change analysis dataset)
Enter B to Returns to Baseline Graph Time Scale (Does not change analysis datase
t)
Enter R to Remove Currently Displayed Graphs

Enter X to Export Parsed Data to Flat File
Enter S to Analyze Subset of Data(Changes analysis dataset including graph time
scale)
Enter A to Analyze Data
Enter D to Generate DashBoard

Enter Q to Quit Program

Please Select an Option:

然后就在E盘下生成如下目录。

E:\analysis\rac1_Dec05215016_1733407401\dashboard

我们直接运行目录里的index.html即可

6、效果展示

下面是部分展示,是不是看起来还不错!

 

40d12cf9fd3ca0fe6a41cad6489a3d64.png


 

2f765087d8158d20a8b75a458b05f93d.png


 

de5ae8cf3f741926a4ac9dfae792a506.png

66b256f27002b70409a9884319b09605.png

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Oracle EBS PAC 如何复修非标任务单生产生非常大的PAC成本?

系统环境 RDBMS : 12.1.0.2.0 Oracle Applications : 12.2.6 问题症状 非标准任务单组件和装配相同物料A,俗称投入A产A。该物料A的期初数量为0。 上期成本假设为20,而本期成本爆增至563.674234。关键问题点: 由于该物料没有期初数量,无法通过“更新定期成本”指定“新期本…

word实践:正文/标题/表图等的共用模板样式设置

说在前面 最近使用word新建文件很多&#xff0c;发现要给大毛病&#xff0c;每次新建一个word文件&#xff0c;标题/正文的字体、大小和间距都要重新设置一遍&#xff0c;而且每次设置这些样式都忘记了参数&#xff0c;今天记录一下&#xff0c;以便后续方便查看使用。现在就以…

java抽奖系统(一)2.0

1. 项⽬介绍 1.1 背景 随着数字营销的兴起&#xff0c;企业越来越重视通过在线活动来吸引和留住客⼾。抽奖活动作为⼀种有效的营 销⼿段&#xff0c;能够显著提升⽤⼾参与度和品牌曝光率。于是我们就开发了以抽奖活动作为背景的Spring Boot项⽬&#xff0c;通过这个项⽬提供⼀…

spring 源码分析

1 IOC 源码解析 BeanDefinition: bean的定义。里面会有beanClass、beanName、scope等属性 beanClass&#xff1a;通过Class.forName生成的Class 对象beanName&#xff1a;context.getBean(“account”)&#xff0c;acount就是beanNamescope: 作用区分单例bean、原型bean Bea…

Android水波纹效果

Android水波纹效果 需要到水波纹效果的场景还蛮少的。万一刚好你需要呢 一、思路&#xff1a; 自定义组件SpreadView 二、效果图&#xff1a; 看视频更直观点&#xff1a; Android轮子分享-水波纹效果 三、关键代码&#xff1a; public class SpreadView extends View {pr…

用 NotePad++ 运行 Java 程序

安装包 网盘链接 下载得到的安装包: 安装步骤 双击安装包开始安装. 安装完成: 配置编码 用 NotePad 写 Java 程序时, 需要设置编码. 在 设置, 首选项, 新建 中进行设置, 可以对每一个新建的文件起作用. 之前写的文件不起作用. 在文件名处右键, 可以快速打开 CMD 窗口, 且路…

TaskBuilder SQL执行工具

为了方便开发者连接当前任擎服务器上配置的各个数据源对应的数据库进行相关操作&#xff0c;TaskBuilder提供了一个SQL执行工具&#xff0c;点击系统侧边栏里的执行SQL图标 &#xff0c;即可打开该工具&#xff0c;界面如下图所示&#xff1a; 该工具从上至下分为三个区域&a…

学生信息管理系统(简化版)数据库部分

使用Mysql&#xff0c;与navicat工具 下面是mysql创建的代码&#xff0c;可做必要修改 -- 创建学生学籍信息表 CREATE TABLE StudentEnrollment (-- 学号&#xff0c;作为主键student_id VARCHAR(8) NOT NULL,-- 学生姓名stu_name VARCHAR(8) NOT NULL,-- 学生性别gender VARC…

计算机网络之传输层协议TCP

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 计算机网络之传输层协议TCP 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目…

美畅物联丨观看实时视频对服务器带宽有什么要求?

​随着互联网的迅猛发展&#xff0c;实时视频观看已然成为人们日常生活中不可或缺的一部分。不管是视频会议、在线教育&#xff0c;还是在线娱乐&#xff0c;实时视频都起到了极为重要的作用。不过&#xff0c;实时视频的流畅播放对服务器的带宽有着极高的要求。本文将深入探究…

SWIRL:有望成为2025年顶级AI搜索引擎

现在几乎每家公司都会有内部文档系统&#xff0c;如阿里的语雀、钉钉&#xff0c;字节的飞书&#xff0c;Confluence&#xff0c;印象笔记等等都可以提供给B端在局域网部署。因此&#xff0c;如果能把搜索功能做得高效&#xff0c;就能提高自家产品的竞争力。 想象一下&#xf…

技术栈6:Docker入门 Linux入门指令

目录 1.Linux系统目录结构 2.处理目录的常用命令 3.Docker概述 4.Docker历史 5.Docker基本组成 6.Docker底层原理 7.Docker修改镜像源 8.Docker基本命令 9.Docker创建Nginx实战 10.数据卷 11.本地目录直接挂载* 12.镜像和dockerfile 13.容器互联与自定义网络 14.…

LeetCode - #156 上下翻转二叉树(会员题)

文章目录 前言1. 描述2. 示例3. 答案关于我们 前言 本题为 LeetCode 的高级会员解锁题 我们社区陆续会将顾毅&#xff08;Netflix 增长黑客&#xff0c;《iOS 面试之道》作者&#xff0c;ACE 职业健身教练。&#xff09;的 Swift 算法题题解整理为文字版以方便大家学习与阅读…

汽车零部件设计之——麦弗逊悬架KC特性分析仿真APP介绍

汽车零部件是汽车工业的基石&#xff0c;是构成车辆的基础元素。一辆汽车通常由上万件零部件组成&#xff0c;包括发动机系统、传动系统、制动系统、电子控制系统等&#xff0c;它们共同确保了汽车的安全、可靠性及高效运行。在汽车产业快速发展的今天&#xff0c;汽车零部件需…

STM32串口接收与发送(关于为什么接收不需要中断而发生需要以及HAL_UART_Transmit和HAL_UART_Transmit_IT的区别)

一、HAL_UART_Transmit和HAL_UART_Transmit_IT的区别 1. HAL_UART_Transmit_IT&#xff08;非阻塞模式&#xff09;&#xff1a; HAL_UART_Transmit_IT 是非阻塞的传输函数&#xff0c;也就是说&#xff0c;当你调用 HAL_UART_Transmit_IT 时&#xff0c;它不会等到数据完全发…

学生信息管理系统(简化版)后端接口

目录 allAPI __init__.py是空文件&#xff0c;目的让python知道这个文件夹是个包 ClassInfo.py from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from API.database import get_db, Base from sqlalchemy import Column, String,…

网络安全信息收集(总结)更新

目录 重点&#xff1a; 前言&#xff1a; 又学到了&#xff0c;就是我们什么时候要子域名收集&#xff0c;什么时候收集域名&#xff0c;重点应该放前面 思考&#xff1a; 信息收集分为哪几类&#xff0c;什么是主域名&#xff0c;为什么要收集主域名&#xff0c;为什么要收…

微信小程序从后端获取的图片,展示的时候上下没有完全拼接,有缝隙【已解决】

文章目录 1、index.wxml2、index.js3、detail.detail为什么 .rich-text-style 样式可以生效&#xff1f;1. <rich-text> 组件的特殊性2. 类选择器的作用范围3. 样式优先级4. line-height: 0 的作用5. 为什么直接使用 rich-text 选择器无效&#xff1f; 总结 上下两张图片…

【达梦数据库】存储过程调用实践案例-select

目录 前言创建表插入数据查询表中数据创建存储过程打开dbms_output包输出开关调用存储过程 前言 如果要在存储过程中执行一个SELECT语句并处理其结果&#xff0c;你不能直接使用EXECUTE IMMEDIATE&#xff0c;因为EXECUTE IMMEDIATE主要用于执行那些不返回行的语句&#xff08;…

C语言:指针(第一天)

C语言&#xff1a;指针&#xff08;第一天&#xff09; 预备知识 内存地址 字节&#xff1a;字节是内存的容量单位&#xff0c;英文名byte&#xff0c;一个字节有8位&#xff0c;即1byte8bits地址&#xff1a;系统为了便于区分每一个字节而对他们逐一进行的编号&#xff0c;…