当前位置: 首页 > news >正文

linux oracle 19c 静默安装

oracle数据库有个比较很抓瞎的事情,不同的版本搭建的大致流程是一样的,但是在实操细节上会有不同,比如操作的脚本位置和配置项等等,这些会变,所以需要时常积累不同版本的文档

这里有一点要说明,之所以使用静默安装,除了它的安装成功率高之外,还有一个最根本的原因是图形化以及命令行非静默安装时需要你的服务器和系统支持11X图像协议,这个东西很麻烦!很麻烦!没有的话oracle不会报错,但是会自己终止按照进程,并提示你DISPLAY not set. Please set the DISPLAY and try again

本次安装的需要的环境如下

CentOS 7 X86 64位
LINUX.zip (19c的安装包下载好就叫这个名字)
配置好静态ip
关闭防火墙
关闭SELinux

第一步:配置合适的yum源,一般用阿里源就行,随后安装需要的yum环境

yum install -y unzip bc binutils compat-libcap1 compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc libstdc++ libstdc++-devel libxcb make smartmontools sysstat net-tools gcc gcc-c++ gcc-info gcc-locale gcc48 gcc48-info gcc48-locale gcc48-c++ libXp

第二步:准备oracle用户和组

groupadd oracle
groupadd dba
useradd -g oracle -G dba oraclepasswd oracle
设置密码

第三步:修改内核参数

vi /etc/sysctl.conf追加:
#系统异步I/O (AIO) 请求的最大数量
fs.aio-max-nr = 1048576
#整个linux系统全局最大可使用文件句柄数
fs.file-max = 6815744
#共享内存最大总页数,页(Page) 为单位,通常一页大小为 4KB
kernel.shmall = 2097152
#单个共享内存段的最大大小
#kernel.shmmax 一般设置成服务器内存的一半,单位为字节
kernel.shmmax = 1073741824
#共享内存段的最大数量
kernel.shmmni = 4096
#配置信号量参数(格式:SEMMSL SEMMNS SEMOPM SEMMNI)。防止数据库因信号量不足导致进程阻塞
#SEMMSL:每个信号量集合的最大信号量数(250)。
#SEMMNS:系统总信号量数(32000)。
#SEMOPM:单次操作可处理的信号量数(100)。
#SEMMNI:信号量集合的最大数量(128)。
kernel.sem = 250 32000 100 128
#本地TCP/UDP端口的可用范围
net.ipv4.ip_local_port_range = 9000 65500
#接收套接字缓冲区的默认和最大值(字节)
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
#发送套接字缓冲区的默认和最大值(字节)
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
# 执行生效
sysctl -p

第四步:修改用户限制

vi /etc/security/limits.conf追加
#用户操作的线程数到达多少后给警告
oracle soft nproc 2047
#用户操作的线程数到达多少后不在允许新增线程
oracle hard nproc 16384
#下面两个是可操作的文件句柄个数限制
oracle soft nofile 1024
oracle hard nofile 65536
#栈空间软限制10M
oracle soft stack 10240
#下面两个是允许生成的核心转储文件大小,unlimited是不限制
#oracle soft core unlimited
#oracle hard core unlimited
#允许最多占用多少物理内存,单位:KB
oracle soft memlock 50000000
oracle hard memlock 50000000

第五步:修改用户登录认证

vi /etc/pam.d/login追加:
session required /lib64/security/pam_limits.so
session required pam_limits.so

第六步:创建安装目录,把它赋予oracle,并切换oracle用户操作后续的步骤,这里要注意19c的安装路径,也就是ORACLE_HOME,只能是安装包解压的那个路径,无法改变,所以这里建的啥,你后面就解压到哪里就行

mkdir -p /opt/oracleData/oracle19cmkdir /opt/oracleData/inventorychown -R oracle:oracle /opt/oracleDatachmod -R 775 /opt/oracleDatasu oracle

第七步:更改oracle用户的环境变量文件

vi .bash_profile追加:
ORACLE_BASE=/opt/oracleDataORACLE_HOME=$ORACLE_BASE/oracle19cORACLE_SID=orclLD_LIBRARY_PATH=$ORACLE_HOME/libPATH=$PATH:$ORACLE_HOME/binexport ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH PATH
source .bash_profile

第八步:将19c的安装包上传到/opt/oracleData目录,并确保安装包的所有权是oracle用户,一定要确保所有权,在11g版本的时候只需要单独操作响应文件就行,但是19c整个包不在一起会出现问题

通过lrzsz 或者 scp都行,上传方式自己决定解压:
unzip LINUX.zip -d /opt/oracleData/oracle19c

第九步:19c的静默安装需要的文件在解压路径/install下,进入其中修改对应的配置文件

cd /opt/oracleData/oracle19c/install/responsevi db_install.rsp

按照你准备的路径和用户,更改如下内容

oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oracle
INVENTORY_LOCATION=/opt/oracleData/inventory
ORACLE_HOME=/opt/oracleData/oracle19c
ORACLE_BASE=/opt/oracleData
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=dba
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.SID=orcl

第十步:回到解压目录下,运行静默安装

cd /opt/oracleData/oracle19c./runInstaller -silent -responseFile /opt/oracleData/oracle19c/install/response/db_install.rsp -ignorePrereq

出现如下输出则服务安装成功
在这里插入图片描述
第十一步:按照上面的提示,切换到root用户,执行上面的两个脚本
在这里插入图片描述
第十二步:同样使用静默方式,配置监听

在root用户下安装nc

yum install -y nc

切换回oracle用户,从新生效一下环境变量,因为前面配置的时候还没有安装,有些东西会加载不上

source .bash_profile

oracle19c的监听,有个很无奈的事情,就是初始化监听用到的响应文件,并没有直接在response目录下提供,而是在$ORACLE_HOME/network/install/netca_clt.rsp,而且文件中只有最基本的一些配置项,初始化后不会像11g那样自动启动,需要手动启监听

/opt/oracleData/oracle19c/bin/netca /silent /responseFile /opt/oracleData/oracle19c/network/install/netca_clt.rsp

上面的初始化完成之后,手动启动的命令在ORACLE_HOME/bin/lsnrctl

/opt/oracleData/oracle19c/bin/lsnrctl start LISTENER

然后就可以用nc工具查看到监听进程了

[oracle@node3 samples]$ netstat -tnulp | grep 1521
(Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.)
tcp6       0      0 :::1521                 :::*                    LISTEN      8408/tnslsnr 

第十三步:初始化数据库实例

和监听用的响应文件一样,19c并没有和11g那样在安装包中给你预留好初始化数据库实例用的响应文件,因此需要自己搞一个。注意从12c开始oracle引进了基于容器的多租户可插拔数据库(CBD),可以通俗的理解为在一个基础数据库架构(CBD)上运行多租户模式的容器数据库(PDB),我们个人自己使用不需要用这个,因为它的运维很复杂,个人使用也用不到,如果未来你要使用21以上的就必须考虑CDB的搭建方式了,因为可能会在未来仅支持容器化的数据库

自己在一个目录下建一个dbca.rsp文件,注意文件名别改,并写入如下内容

gdbName=orcl.test
sid=orcl
createAsContainerDatabase=false
templateName=General_Purpose.dbc
sysPassword=123456
systemPassword=123456
characterSet=AL32UTF8
totalmemory=1680

然后用这个响应文件去初始化数据库

/opt/oracleData/oracle19c/bin/dbca -silent  -createDatabase -responseFile /opt/oracleData/oracle19c/install/response/dbca.rsp

初始化进程结束后,查询一下已有的实例进程

