很多网站说修改Oracle的内存通过命令
alter system set sga_max_size=2048m scope=spfile;
如果你这么做了,那么恭喜你,你的Oracle数据库无法启动了。如果你已经这么做了,恢复Oracle启动的方法如下
步骤1:管理员身份启动cmd(命令行),输入下面的命令
进入 “你的数据库安装路径根目录\Administrator\product\数据库版本(12.1.0)\dbhome_1\BIN”
设置Oracle当前的ORACLE_SID为你当前需要改动数据库,使用如下命令:
set ORACLE_SID=你的数据库实例名
然后运行如下命令
sqlplus sys/你的数据密码 as sysdba
步骤2:通过pfile的启动文件启动数据库
startup pfile='你的数据库安装路径根目录\admin\你的数据库名\pfile\init.ora'
(单引号前后是没有空白的,排版问题)
其中init.ora你可能没有但是你应该可以找到一个类型init.ora.1172016111548的文件,在执行上面的命令前你应该修改其名字为init.ora
步骤2:创建pfile文件
上面的操作只是启动了数据库,如果只做上面的操作,重启电脑后仍然启动不起来,你应该还需要执行下面的命令:
create spfile from pfile='你的数据库安装路径根目录\admin\你的数据库名\pfile\init.ora';
(单引号前后是没有空白的,排版问题)
注意不要忘记了末尾的英文分号(;)
这样就可以从新启动数据库了,并且重启电脑后依然有效。
用记事本打开上面的init.ora你可以看到类似下面的文本
############################################################################## # Copyright (c) 1991, 2013 by Oracle Corporation ############################################################################## ########################################### # SGA Memory ########################################### sga_target=3548m ########################################### # Shared Server ########################################### dispatchers="(PROTOCOL=TCP) (SERVICE=yjljwellXDB)" ########################################### # Miscellaneous ########################################### compatible=12.1.0.2.0 diagnostic_dest=D:\app\jw ########################################### # Security and Auditing ########################################### audit_file_dest="D:\app\jw\admin\yjljwell\adump" audit_trail=db remote_login_passwordfile=EXCLUSIVE ########################################### # Sort, Hash Joins, Bitmap Indexes ########################################### pga_aggregate_target=1182m ########################################### # Database Identification ########################################### db_domain="" db_name="yjljwell" ########################################### # File Configuration ########################################### db_create_file_dest="D:\app\jw\oradata" db_recovery_file_dest="D:\app\jw\fast_recovery_area" db_recovery_file_dest_size=6420m ########################################### # Cursors and Library Cache ########################################### open_cursors=300 ########################################### # System Managed Undo and Rollback Segments ########################################### undo_tablespace=UNDOTBS1 ########################################### # Processes and Sessions ########################################### processes=300 ########################################### # Cache and I/O ########################################### db_block_size=8192 control_files=("D:\APP\JW\ORADATA\YJLJWELL\CONTROLFILE\O1_MF_D4GZG41L_.CTL", "D:\APP\JW\FAST_RECOVERY_AREA\YJLJWELL\CONTROLFILE\O1_MF_D4GZG45F_.CTL")
修改SGA Memory栏位下的sga_target值为例想要分配的共享内存大小,建议大于500m。
然后执行
shutdown immediate;
先关闭数据库,然后按照上面pfile的方法通过init.ora文件来启动数据库,并且创建pfile文件。这样你就可以通过windows任务管理器看到Oracle占的内存大约就是你修改的共享内存值了。