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

《Oracle服务进程精准管控指南:23c/11g双版本内存优化实战》 ——附自动化脚本开发全攻略

正在学习或者是使用 Oracle 数据库的小伙伴,是不是对于那个一直启动且及其占用内存的后台进程感到烦躁呢?而且即使是手动去开关也显得即为麻烦,所以基于我之前所学习到的方法,我在此重新整理,让大家动动手指就能完成开关。

先看看这里嗷 ヾ(≧▽≦*)o , 本文技术验证环境:

操作系统:Windows 11

数据库版本:Oracle 23c

一、Oracle 服务进程精准定位与识别

1. 双通道定位技法

1.1 命令行直达:services.msc 快速调用指南

通过 Windows 原生指令实现服务矩阵精准定位

  1. 按下 Win + R 组合键打开运行框

image-20250327213904337

  1. 输入命令:services.msc,并按回车键

image-20250327214009184

  1. 打开的系统服务管理器如下图所示:

image-20250327214035047


1.2 图形化捷径:Win+X 高效访问路径

可视化操作三步骤直达服务管理中心

  1. 按下 Win + X 组合键打开快捷选项

image-20250327214206172

  1. 点击打开计算机管理

image-20250327214342726

  1. 点击打开服务和应用程序下的服务

image-20250327214419478

  1. 打开的系统服务管理器如下图所示:

image-20250327214511634


2. 多版本服务组件图谱解析

2.1 版本差异对比(23c vs 11g)

不同版本服务组件的功能映射关系

通过服务命名规则与功能映射实现跨版本识别

注:带■标记的为必启核心服务

Oracle 23c 服务架构
■ OracleServiceFREE        ▸ 功能:数据库实例管理引擎  ▸ 作用:内存分配/进程调度/日志维护  ■ OracleOraDB23Home1TNSListener  ▸ 功能:分布式通信监听器  ▸ 协议:TCP/IP+SSL双栈支持  ○ OracleJobSchedulerFREE  ▸ 功能:自动化任务调度平台  ▸ 触发:DBMS_SCHEDULER内置包  ○ OracleVssWriterFREE  ▸ 功能:卷影拷贝服务集成  ▸ 场景:在线热备份支持

image-20250327224356879

Oracle 11g 服务架构
■ OracleServiceORCL  ▸ 功能:实例生命周期管理  ▸ 特性:SGA/PGA自动优化  ■ OracleOraDb11g_home2TNSListener  ▸ 功能:传统监听服务  ▸ 限制:仅支持TCP/IP协议  ○ OracleDBConsoleorcl  ▸ 功能:Web控制台服务  ▸ 访问:http://localhost:1158/em  ○ OracleJobSchedulerORCL  ▸ 功能:基础任务调度器  ▸ 依赖:Oracle Scheduler架构  ○ Oracle ORCLVSSWriterService  ▸ 功能:卷影拷贝兼容层  ▸ 注意:需Windows VSS服务协同  ● OracleOraDb11g_home2ClrAgent  ▸ 功能:CLR集成运行时  ▸ 版本:.NET Framework 3.5+  ● OracleRemExecService  ▸ 特性:瞬时安装辅助服务  ▸ 状态:安装完成后自动禁用

Oracle11g - 副本


二、Oracle 核心服务启停管理实战

1. 关键服务组件深度解码

  • OracleServiceXX:数据库实例的"心脏引擎"
  • TNSListener:网络通信的"智能网关"

如同我们展示的两个版本的 Oracle 进程,主要功能都是相同的。

对于初学者来说,如果没有特殊需求,其实只需要启动 2 个进程OracleServiceXXOracleOraDBXXHome1TNSListener),其他进程关闭即可,否则会占用大量内存空间。

