程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 調整oraclesga的大小導致ORA-00851和ORA-00844錯誤

調整oraclesga的大小導致ORA-00851和ORA-00844錯誤

編輯:Oracle教程

調整oraclesga的大小導致ORA-00851和ORA-00844錯誤


今天調整了下sga的大小,結果重啟數據庫的時候報如下錯誤。
SQL>alter system set sga_max_size=1024M scope=spfile;
SQL> shutdown immediate
SQL> startup
ORA-00844: Parameter not taking MEMORY_TARGET into account
ORA-00851: SGA_MAX_SIZE 1073741824 cannot be set to more than MEMORY_TARGET 784334848.

在Oracle查了下,原來11g新增了個參數MEMORY_TARGET,其大小等於PGA+SGA,當sga的大小大於MEMORY_TARGET就會報如上錯誤。

解決方法:

可以直接修改spflie文件中MEMORY_TARGET的大小,可是由於之前沒查看spfile的位置,不知道spfile的具體位置,所以只能采用如下方法

1.sqlplus / as sysdba
SQL>create pfile='/home/oracle/pfile' from spfile;

創建pfile文件,修改pfile文件中的MEMORY_TARGET參數,

然後重新創建spfile文件
SQL>create spfile from pfile='/home/oracle/pfile';

重啟結果又報下面的錯
SQL> startup
ORA-00845: MEMORY_TARGET not supported on this system

這個是由於系統tmpfs小於MEMORY_TARGET導致的,需要調整tmpfs的大小
vi /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=2G 0 0

修改size的大小

重新掛載
mount -o remount /dev/shm

驗證下
df -h

現在終於可以正常啟動數據庫了
SQL> startup
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size 2220200 bytes
Variable Size 943722328 bytes
Database Buffers 117440512 bytes
Redo Buffers 5554176 bytes
Database mounted.
Database opened.

總結一下,以後調整sga的順序是,先調整tmpfs的大小,再調整MEMORY_TARGET 的大小,最後調整sga,保證tmpfs>MEMORY_TARGET >sga+pga

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved