或者
ORA-00845: MEMORY_TARGET not supported on this system...
原因可能:ORACLE MEMORY_TARGET参数设置超过了oracle服务器本身内存、或超过了现在服务器空闲内存(就是oracle启动时无法获取设置的内存),或者 超过了/dev/shm的大小/. 这些都有可能造成以上错误。
问题确认:
确认为oracle MEMORY_TARGET参数设置SGA大于操作系统的空闲内存,超过了/dev/shm的大小。
1.重新设置shm 大小:
vi /etc/fstab #这里以指定6G为例:
tmpfs /dev/shm tmpfs defaults,size=6G 0 0
#mount -o remount /dev/shm #重新挂载
#mount -o remount /dev/shm #重新挂载
2.备份现有spfile文件
以我的.ora配置文件路径为例 /data/oracle/product/11.2.0/db_1/dbs
cd /data/oracle/product/11.2.0/db_1/dbs
cp init.ora init.ora.bak
3.使用spfile创建pfile(spfile为二进制文本,不可直接修改),修改pfile后,重新生成spfile
sqlplus / as sysdba
SQL> create pfile from spfile;
File created.
SQL> exit
此时生成了一个包含实例名的init~.ora相关文件,这里以我的jjzb实例名为例说明:
vi initjjdb.ora #编辑该文件,修改memory_target为新的要占用内存(要小于/dev/shm大小)。
利用刚修改好的pfile配置文件创建新的spfile文件:
利用刚修改好的pfile配置文件创建新的spfile文件:
SQL> create spfile from pfile;
File created.
启动数据库:
SQL> startup;
参考 blog.51cto.com/douya/1753362