[oracle@node3 response]$ ps -ef | grep ora_ | grep -v grep
oracle     7721      1  0 22:55 ?        00:00:00 ora_pmon_orcl
oracle     7723      1  0 22:55 ?        00:00:00 ora_clmn_orcl
oracle     7725      1  0 22:55 ?        00:00:00 ora_psp0_orcl
oracle     7728      1  0 22:55 ?        00:00:04 ora_vktm_orcl
oracle     7732      1  0 22:55 ?        00:00:00 ora_gen0_orcl
oracle     7734      1  0 22:55 ?        00:00:00 ora_mman_orcl
oracle     7738      1  0 22:55 ?        00:00:00 ora_gen1_orcl
oracle     7741      1  0 22:55 ?        00:00:00 ora_diag_orcl
oracle     7743      1  0 22:55 ?        00:00:00 ora_ofsd_orcl
oracle     7746      1  0 22:55 ?        00:00:00 ora_dbrm_orcl
oracle     7748      1  0 22:55 ?        00:00:00 ora_vkrm_orcl
oracle     7750      1  0 22:55 ?        00:00:00 ora_svcb_orcl
oracle     7752      1  0 22:55 ?        00:00:00 ora_pman_orcl
oracle     7754      1  0 22:55 ?        00:00:00 ora_dia0_orcl
oracle     7756      1  0 22:55 ?        00:00:00 ora_dbw0_orcl
oracle     7758      1  0 22:55 ?        00:00:00 ora_lgwr_orcl
oracle     7760      1  0 22:55 ?        00:00:00 ora_ckpt_orcl
oracle     7762      1  0 22:55 ?        00:00:00 ora_lg00_orcl
oracle     7764      1  0 22:55 ?        00:00:00 ora_smon_orcl
oracle     7766      1  0 22:55 ?        00:00:00 ora_lg01_orcl
oracle     7768      1  0 22:55 ?        00:00:00 ora_smco_orcl
oracle     7770      1  0 22:55 ?        00:00:00 ora_reco_orcl
oracle     7772      1  0 22:55 ?        00:00:00 ora_w000_orcl
oracle     7774      1  0 22:55 ?        00:00:00 ora_lreg_orcl
oracle     7776      1  0 22:55 ?        00:00:00 ora_w001_orcl
oracle     7778      1  0 22:55 ?        00:00:00 ora_pxmn_orcl
oracle     7782      1  0 22:55 ?        00:00:00 ora_mmon_orcl
oracle     7784      1  0 22:55 ?        00:00:00 ora_mmnl_orcl
oracle     7786      1  0 22:55 ?        00:00:00 ora_d000_orcl
oracle     7788      1  0 22:55 ?        00:00:00 ora_s000_orcl
oracle     7790      1  0 22:55 ?        00:00:00 ora_tmon_orcl
oracle     7796      1  0 22:55 ?        00:00:00 ora_m000_orcl
oracle     7798      1  0 22:55 ?        00:00:00 ora_m001_orcl
oracle     7804      1  0 22:55 ?        00:00:00 ora_tt00_orcl
oracle     7806      1  0 22:55 ?        00:00:00 ora_tt01_orcl
oracle     7808      1  0 22:55 ?        00:00:00 ora_tt02_orcl
oracle     7810      1  0 22:55 ?        00:00:00 ora_aqpc_orcl
oracle     7812      1  0 22:55 ?        00:00:00 ora_cjq0_orcl
oracle     7819      1  0 22:55 ?        00:00:00 ora_p000_orcl
oracle     7821      1  0 22:55 ?        00:00:00 ora_p001_orcl
oracle     7823      1  0 22:55 ?        00:00:00 ora_p002_orcl
oracle     7825      1  0 22:55 ?        00:00:00 ora_p003_orcl
oracle     7827      1  0 22:55 ?        00:00:00 ora_p004_orcl
oracle     7829      1  0 22:55 ?        00:00:00 ora_p005_orcl
oracle     7831      1  0 22:55 ?        00:00:00 ora_p006_orcl
oracle     7833      1  0 22:55 ?        00:00:00 ora_p007_orcl
oracle     7835      1  0 22:55 ?        00:00:00 ora_p008_orcl
oracle     7837      1  0 22:55 ?        00:00:00 ora_p009_orcl
oracle     7839      1  0 22:55 ?        00:00:00 ora_p00a_orcl
oracle     7841      1  0 22:55 ?        00:00:00 ora_p00b_orcl
oracle     8021      1  0 22:55 ?        00:00:00 ora_w002_orcl
oracle     8023      1  0 22:55 ?        00:00:00 ora_m002_orcl
oracle     8069      1  0 22:55 ?        00:00:00 ora_w003_orcl
oracle     8075      1  0 22:55 ?        00:00:00 ora_w004_orcl
oracle     8079      1  0 22:55 ?        00:00:00 ora_qm02_orcl
oracle     8083      1  0 22:55 ?        00:00:00 ora_q002_orcl
oracle     8085      1  0 22:55 ?        00:00:00 ora_q003_orcl
oracle     8127      1  0 22:56 ?        00:00:00 ora_m003_orcl

再检查一下监听状态

[oracle@node3 response]$ /opt/oracleData/oracle19c/bin/lsnrctl status

最后进入oracle,执行一条sql,正常输出结果,而不是提示oracle未初始化就搭建成功了

[oracle@node3 response]$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Sat Apr 19 23:09:55 2025
Version 19.3.0.0.0Copyright (c) 1982, 2019, Oracle.  All rights reserved.Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0SQL> select status from v$instance;STATUS
------------
OPENSQL> 

对于19c,在这里要重点说一下,实例化用到的响应文件能自己写是因为templateName=General_Purpose.dbc指定了一个oracle自带的模板,只需要指定其他必须修改的东西就行,比如密码和字符集。所以不要自己上手去直接写监听的响应文件,当然你可以尝试对比11g的,或者网上自己找找研究一下监听能改哪些东西

在后期使用上如果你重启了系统,在使用oracle用户启动的时候保险起见加载一下用户级别的环境变量,因为我本地测试环境搭建的时候就遇到了一个每次启动切换到oracle用户的时候没有oracle数据库的环境变量了,很奇怪,大家搭建的时候注意一下有没有这个问题

至于oracle启动和关闭,已经一些需要知道的基本常识,见我之前写的11g搭建文档-》oracle 11g 搭建文档

相关文章:

linux oracle 19c 静默安装

oracle数据库有个比较很抓瞎的事情,不同的版本搭建的大致流程是一样的,但是在实操细节上会有不同,比如操作的脚本位置和配置项等等,这些会变,所以需要时常积累不同版本的文档 这里有一点要说明,之所以使用…...

中间件--ClickHouse-11--部署示例(Linux宿主机部署,Docker容器部署)

