Oracle占用內存過高的問題及解決
Oracle占用內存過高問題
安裝Oracle時,為了均衡電腦性能和數據庫性能,Oracle一個實例默認內存占用大小為物理內存的1/8。
如環(huán)境不需要分配那么大的內存來支撐Oracle,可通過修改 sga_max_size 的值來減少系統(tǒng)中內存占用過大問題。
步驟如下
1.cmd sqlplus system賬戶登錄
2.show parameter sga; --顯示內存分配情況
3.alter system set sga_max_size=200m scope=spfile; --修改占用內存的大小,根據需要設置
4.alter system set memory_target = 200M scope=spfile; --修改目標內存占用大小,根據需要設置
5.重啟oracle服務
注意一下
sga_target < = sga_max_size <= memory_target <= memory_max_target
效果圖:
修改前占用1G:
修改后占用200M
另附:如果誤修改導致數據庫無法啟動,按以下步驟處理:
(解決SGA_MAX_SIZE 的大小比 MEMORY_TARGET 大導致數據無法啟動的錯誤)
由于數據庫無法啟動,只能調整編輯啟動參數文件:
1, 根據錯誤的spfile創(chuàng)建pfile;
SQL> create pfile='/tmp/pfile20150115.txt' from spfile;
2, 編輯上面生成的pfile將memory_target的值修改成大于SGA_MAX_SIZE
3,備份以前的參數文件
4,恢復參數文件:
SQL> create spfile from pfile='/tmp/pfile20150115.txt';
5, 啟動數據庫:
SQL> startup
OK,到此結束,數據庫正常啟動。
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
oracle中函數 trunc(),round(),ceil(),floor的使用詳解
這篇文章主要介紹了oracle中函數 trunc(),round(),ceil(),floor的使用詳解的相關資料,需要的朋友可以參考下2017-03-03