关于修改memory_target的值后数据库无法启动的问题

阅读更多
操作系统:RHEL6.5

数据库版本:11.2.0.4



我在安装could control软件的时候修改了数据库的部分参数,其中就有memory_target的值。



然后数据库就起不来了

SQL> startup;

ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 3072M

ORA-01078: failure in processing system parameters



报错原因是MEMORY_TARGET的值太小,至少需要3072M

修改MEMORY_TARGET的值在数据库里面已经不可操作

所以我在参数文件里修改



首先生成pfile

SQL>create pfile from pfile;





[oracle@hzmcorcl dbs]$ vi /oracle/app/product/11.2.0/db_1/dbs/initorcl.ora

修改memory_target的值:

*.memory_target=3221225472





然后使用pfile启动试试:

SQL> startup pfile='/oracle/app/product/11.2.0/db_1/dbs/initorcl.ora';

ORA-00845: MEMORY_TARGET not supported on this system



又变成了一个新的报错,这个MEMORY_TARGET的值超过的系统最大内存。

查看系统的内存后发现系统内存为2GB



因为我是虚拟机上的,所以把操作系统关闭后在虚拟机里修改内存为4.5GB

然后启动操作系统,再次进行尝试:

SQL> startup pfile='/oracle/app/product/11.2.0/db_1/dbs/initorcl.ora';

ORA-00845: MEMORY_TARGET not supported on this system



依旧报这个错误,在搜索引擎上查询知道

MEMORY_TARGET的值要小于/dev/shm内的值。

所以我想把/dev/shm的值改大可能就可以启动

[root@hzmcorcl ~]# cd /etc/

[root@hzmcorcl etc]# vi fstab

# /etc/fstab

# Created by anaconda on Mon Nov 21 10:19:33 2016

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

/dev/mapper/vg_hzmcorcl-lv_root /                       ext4    defaults        1 1

UUID=5845465a-e313-4337-865c-c87853677c49 /boot                   ext4    defaults        1 2

/dev/mapper/vg_hzmcorcl-lv_swap swap                    swap    defaults        0 0

tmpfs                   /dev/shm                tmpfs   defaults,size=3072M        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

/dev/sdb1               /sdb                    ext4    defaults        1 2

/dev/vg1/data           /agent                  ext4    defaults        1 2



增加参数size=3072M

重新挂载:

[root@hzmcorcl etc] mount -o remount /dev/shm

[root@hzmcorcl ~]# mount -l

/dev/mapper/vg_hzmcorcl-lv_root on / type ext4 (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

tmpfs on /dev/shm type tmpfs (rw,size=3072M)

/dev/sda1 on /boot type ext4 (rw)

/dev/sdb1 on /sdb type ext4 (rw)

/dev/mapper/vg1-data on /agent type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)



可以看到/dev/shm的值已经变成3072M(当然重启也可以生效修改的/dev/shm的内存值)



再次尝试启动数据库:

SQL> startup pfile='/oracle/app/product/11.2.0/db_1/dbs/initorcl.ora';

ORACLE instance started.



Total System Global Area 3206836224 bytes

Fixed Size                  2257520 bytes

Variable Size            1996492176 bytes

Database Buffers         1191182336 bytes

Redo Buffers               16904192 bytes

Database mounted.

Database opened.





至此,数据库修复完成。



生成新的参数文件即可。

你可能感兴趣的:(关于修改memory_target的值后数据库无法启动的问题)