为什么只需要这两个进程就够了呢?

  • OracleServiceXX(必须启动)
    该服务是数据库实例的核心管理者,负责启动/停止数据库、分配系统资源(如内存、进程)以及维护数据文件和日志文件的完整性。

    • 必要性:若未启动此服务,数据库将无法运行,且会触发 ORA-12560: TNS: 协议适配器错误

    • 资源占用:作为基础服务,其内存和CPU占用相对可控,且是其他功能的前提条件。

  • OracleOraDBXXHome1TNSListener(按需启动)
    该服务是网络监听器,负责接收客户端连接请求(包括本地和远程)。

    • 必要性
      • 本地连接:即使未启动此服务,仍可通过 SQL*Plus 等工具直接连接本地数据库(需配置 LISTENER.ORA 或使用 EZCONNECT 语法)。
      • 远程连接:若需通过 PL/SQL Developer 或其他第三方工具远程访问数据库,则必须启动此服务,否则会触发 ORA-12541: TNS: 无监听器
    • 资源占用:仅在有连接需求时才会消耗资源,关闭后对本地操作无影响。
远程访问
仅本地操作
是否需要数据库基础功能
启动OracleServiceXX
关闭所有服务
需要网络通信
启动TNSListener
保持监听器关闭

2. 服务配置优化三部曲

通过系统服务属性实现永久性配置

修改步骤:

  1. 鼠标右键进程
  2. 在打开的窗口中点击属性
  3. 修改启动类型

注:将必要的两个进程(核心进程和监听进程)修改为手动,其他均为禁用。

  • 手动:电脑启动后将不会再自启动从而占用内存,但需要在使用前手动打开

PixPin_2025-03-27_23-06-05

启动和关闭步骤:

  1. 鼠标右键进程
  2. 启动时点击启动;关闭时点击停止

PixPin_2025-03-27_23-12-18


三、自动化运维脚本开发

如果经常操作数据库,上面的手动启动和关闭依然很是麻烦,所以我们可以编写脚本简化操作,只需要双击即可。

1. 23c 版自动化脚本工程

实现一键式服务管理的完整方案

1.1 服务启动脚本

带权限提升的自动化执行方案

:: 取得管理员权限
:Main
@echo off
cd /d "%~dp0"
:: 原始检测方法
:: cacls.exe "%SystemDrive%\System Volume Information" >nul 2>nul
:: 无弹窗方法
fltmc >nul 2>nul || goto Admin
if %errorlevel%==0 goto Admin
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
echo Set RequestUAC = CreateObject^("Shell.Application"^)>"%temp%\getadmin.vbs"
echo RequestUAC.ShellExecute "%~s0","","","runas",1 >>"%temp%\getadmin.vbs"
echo WScript.Quit >>"%temp%\getadmin.vbs"
"%temp%\getadmin.vbs" /f
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
exit
:Admin:: 手动启动 oracle 服务,因安装环境不同,需将下列服务名称替换成自己的
net start "OracleServiceFREE"
net start "OracleOraDB23Home1TNSListener":: 添加账号密码提示(使用醒目格式)
echo.
echo **************************************
echo user/password:  scott/tiger
echo **************************************
echo.:: 如果需要使用控制台服务,将下面这行前面的 :: 删掉,并将服务名称替换成自己的
:: net start "OracleDBConsoleorcl"
pause

演示过程

在这里插入图片描述


1.2 服务终止脚本

安全关闭服务的标准化流程

:: 取得管理员权限
:Main
@echo off
cd /d "%~dp0"
:: 原始检测方法
:: cacls.exe "%SystemDrive%\System Volume Information" >nul 2>nul
:: 无弹窗方法
fltmc >nul 2>nul || goto Admin
if %errorlevel%==0 goto Admin
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
echo Set RequestUAC = CreateObject^("Shell.Application"^)>"%temp%\getadmin.vbs"
echo RequestUAC.ShellExecute "%~s0","","","runas",1 >>"%temp%\getadmin.vbs"
echo WScript.Quit >>"%temp%\getadmin.vbs"
"%temp%\getadmin.vbs" /f
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
exit
:Admin:: 手动关闭服务,需将下列服务名称替换成自己的
net stop "OracleServiceFREE"
net stop "OracleOraDB23Home1TNSListener":: 操作完成提示(使用醒目格式)
echo.
echo **************************************
echo   The service has been successfully shut down!
echo **************************************
echo.:: 如果需要关闭控制台服务,将下面这行前面的 :: 删掉,并替换服务名称
:: net stop "OracleDBConsoleorcl"
pause

