关于Linux下安装Oracle时报错:out of memory的问题分析说明
一、说明
在Oracle安装过程中,可能遇到out of memory这种错误,这是由于系统内存不足导致!我们可以通过加内存的方式解决!
而如果是另一种情况呢: 例如我在主机上装了两个Oracle服务端,其中Oracle12c安装在/u01/app/oracle目录下,Oracle11g安装在/u02/app/oracle目录下!
首先我安装Oracle12c时多给了内存,导致后面安装Oracle11g时报错:out of memory。此时我该如何调整Oracle12c的内存呢?
二、调整内存
方法一:通过修改配置文件中的参数进行调整
1.使用oracle用户登录Oracle12c的安装目录中,找到inita4orcl.ora文件
vi /u01/app/oracle/dbs/inita4orcl.ora
a4orcl.__data_transfer_cache_size=0 a4orcl.__db_cache_size=7784628224 a4orcl.__java_pool_size=100663296 a4orcl.__large_pool_size=167772160 a4orcl.__oracle_base='/u01/app'#ORACLE_BASE set from environment a4orcl.__pga_aggregate_target=3388997632 a4orcl.__sga_target=10099884032 a4orcl.__shared_io_pool_size=536870912 a4orcl.__shared_pool_size=1476395008 a4orcl.__streams_pool_size=0 *.audit_file_dest='/u01/app/admin/a4orcl/adump' *.audit_trail='db' *.compatible='12.1.0.2.0' *.control_files='/u01/app/oradata/a4orcl/control01.ctl','/u01/app/fast_recovery_area/a4orcl/control02.ctl' *.db_block_size=8192 *.db_domain='' *.db_name='a4orcl' *.db_recovery_file_dest='/u01/app/fast_recovery_area' *.db_recovery_file_dest_size=4560m *.diagnostic_dest='/u01/app' *.dispatchers='(PROTOCOL=TCP) (SERVICE=a4orclXDB)' *.open_cursors=300 *.pga_aggregate_target=3207m *.processes=300 *.remote_login_passwordfile='EXCLUSIVE' *.sga_target=9623m *.undo_tablespace='UNDOTBS1'
修改sga_target的值,此处修改为6144m,即6个G
2.登录Oracle12c数据库中,执行如下命令
create spfile from pfile;
3.重启数据库
shutdown immediate;
startup;
方法二:通过命令行进行调整
1.登录Oracle12c数据库中,执行如下命令
alter system set sga_target='6144m' scope=spfile;
alter system set sga_max_size='6144m' scope=spfile;
2.重启数据库
shutdown immediate;
startup;
三、关于pfile和spfile的说明
本例中:pfile就是inita4orcl.ora
pfile和spfile都是数据库的重要文件,数据库优先使用spfile。
spfile是二进制文件,无法直接进行修改;
pfile是文本文件,可以进行修改;所以这两种文件可根据对方来进行生成;
例如:当前spfile文件中的内存的值为9623M,系统优先使用它。但它无法直接进行修改。
我可以通过修改pfile后,再通过pfile文件来生成spfile。这样spfile不就改过来了吗?
#由spfile生成pfile
create pfile from spfile;
#由pfile生成spfile
create spfile from pfile;