专栏首页浩Coding解决oracle服务占用内存过高的问题

解决oracle服务占用内存过高的问题

方法一:修改Oracle最大占用内存

通常我们在自己电脑上搭建项目环境时,都免不了要安装Oracle。不管你硬件多强悍,都会发现,Oracle服务一旦启用,内存立马吃紧。笔者内存8G,启动一个VS,启动一个Eclipse,启动一个虚拟机,开一个Tomcat,再开一个PL/SQL,内存基本就耗去了一大半。再启用Oracle服务,内存马上飙升五六百兆,程序便会频繁出现假死。

其实这是因为安装Oracle时,为了均衡电脑性能和数据库性能,默认内存大小为物理内存的1/8,自身内存比较大时,oracle所占的内存也会变大。而通常,我们自己的环境并不需要分配那么大的内存来支持Oracle,这种情况下,我们可以通过修改sga值来减少系统中oracle占用内存过大问题。

用dba身份进入oracle,本人使用sqlplus修改(sqlplus sys/密码 as sysdba),若使用PL/SQL,可以在Command Window执行:

(1)show parameter sga; --显示内存分配情况

(2)alter system set sga_max_size=200m scope=spfile; --修改占用内存的大小

修改后重启Oracle服务,再查看资源管理器,Oracle占用资源便会降至200M以下。不过如此修改所付出的代价就是数据库性能的下降,因此修改时不宜调得太小。

方法二:不用时关闭Oracle服务

Oracle启动之后占用了大量内存。所以解决这个问题就是关闭oracle的一些开机启动服务就可以。等你用oracle的时候在手动开启就可以了。下面我们就一起来具体看一下如何去关闭和开启oracle服务程序

一:右击我的电脑—》服务,找到如下的几个服务程序:

把上面几个服务程序通通关闭。然后设置启动方式为手动启动。如果你想用oracle的时候在启动这几个服务就可以了。

二:利用脚本的形式关闭和打开服务

建立“打开或关闭oracle服务.bat”,添加如下代码:

@echo off
title Oracle服务管理
cls
color 2f
goto MENU
:MENU
cls
echo. =-=-=-=-=Oracle服务管理=-=-=-=-=
echo.
echo. 1 开启服务
echo.
echo. 2 关闭服务
echo.
echo. 3 退 出
echo.
echo. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
echo. 请输入选择项目的序号:
set /p ID=
if "%id%"=="1" goto cmd1
if "%id%"=="2" goto cmd2
if "%id%"=="3" exit
echo 请输入正确序号!&ping -n 2 127.1>nul&goto MENU
:cmd1
echo.
echo 开启Oracle服务中...
net start|findstr /i /c:"OracleDBConsoleorcl">nul&&set k=1||set k=0
if %k%==0 (net start "OracleDBConsoleorcl")
net start|findstr /i /c:"OracleOraDb10g_home1iSQL*Plus">nul&&set k=1||set k=0
if %k%==0 (net start "OracleOraDb10g_home1iSQL*Plus")
net start|findstr /i /c:"OracleOraDb10g_home1TNSListener">nul&&set k=1||set k=0
if %k%==0 (net start "OracleOraDb10g_home1TNSListener")
net start|findstr /i /c:"OracleServiceORCL">nul&&set k=1||set k=0
if %k%==0 (net start "OracleServiceORCL")
echo.
echo Oracle服务已经成功开启...
echo.
pause
exit
:cmd2
echo.
echo 关闭Oracle服务中...
net start|findstr /i /c:"OracleDBConsoleorcl">nul&&set k=1||set k=0
if %k%==1 (net stop "OracleDBConsoleorcl")
net start|findstr /i /c:"OracleOraDb10g_home1iSQL*Plus">nul&&set k=1||set k=0
if %k%==1 (net stop "OracleOraDb10g_home1iSQL*Plus")
net start|findstr /i /c:"OracleOraDb10g_home1TNSListener">nul&&set k=1||set k=0
if %k%==1 (net stop "OracleOraDb10g_home1TNSListener")
net start|findstr /i /c:"OracleServiceORCL">nul&&set k=1||set k=0
if %k%==1 (net stop "OracleServiceORCL")
echo.
echo Oracle服务已经成功关闭...
echo.
pause
exit

注意:记得手动更改具体服务名称!

运行这个文件,你就可以看到如下界面:

本文分享自微信公众号 - 浩Coding(gh_c4a2e63d2ca7),作者:浩

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 批处理之实战一--百度搜索、定时关机、创建文件

    前文讲了批处理的一些常用命令,没看过的可以微信公众号历史消息里查看,废话不多说,开始实战:

    浩Coding
  • 批处理一键安装JDK/一键安装JRE和自动配置Java环境变量及Tomcat的安装

    下面的批处理文件能够自动完成jdk的安装,tomcat的安装,web应用的部署,环境变量的注册,tomcat服务的安装和自动启动,但是具体到个人系统上,有待考证...

    浩Coding
  • SQL Server for循环用法

    最近需要修改一个项目,涉及到SqlServer数据库知识,整理出来和大家分享一下,老规矩,先贴示例,最后是语法:

    浩Coding
  • 开工之前的热身小菜(一)答案

    这道题因为要考虑有序,就是按照字符串里面的字符顺序,同时要统计字符出现的次数。高手解法1非常巧妙,里面两个类的继承,同时继承了collection 模块里面的O...

    用户4945346
  • R语言入门之工作空间与R包

    R语言的工作空间其实就是你当下R语言的工作环境,它包括任何你已经定义了的对象。当一个R进程结束时,用户可以将当前的工作空间保存下来,在下次启动R时就会自动加载,...

    生信与临床
  • npm5 新版功能特性解析及与 yarn 评测对比

    前言 前段时间 npm 发布了 5.0 版本,提供了自动记录依赖树,下载使用强校验,重写缓存系统等功能升级和改造,吸引了不少关注。本文将对 npm5 的新功能和...

    马铖
  • 【趣味连载】攻城狮上传视频与普通人上传视频:(一)生成结构化数据

    背景 当知道要上传的视频资料从20条变成100条时,我就明白,绝对不能再人工处理了。他们总是想当然的认为,录入一条数据需要1分钟,那录入20条数据就是20分钟,...

    ios122
  • Linux系统下快速配置HugePages的完整步骤

    关于Linux系统的HugePages与Oracle数据库优化,可以参考熊爷之前的文章,相关概念介绍的非常清晰:

    砸漏
  • Linux系统下快速配置HugePages的完整步骤

    关于Linux系统的HugePages与Oracle数据库优化,可以参考熊爷之前的文章,相关概念介绍的非常清晰:

    砸漏
  • docker小试牛刀之bash_shellshock漏洞复现

    漏洞名称 bash_shellshock • 首先,问题起因于一个命令ENV。 • 原型: • env [OPTION]...[NAME=VALUE]......

    用户1467662

扫码关注云+社区

领取腾讯云代金券