演示过程

在这里插入图片描述


2. 11g 版兼容性改造方案

向下兼容的脚本改造指南

2.1 服务启动脚本

:: 取得管理员权限
:Main
@echo off
cd /d "%~dp0"
:: 原始检测方法
:: cacls.exe "%SystemDrive%\System Volume Information" >nul 2>nul
:: 无弹窗方法
fltmc >nul 2>nul || goto Admin
if %errorlevel%==0 goto Admin
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
echo Set RequestUAC = CreateObject^("Shell.Application"^)>"%temp%\getadmin.vbs"
echo RequestUAC.ShellExecute "%~s0","","","runas",1 >>"%temp%\getadmin.vbs"
echo WScript.Quit >>"%temp%\getadmin.vbs"
"%temp%\getadmin.vbs" /f
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
exit
:Admin:: 手动启动 oracle 服务,因安装环境不同,需将下列服务名称替换成自己的
net start "OracleServiceORCL"
net start "OracleOraDb11g_home2TNSListener":: 添加账号密码提示(使用醒目格式)
echo.
echo **************************************
echo user/password:  scott/tiger
echo **************************************
echo.:: 如果需要使用控制台服务,将下面这行前面的 :: 删掉,并将服务名称替换成自己的
:: net start "OracleDBConsoleorcl"
pause

2.2 服务终止脚本

:: 取得管理员权限
:Main
@echo off
cd /d "%~dp0"
:: 原始检测方法
:: cacls.exe "%SystemDrive%\System Volume Information" >nul 2>nul
:: 无弹窗方法
fltmc >nul 2>nul || goto Admin
if %errorlevel%==0 goto Admin
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
echo Set RequestUAC = CreateObject^("Shell.Application"^)>"%temp%\getadmin.vbs"
echo RequestUAC.ShellExecute "%~s0","","","runas",1 >>"%temp%\getadmin.vbs"
echo WScript.Quit >>"%temp%\getadmin.vbs"
"%temp%\getadmin.vbs" /f
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
exit
:Admin:: 手动关闭服务,需将下列服务名称替换成自己的
net stop "OracleServiceORCL"
net stop "OracleOraDb11g_home2TNSListener":: 操作完成提示(使用醒目格式)
echo.
echo **************************************
echo   The service has been successfully shut down!
echo **************************************
echo.:: 如果需要关闭控制台服务,将下面这行前面的 :: 删掉,并替换服务名称
:: net stop "OracleDBConsoleorcl"
pause

3. 通用脚本开发原则

如果你仔细观察代码,就会发现,这个脚本区别只在于你的 Oracle 版本:

image-20250327231952646

至于这两个怎么查找?其实就是之前所说的必要启动进程:

将这个了进程名称复制粘贴过去即可

image-20250327232122577


本文在创作过程中采用智能化技术辅助工具:

  • 腾讯元宝:用于技术术语标准化验证
  • DeepSeek:实施操作流程拓扑检查

由于本人电脑装的是 Oracle 23 ,在这里感谢某位同学的辛苦付出,为我截了一张 Oracle 11g 的进程截图。ヾ(≧▽≦*)o


📣 我是鸿·蒙,若有不解之处或发现疏漏,欢迎随时私信交流!
(虽然不一定秒回,但每条消息都会认真看嗷~ (๑•̀ㅂ•́)و✧)

相关文章:

《Oracle服务进程精准管控指南:23c/11g双版本内存优化实战》 ——附自动化脚本开发全攻略

