手機版
你好,游客 登錄 注冊
背景:
閱讀新聞

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

[日期:2019-11-26] 來源:Linux社區  作者:markkang [字體: ]

今天,在自己機器上裝了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;

linux
相關資訊       Oracle內存占用過高 
本文評論   查看全部評論 (0)
表情: 表情 姓名: 字數

       

評論聲明
  • 尊重網上道德,遵守中華人民共和國的各項有關法律法規
  • 承擔一切因您的行為而直接或間接導致的民事或刑事法律責任
  • 本站管理人員有權保留或刪除其管轄留言中的任意內容
  • 本站有權在網站內轉載或引用您的評論
  • 參與本評論即表明您已經閱讀并接受上述條款
海口彩票论坛