系統城裝機大師 - 唯一官網:www.farandoo.com!

當前位置:首頁 > 數據庫 > oracle > 詳細頁面

oracle內存占用過高和修改不當無法啟動oracle實例的解決辦法

時間:2019-12-02來源:電腦系統城作者:電腦系統城

今天,在自己機器上裝了oracle 12c,發現Oracle的服務Oracle RDBMS Kenel  Executable (OracleServiceORCL)占用內存高達5G,本人電腦內存才16G。如此高的占用率,真讓人心疼。于是就對Oracle的內存進行調整。具體辦法如下:

1. 在cmd命令中輸入如下命令啟動sqlplus:

sqlplus /nolog

2. sql啟動后,連接數據庫,命令如下:

conn / as sysdba;

3. 如果是oracle 11g以后版本,可以修改MEMORY_MAX_TARGET的值來設置自己想要內存值,我這里設置為1024M。

alter system set memory_max_target=1204M scope=SPFILE;

4. 關閉數據庫實例

shutdown immediate

5.啟動Oracle實例,基于spfile里面設置情況。

startup

 

注意事項:

1)MEMORY_MAX_TARGET是MEMORY_TARGET的最大閾值,MEMORY_TARGET是Oracle使用機器內存的總量,默認值為0,即由oracle自動根據機器內存來分配,MEMORY_TARGET = SGA_TARGET + PGA_AGGREGATE_TARGET,當SGA_TARGET和PGA_AGGREGATE_TARGET都設置為0時,Oracle會自動根據MEMORY_TARGET對兩者進行內存分配。

2)如果更改過SGA_TARGET和PGA_AGGREGATE_TARGET的值,請用下面語句將其恢復0。記得不太清楚的,可以通過show parameter命令來查看內存的情況。

ALTER SYSTEM SET SGA_TARGET =0 SCOPE = SPFILE;
ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 0 SCOPE = SPFILE;

show parameter命令例子如下,注意下面命令的sga可以換成target或者memory來查看memory_max_target和memory_target的值。

show parameter sga;

3)如果是oracle 10g,不支持MEMORY_MAX_TARGET和MEMORY_TARGET這兩個參數,內存的調整可以通過sga_target或sga_max_size來手動設置實現,注意sga_target必須要小于等于sga_max_size,否則oracle庫會運行不起來。

alter system set sga_max_size=1024m scope=spfile; 
alter system set sga_target=1024m scope=spfile;

有時候犯糊涂設置錯了,導致數據庫實例運行不起來的話,可以通過從二進制配置文件spfile來創建pfile的文本文件,來手動修改解決,在由pfile重建spfile文件。例如我將sga_max_size和sga_target都設置為512M,就啟動不起來了,啟動時,錯誤為ORA-00821: Specified value of sga_target 512M is too small, needs to be at least 636M,這時候,可以通過下面四部解決。

(1). 在sqlplus里面由spfile創建pfile文件,為了方便,自定義pfile的存放目錄為“e:\\ini.ora.temp”,不指定會默認為spfile同目錄,本人在windows上的12c目錄為"{oracle安裝目錄}\product\12.2.0\dbhome_1\database”目錄下的SPFILEORCL.ORA,文件名遵循格式spfile${SID}.ora。

create pfile='e:\\ini.ora.temp' from spfile;

(2). 因為pfile為文本文件,用文本應用程序打開你指定的路徑文件來進行編輯,修改sga_max_size和sga_target為0,保存文件。

(3).由pfile來重建spfile文件

create spfile from pfile='e:\\ini.ora.temp';

(4).默認基于新的spfile,啟動Oracle實例。

startup

 

一些可能用到的其他命令:

顯示spfile的文件存放路徑:

show parameter spfile;

顯示pfile的文件存放路徑:

show parameter pfile;
分享到:

相關信息

系統教程欄目

欄目熱門教程

人氣教程排行

站長推薦

熱門系統下載

jlzzjlzz亚洲乱熟在线播放