正在学习或者是使用 Oracle 数据库的小伙伴,是不是对于那个一直启动且及其占用内存的后台进程感到烦躁呢?而且即使是手动去开关也显得即为麻烦,所以基于我之前所学习到的方法,我在此重新整理,让大家动动手指就能完成开…...

Java单列集合[Collection]

目录 1.Collection单列集合 1.1单列集合各集合特点 1.2、Collection集合 1.2.1、Collection方法 1.2.2、Collection遍历方式 1.2.2.1、迭代器遍历集合 1.2.2.2、增强for遍历集合 1.2.2.3、forEach遍历集合(JDK8之后) 1.2.2.4、遍历案例 1.3、Li…...

【C++重点】lambda表达式是什么

Lambda 表达式是 C11 引入的特性,它允许你定义匿名函数对象(即没有名字的函数)。Lambda 表达式可以在需要函数对象的地方直接定义函数,常用于 STL 算法和回调机制中。 lambda表达式基本语法 [捕获列表](参数列表) -> 返回类型…...

如何在ONLYOFFICE插件中添加自定义AI提供商:以通义千问和Kimi为例

随着 ONLYOFFICE AI 插件的发布,我们极大地提升了编辑器的默认功能。在ONLYOFFICE,我们致力于提供强大且灵活的解决方案,以满足您的特定需求。其中一项便是能够在 AI 插件中添加自定义提供商。在这篇文章中,我们将展示如何将通义千…...

Java基础-26-多态-认识多态

在Java编程中,多态(Polymorphism) 是面向对象编程的核心概念之一。通过多态,我们可以编写更加灵活、可扩展的代码。本文将详细介绍什么是多态、如何实现多态,并通过具体的例子来帮助你更好地理解这一重要概念。 一、什…...

Spark,配置hadoop集群1

配置运行任务的历史服务器 1.配置mapred-site.xml 在hadoop的安装目录下&#xff0c;打开mapred-site.xml&#xff0c;并在该文件里面增加如下两条配置。 eg我的是在hadoop199上 <!-- 历史服务器端地址 --> <property><name>mapreduce.jobhistory.address…...

【蓝桥杯算法练习】205. 反转字符串中的字符(含思路 + Python / C++ / Java代码)

【蓝桥杯算法练习】205. 反转字符串中的字符&#xff08;含思路 Python / C / Java代码&#xff09; &#x1f9e9; 题目描述 给定一个字符串 s&#xff0c;请你将字符串中的 英文字母字符反转&#xff0c;但其他 非字母字符保持在原位置&#xff0c;输出处理后的字符串。 …...

FPGA实现4K MIPI视频解码H265压缩网络推流输出,基于IMX317+VCU架构,支持4K60帧,提供工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目我这里已有的 MIPI 编解码方案我这里已有的视频图像编解码方案 3、详细设计方案设计框图FPGA开发板IMX317摄像头MIPI D-PHYMIPI CSI-2 RX Subsystem图像预处理Sensor …...

【Linux】网络概念

目录 网络模型 OSI七层模型 TCP/IP五层(或四层)模型 网络传输 网络传输基本流程 封装与分用 以太网通信&#xff08;局域网传输&#xff09; 跨网络传输 网络模型 OSI七层模型 TCP/IP五层(或四层)模型 网络层和传输层就是操作系统的一部分 网络传输 网络传输基本流程…...

【模拟CMOS集成电路设计】电荷泵(Charge bump)设计与仿真(示例:栅极开关CP+轨到轨输入运放+基于运放CP)

【模拟CMOS集成电路设计】电荷泵&#xff08;Charge bump&#xff09;设计与仿真 0前言1电荷泵1.1 PFD/CP/电容器级联1.2 PFD/CP/电容传递函数 2基本电荷泵(CP)结构2.1“漏极开关”结构2.2“源极开关”结构2.3“栅极开关”结构 3 CP的设计与仿真13.1 P/N电流源失配仿真3.2 电荷…...

minecraft.service 文件配置