一、Linux宿主机部署 1、环境准备 操作系统:推荐使用 CentOS 7/8 或 Ubuntu 18.04/20.04。硬件要求: 至少 2 核 CPU 和 4GB 内存。足够的磁盘空间(根据数据量评估)。CPU需支持SSE4.2指令集(可通过以下命令检查&#…...

AI调试工具有哪些?

一、深度学习框架专用调试工具 TensorBoard • 功能:实时监控训练指标(损失值、准确率)、可视化神经网络结构、分析参数分布和梯度信息 • 适用框架:TensorFlow、PyTorch(通过插件) • 特点:支持…...

Warcraft Logs [Classic] [WCL] BOSS ID query

Warcraft Logs [Classic] [WCL] BOSS ID query 所有副本BOSSID查询 https://wowpedia.fandom.com/wiki/DungeonEncounterID#Retail IDNameMapInstanceIDPatch227High Interrogator GerstahnBlackrock Depths230228Lord RoccorBlackrock Depths230229Houndmaster GrebmarBlackro…...

MySQL——事务

一、什么是事务? 事务(Transaction) 是数据库操作的最小逻辑单元,它由一组不可分割的SQL操作组成。事务的核心目标是确保多个操作要么全部成功,要么全部失败,从而维护数据的完整性。例如,银行转…...

spring Ai---向量知识库(一)

在一些垂直领域以及公司内部信息相关或者实时性相关的大模型应用,就无法直接使用chatGPT。 这个时候,向量知识库就进入了。 通过坐标向量最接近的即为匹配相关答案。 向量模型定义:将文档向量化,保证内容越相似的文本,…...

MACOS 上的 快捷指令怎么用,有哪些分享资源可以用

一、快捷指令的基本概念与历史 快捷指令(Shortcuts)是苹果生态中的自动化工具,最初以第三方应用Workflow(2014年推出)的形式出现,2017年被苹果收购后更名为Shortcuts,并深度集成到iOS、iPadOS和macOS系统中。从macOS Mojave(10.14)开始,快捷指令正式登陆Mac平台,并…...

最长子序列长度(LIS)--个数遍历的二分+贪心优化

B3637 最长上升子序列 - 洛谷 #include<bits/stdc.h> #include<string> using namespace std; #define N 100011 typedef long long ll; typedef pair<int,int> pii; int n; int g[N]; int dp[N]; int ma0; int main() { cin>>n; memset(g,0x3f,sizeo…...

RenderStage::runCameraSetUp

文章目录 RTTosg::Camera::_bufferAttachmentMapRenderStage::BufferComponent和RenderStage::_bufferAttachmentMapCamera::attach(BufferComponent buffer, GLenum internalFormat)Camera::attach(BufferComponent buffer, osg::Texture* texture.....Camera::attach(BufferC…...

突破速率瓶颈:毫米波技术如何推动 5G 网络迈向极限?

突破速率瓶颈&#xff1a;毫米波技术如何推动 5G 网络迈向极限&#xff1f; 引言 5G 网络的普及&#xff0c;已经让我们告别了“加载中”时代&#xff0c;实现了更快的数据传输、更低的延迟和更高的设备连接密度。而在 5G 技术的核心中&#xff0c;毫米波&#xff08;mmWave&…...

前端面试真题集合(一)

一、Vue的响应式原理 Vue的响应式系统通过数据劫持和依赖追踪实现,核心流程如下: 数据劫持 • Vue 2.x:使用Object.defineProperty递归遍历数据对象,将属性转换为getter/setter,拦截属性的读取和修改操作。 • Vue 3.x:改用Proxy代理对象,支持动态属性添加和数组变化监听…...

聊聊Spring AI Alibaba的ElasticsearchDocumentReader

序 本文主要研究一下Spring AI Alibaba的ElasticsearchDocumentReader ElasticsearchDocumentReader community/document-readers/spring-ai-alibaba-starter-document-reader-elasticsearch/src/main/java/com/alibaba/cloud/ai/document/reader/es/ElasticsearchDocumentR…...

【网络技术_域名解析DNS】三、DNS 中间件实践应用与优化策略

一、DNS 中间件在典型行业的实践应用 1.1 金融行业&#xff1a;保障交易安全与服务稳定​ 金融行业对网络服务的安全性和稳定性要求极高&#xff0c;DNS 中间件在此领域发挥着不可替代的作用。以某银行线上支付系统为例&#xff0c;在 CentOS 7 环境下部署 DNS 中间件时&…...

Node.js 异步I/O与事件循环深度优化

Node.js 的核心魅力在于其异步、非阻塞I/O模型&#xff0c;这使得它在处理高并发、I/O密集型应用&#xff08;如Web服务器、API网关、实时通信服务&#xff09;时表现出色。然而&#xff0c;这种强大的能力并非凭空而来&#xff0c;它深深植根于其独特的**事件循环&#xff08;…...

npm 常用操作和配置

一、npm 核心操作 1. 初始化项目 npm init # 交互式创建 package.json npm init -y # 跳过提问&#xff0c;直接生成默认 package.json2. 安装依赖 npm install <package> # 安装包到本地 node_modules&#xff08;生产依赖&#xff09; npm in…...

嵌入式芯片中的 低功耗模式 内容细讲

电源域与运行级别概述 电源域&#xff08;Power Domain&#xff09; 核心域&#xff08;Core Domain&#xff09;&#xff1a;包括 CPU 核心和关键架构模块&#xff08;如 NVIC、CPU 内核寄存器&#xff09;。 外设域&#xff08;Peripheral Domain&#xff09;&#xff1a;…...

React-请勿在循环或者条件语句中使用hooks

这是React Hooks的首要规则&#xff0c;这是因为React Hooks 是以单向循环链表的形式存储&#xff0c;即是有序的。循环是为了从最后一个节点移到一个节点的时候&#xff0c;只需通过next一步就可以拿到第一个节点&#xff0c;而不需要一层层回溯。React Hooks的执行&#xff0…...

React-memo (useMemo, useCallback)

在react中&#xff0c;当我们setState之后&#xff0c;若值发生变化&#xff0c;则会重新render当前组件以及其子组件 (默认情况下)&#xff0c;在必要的时候&#xff0c;我可使用memo (class组件则对应shouldComponentUpdate、PureComponent)进行优化&#xff0c;来减少无效渲…...

点云数据处理开源C++方案

一、主流开源库对比 库名称特点适用场景开源协议活跃度PCL功能最全&#xff0c;算法丰富科研、工业级应用BSD★★★★★Open3D现代API&#xff0c;支持Python绑定快速开发、深度学习MIT★★★★☆CGAL计算几何算法强大网格处理、高级几何运算GPL/LGPL★★★☆☆PDAL专注于点云…...

android测试依赖

Android 项目中常用的测试相关库 1. androidx.arch.core:core-testing:2.2.0 作用&#xff1a; 提供与 Android Architecture Components&#xff08;如 LiveData、ViewModel&#xff09;相关的测试工具。主要用于测试基于 LiveData 的异步操作。 常见功能&#xff1a; 即时…...

Gradle与Idea整合

文章目录 1. Groovy 简介2. Groovy 安装[非必须]3. 在idea中创建java工程 1. Groovy 简介 在某种程度上&#xff0c;Groovy可以被视为Java的一种脚本化改良版,Groovy也是运行在JVM上&#xff0c;它可以很好地与Java代码及其相关库进行交互操作。它是一种成熟的面向对象编程语言…...

【数据结构】励志大厂版·初阶(复习+刷题)单链表

前引&#xff1a;此篇文章作为小编复习的记录&#xff0c;将快速回忆单链表的知识点&#xff0c;讲解单链表增删查找的实现&#xff0c;每个细节之处要注意的地方&#xff0c;解释为何这样设计。文章末尾包含了单链表算法题&#xff0c; 同样解释详细&#xff0c;借助题目再次巩…...

前端面试宝典---参数解构+默认值的面试题

重点要义 对于函数参数要解构&#xff0c;且参数有默认值的&#xff0c;一律用Object.assign的思路去合并参。 看不懂这句话没关系&#xff0c;看下面的例子\ 例子1 function fn ({ x 1, y } { y: 10 }) {console.log(x, y) } fn() // 1 10没有传递实参&#xff0c;你就把{ …...

【开发心得】筑梦上海:项目风云录(16)

目录 代码反面案例 李青与诺基亚的兴衰 并行项目下的利益纠葛与团队协作 未完待续。。。 今天分享的是一个反面案例&#xff0c;也算是一个避坑指南了。 代码反面案例 今天分享的代码是一个反面案例&#xff0c;当时由于项目人员变动频繁&#xff0c;经常是新人看不太懂旧…...

Neovim插件深度解析:mcphub.nvim如何用MCP协议重构开发体验

在AI与工具链深度融合的今天,Neovim 作为现代开发者的生产力工具,正通过插件生态不断突破边界。mcphub.nvim 作为一款基于 MCP(Model Context Protocol) 协议的插件,重新定义了Neovim与智能工具的交互方式。它不仅简化了MCP服务器的集成与管理,更通过直观的UI和生态整合,…...

Qt UDP 通信的详细实现步骤和示例代码

在 Qt 中实现 UDP 通信主要使用 QUdpSocket 类。以下是 UDP 通信的详细实现步骤和示例代码&#xff1a; 一、UDP 通信基础 无连接协议&#xff1a;不需要建立持久连接数据报模式&#xff1a;以独立数据包&#xff08;datagram&#xff09;形式发送适用场景&#xff1a;实时性要…...

(二)Trae 配置C++ 编译

Trae配置c编译 零 CMake 编译C0.1 下载安装0.2 安装设置0.3 三种编译方式(见 下文 一 二 三)0.4 调试 (见 下文四) 一 使用MSVC方式编译1.1 安装编译环境1.2安装插件1.3 设置文件 二 使用GCC方式2.1 安装编译环境2.1.1下载:[MinGw](https://gcc-mcf.lhmouse.com/)2.1.2安装:(以…...

动态规划算法的欢乐密码(一):斐波那契数模型

专栏&#xff1a;算法的魔法世界 个人主页&#xff1a;手握风云 目录 一、动态规划 二、例题讲解 2.1. 第 N 个泰波那契数 2.2. 三步问题 2.3. 使用最小花费爬楼梯 2.4. 解码方法 一、动态规划 动态规划是一种将复杂问题分解为更小的子问题&#xff0c;并利用子问题的解来…...

【FreeRTOS进阶】优先级翻转现象详解及解决方案

【FreeRTOS进阶】优先级翻转现象详解及解决方案 接下来我们聊聊优先级翻转这个经典问题。这个问题在实时系统中经常出现&#xff0c;尤其是在任务较多的场景下&#xff0c;而且问题定位起来比较麻烦。 什么是优先级翻转&#xff1f; 优先级翻转的核心定义很简单&#xff1a;…...

解决 IntelliJ IDEA 项目启动时端口冲突问题

1.问题 Description: The Tomcat connector configured to listen on port 8082 failed to start. The port may already be in use or the connector may be misconfigured. Action: Verify the connectors configuration, identify and stop any process thats listening…...

笔试专题(十一)

文章目录 添加字符&#xff08;暴力枚举&#xff09;题解代码 城市群数量&#xff08;dfs&#xff09;题解代码 判断是不是平衡二叉树&#xff08;递归&#xff09;题解代码 最大子矩阵&#xff08;二维前缀和&#xff09;题解代码 小葱的01串 &#xff08;固定区间大小的滑动窗…...

C++11新增语法:列表初始化

前言&#xff1a; 接下来我们将要讲解&#xff0c;相较于c98&#xff0c;c11中新增的语法以及如何使用~。我们首先来讲解&#xff1a;列表初始化。 下文预告&#xff1a;右值引用和移动语义 C98中传统的{} 在c98中的{}&#xff0c;仅能初始化数组和结构体 #include<iostrea…...

Linux:基础IO---动静态库

文章目录 1. 动静态库前置知识1.1 动静态库知识回顾1.2 什么是动静态库 2. 动静态库2.1 站在库的制作者的角度2.2 站在库的使用者的角度2.3 动态库是怎么被加载的&#xff08;原理&#xff09; 序&#xff1a;上一篇文章我们从认识到理解&#xff0c;从理解到实现场景&#xff…...

从裸仓库到GitLab全解析

Git服务器搭建与使用指南&#xff1a;从裸仓库到GitLab全解析 前言 在团队协作开发中&#xff0c;版本控制系统是必不可少的工具。虽然GitHub提供了优秀的代码托管服务&#xff0c;但企业级项目往往需要更安全的私有化部署方案。本文将手把手教你两种主流的Git服务器搭建方式…...

OzGIS:地理信息分析与处理软件

大家好&#xff0c;今天为大家介绍的软件是OzGIS&#xff1a;一款地理信息分析与处理软件。下面&#xff0c;我们将从软件的主要功能、支持的系统、软件官网等方面对其进行简单的介绍。 OzGIS官网网址为&#xff1a;https://ozgis.sourceforge.io/。 OzGIS是一款开源软件&#…...

PHP异常处理__Throwable

在 PHP 里&#xff0c;Throwable 是一个极为关键的接口&#xff0c;自 PHP 7 起被引入。它为错误和异常处理构建了一个统一的框架。下面会详细介绍 Throwable 的相关内容。 1. 基本概念 Throwable 是 Exception 和 Error 的父接口。在 PHP 7 之前&#xff0c;异常&#xff08…...

PHP异常处理__Exception类

以下是对 PHP 中 Exception 类的详细解释&#xff1a; 一、Exception 类概述 Exception 是 PHP 中所有异常类的基类。它提供了一个通用的异常处理机制&#xff0c;用于处理程序执行过程中可能出现的错误情况。当程序中出现异常时&#xff0c;可以创建 Exception 的实例并将其…...

C++中动态多态类别浅析

非抽象类继承和虚函数 #include <iostream> using namespace std;class Base { public:virtual void func() { // 虚函数&#xff0c;支持动态绑定cout << "Base::func()" << endl;} };class Derived : public Base { public:void func() overrid…...

游戏引擎学习第234天:实现基数排序

回顾并为今天的内容设定背景 我们今天继续进行排序的相关&#xff0c;虽然基本已经完成了&#xff0c;但还是想收尾一下&#xff0c;让整个流程更完整。其实这次排序只是个借口&#xff0c;主要是想顺便聊一聊一些计算机科学的知识点&#xff0c;这些内容在我们项目中平时不会…...

系分架构论文《论高并发场景的架构设计和开发方法》

系统分析师论文范文系列 【摘要】 2022年8月&#xff0c;我司承接了某知名电商平台“秒杀系统架构优化”项目&#xff0c;我作为系统分析师主导了整体架构设计与技术选型工作。该平台在促销活动中面临瞬时流量超过50万QPS的挑战&#xff0c;原有架构存在数据库崩溃、服务响应延…...

最新得物小程序sign签名加密,请求参数解密,响应数据解密逆向分析

点击精选&#xff0c;出现https://app.dewu.com/api/v1/h5/index/fire/index 这个请求 直接搜索sign的话不容易定位 直接搜newAdvForH5就一个&#xff0c;进去再搜sign&#xff0c;打上断点 可以看到t.params就是没有sign的请求参数&#xff0c; 经过Object(a.default)该函数…...

jangow靶机笔记(Vulnhub)

环境准备&#xff1a; 靶机下载地址&#xff1a; https://download.vulnhub.com/jangow/jangow-01-1.0.1.ova kali地址&#xff1a;192.168.144.128 靶机&#xff08;jangow&#xff09;地址&#xff1a;192.168.144.180 一.信息收集 1.主机探测 使用arp-scan进行主机探…...

Spring Boot + Caffeine:打造高性能缓存解决方案

1. 引言 1.1 缓存的重要性 缓存是提升系统性能的关键技术之一,通过将频繁访问的数据存储在内存中,减少对数据库或其他外部系统的访问次数,从而降低延迟并提高吞吐量。 缓存的基本概念:缓存是一种临时存储机制,用于快速访问常用数据。缓存在提升系统性能中的作用:减少数…...

C++入门小馆: 深入string类

嘿&#xff0c;各位技术潮人&#xff01;好久不见甚是想念。生活就像一场奇妙冒险&#xff0c;而编程就是那把超酷的万能钥匙。此刻&#xff0c;阳光洒在键盘上&#xff0c;灵感在指尖跳跃&#xff0c;让我们抛开一切束缚&#xff0c;给平淡日子加点料&#xff0c;注入满满的pa…...

命令行基础

学习目标 掌握VRP命令行的基础知识 利用VRP命令行进行基本的配置 VRP命令行的基础知识 一、VRP 命令行基本架构 1. 用户视图&#xff08;User View&#xff09; 进入方式&#xff1a;设备启动后默认进入&#xff0c;提示符为 &#xff1c;HUAWEI&#xff1e;。功能&#…...

10-DevOps-Jenkins参数化构建实现多版本发布

在之前的Jenkins配置中&#xff0c;固定写死了程序的版本号&#xff0c;实际情况是随着版本的不断迭代&#xff0c;版本号也是不断变化的&#xff0c;版本号由代码仓库&#xff08;GitLab&#xff09;设置。 当前Jenkins配置是固定写的1.0&#xff0c;本节我们要把它改成动态的…...

C++游戏服务器开发之⑦redis的使用

目录 1.当前进度 2.守护进程 3.进程监控 4.玩家姓名添加文件 5.文件删除玩家姓名 6.redis安装 7.redis存取命令 8.redis链表存取 9.redis程序结构 10.hiredisAPI使用 11.基于redis查找玩家姓名 12.MAKEFILE编写 13.游戏业务实现总结 1.当前进度 2.守护进程 3.进程监…...

二进制裁剪命令mips-linux-gnu-strip 命令的使用

-s 或者--strip-all:移除所有符号和调试信息 -g 或者--strip-debug:仅移除调试信息 -d 或者--strip-unneeded:移除不需要的符号 默认不传任何参数 也是移除所有符号和调试 应用:把文件系统所有二进制镜像使用一遍,缩小文件系统大小 79K Apr 19 15:47 fat.ko //使用前 mips-l…...

【Bluedroid】蓝牙存储模块配置管理:启动、读写、加密与保存流程解析

本文围绕蓝牙存储模块展开&#xff0c;主要解析了蓝牙存储模块&#xff08;StorageModule&#xff09;的初始化流程&#xff0c;重点围绕配置文件校验、读取、设备类型修复及加密处理展开。通过工厂重置检测、校验和验证、多源配置加载、设备类型推断修正等步骤&#xff0c;确保…...

SpringBoot启动后初始化的几种方式

目录 一、静态代码块 二、构造方法 三、PostConstruct 四、InitializingBean 接口 五、 Bean 注解中的 initMethod 六、 CommandLineRunner 接口 七、ApplicationRunner 接口 八、EventListener事件 九、SmartInitializingSingleton接口 十、ApplicationListener接口…...