ORA-00823: Specified value of sga_target greater than sga_max_size这个异常通常是因为改动了sga_max_size或者sga_target这两个参数值,导致sga_target比sga_max_size值大。
这时登录Oracle会出现ORA-01034&&ORA-27101异常,登录失败
只能用sysdba账户登录,且会显示:已连接到空闲例程
解决办法:
1.使用sysdba账户登录Oracle数据库,输入
create pfile='数据库安装目录\dbs\xxx(自己起名字).ora' from spfile;
生成配置文件
或者
create pfile from spfile;(这个命令生成的文件在ORACLE_HOME环境变量dbs文件夹下,文件名字:init.ora)
例:
create pfile='D:\Oracleclass\WINDOWS.X64_193000_db_home\dbs\init2.ora' from spfile;
提示生成成功,去上述语句文件夹下找到这个文件,编辑。
把sga_max_size的值变成比sga_target的值大就行。
2.输入startup pfile='第一步修改的文件路径';
例:(第一步我生成的是:INIT2.ORA,本地有一个INIT1.ORA,懒得改了)
startup pfile='D:\Oracleclass\WINDOWS.X64_193000_db_home\dbs\INIT1.ORA';
等一会,就显示已经打开数据库了(报其他异常再百度一下啦,什么单引号、没权限啦)
注意:现在数据库启动只是数据库按照我们生成的文件临时启动,重启数据库还是会出现ORA-00823异常
3.输入create spfile from pfile='数据库安装文件夹\dbs\任意文件名字(和第二步重复也可以)'(不理解第三步请搜索pfile与spfile的区别)
4.输入lsnrctl status查看监听服务,若监听服务已启动则完成所有步骤,没启动输入lsnrctl start启动即可。
这时,即便重启数据库也没有ORA-00823异常