minecraft.service 文件配置 # /etc/systemd/system/minecraft.service [Unit] DescriptionMinecraft Fabric Server Afternetwork.target Wantsnetwork-online.target[Service] Usermcfabricuser Groupmcfabricuser WorkingDirectory/minecraft/1.21.1-fabric-server ExecStar…...

Kafka消息丢失全解析!原因、预防与解决方案

作为一名高并发系统开发工程师&#xff0c;在使用消息中间件的过程中&#xff0c;无法避免遇到系统中消息丢失的问题&#xff0c;而Kafka作为主流的消息队列系统&#xff0c;消息丢失问题尤为常见。 在这篇文章中&#xff0c;将深入浅出地分析Kafka消息丢失的各种情况&#xf…...

VS Code 云服务器远程开发完整指南

VS Code Ubuntu 云服务器远程开发完整指南 远程开发是现代开发者的标配之一&#xff0c;特别是在使用云服务器&#xff08;如 Ubuntu&#xff09;进行部署、测试或大项目开发时&#xff0c;利用 VS Code 的 Remote-SSH 插件&#xff0c;可以像本地一样顺滑操作远程服务器。本…...

Linux孤儿进程和僵尸进程

目录 1、孤儿进程 2、僵尸进程 在 Linux 系统中&#xff0c;父子进程关系的生命周期不同&#xff0c;导致会产生两类特殊进程&#xff1a;孤儿进程和僵尸进程。这两类进程在系统资源管理中起着重要作用。 1、孤儿进程 孤儿进程指的是父进程先于子进程结束&#xff0c;导致子…...

【Rtklib入门指南】4. 使用RTKLIB进行载波相位差分定位(RTK)

RTK RTK&#xff08;Real-Time Kinematic&#xff0c;实时动态&#xff09;定位技术是一种高精度的卫星导航技术。相比传统的GPS定位技术&#xff0c;RTK能够在厘米级别的精度范围内提供定位结果。这使得RTK技术在无人机、自动驾驶、工程测绘、农业机械自动化等领域具有广泛应用…...

【SECS】初识SECS协议

【SECS】初识SECS协议 基本知识流和功能函数数量官方文件中缩写标注正常是不是都是主机向设备端?对数据信息中第1字节第1-2位官网介绍 S1F1双向指令说明测试H发起端E发起端 参考资料 基本知识 SECS&#xff08;SEMI Equipment Communications Standard&#xff09;即半导体设…...

【C++项目】从零实现RPC框架「三」:项⽬抽象层实现

🌈 个人主页:Zfox_ 🔥 系列专栏:C++从入门到精通 目录 一:🔥 常⽤的零碎功能接⼝类实现🦋 简单⽇志宏实现🦋 Json 序列化/反序列化🦋 UUID ⽣成二:🔥 项⽬消息类型字段信息定义 🦋 请求字段宏定义🦋 消息类型定义🦋 响应码类型定义🦋 RPC 请求类型定…...

webcam video demo

一个 demo&#xff0c;使用 OpenCV&#xff0c;手动操作 webcam&#xff0c;保持相机打开&#xff0c;防止频繁的 开关损坏摄像头硬件。 这是ROS情景下的一个节点&#xff0c;展示了ROS节点的常见格式。代码很简单&#xff0c;单展示了持续视频流的发布&#xff0c;还展示了基…...

ARM-LDS链接文件

关键字 ALIGN 在链接脚本中&#xff0c;ALIGN关键字&#xff1a;ALIGN(X)中的X表示多少个字节对齐。 在汇编文件中&#xff0c;是伪操作 .align x 实现的&#xff1a;表示2的x次幂个字节对齐&#xff1b; 2.X的取值也是有讲究的&#xff0c;必须是2的整数次幂。例如&#xf…...

相机镜头景深

文章目录 定义影响因素实际应用特殊情况 参考&#xff1a;B站优致谱视觉 定义 景深是指在摄影机镜头或其他成像器前沿着能够取得清晰图像的成像器轴线所测定的物体距离范围。简单来说&#xff0c;就是在一张照片中&#xff0c;从前景到背景&#xff0c;能够保持清晰锐利的区域…...

Linux基础入门:从零开始掌握Linux命令行操作

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 &#x1f388;有没有觉得电影里的黑客&#x1f412;酷毙了&#xff1f;他们只用键盘⌨就能搞定一切。今天&#xff0c;毛毛张要带你们体验这种快感&#x1f600;&…...

C++第13届蓝桥杯省b组习题笔记

1.九进制转十进制 九进制正整数 (2022)9转换成十进制等于多少&#xff1f; 第一位乘9的0次方&#xff0c;第二位乘9的1次方&#xff0c;第三位乘9的二次方以此类推 #include <iostream> using namespace std;int main() {// 请在此输入您的代码int t2022;int res0;int c…...

探索 Gaggol:理解 10^^^100 的宇宙级常数

一、常数概述&#xff1a; Gaggol 是一个极其巨大的数学常数&#xff0c;其数值表示为 10^^^100。这个常数是通过对数字 10 进行超递归幂运算得到的结果。 二、Gaggol 的定义&#xff1a; Gaggol 被定义为 10 的超多层超递归幂&#xff0c;即 10 被连续地提升到自身幂的层次达…...

python-leetcode 61.N皇后

题目&#xff1a; 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击 给你一个整数 n &#xff0c;返回所有不同的 n 皇后问题 的解…...

Centos8 系統Lnmp服務器環境搭建

Centos8 系統Lnmp服務器環境搭建 服務器環境 Centos8 [rootcentos8 ~]# uname -a Linux centos8 4.18.0-348.el8.x86_64 #1 SMP Tue Oct 19 15:14:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux# 更新軟件包列表 rootdebian:~# dnf update安裝信息 PHP 版本8.2.27 https://ww…...

产教融合|暴雨技术专家执裁江苏省职业院校技能大赛

3月28-30日&#xff0c;由江苏省教育厅、省发改委、省工信厅等15家单位主办的2025年江苏省职业院校技能大赛网络系统管理赛项如期举办。此次赛事吸引了全省52支参赛队伍、156名选手踊跃参与&#xff0c;参赛人数再创新高。 暴雨信息技术专家李明宇作为此赛项的往届省赛冠军&am…...

BUUCTF-web刷题篇(6)

15.PHP 知识点&#xff1a; ①__wakeup()//将在反序列化之后立即调用&#xff08;当反序列化时变量个数与实际不符是会绕过&#xff09;我们可以通过一个cve来绕过:CVE-2016-7124。将Object中表示数量的字段改成比实际字段大的值即可绕过wakeup函数。条件&#xff1a;PHP5<…...

AIP-203 域行为文档

编号203原文链接AIP-203: Field behavior documentation状态批准创建日期2018-07-17更新日期2018-07-17 在定义protocol buffer中的域时&#xff0c;按惯例要向用户解释域行为的某些方面&#xff08;例如域是必需的还是可选的&#xff09;。此外&#xff0c;让其他工具理解域行…...

在 Cloud Run 上使用 Gemini API 构建聊天应用

李升伟 编译 (&#x1f3a8; 封面由 Gemini 中的 Imagen 3 生成&#xff01;) 欢迎来到我的谷歌AI工具构建系列博客&#xff01;本文将带您创建一个由Gemini驱动并托管在Cloud Run上的简易聊天应用。如果您正在探索大语言模型或希望将AI集成到网页应用中&#xff0c;那么您来…...

周总结aa

上周学习了Java中有关字符串的内容&#xff0c;与其有关的类和方法 学习了static表示静态的相关方法和类的使用。 学习了继承(extends) 多态&#xff08;有继承关系&#xff0c;有父类引用指向子类对象&#xff09; 有关包的知识&#xff0c;final关键字的使用&#xff0c;及有…...