今天为了修改数据库配置, 将 sga_max_size 设置为了 20G, 但是 sga_target 没改, 仍然为 10G
结果改完后重启数据库就启动不了了, 报 ORA-00821 错误
ORA-00821: Specified value of sga_target *** is too small, needs to be at least ***
而直接 alter system set sga_target=20800M 是不行的, 因为数据库已经启动不了了, 根本没法直接修改数据库参数, 所以只能手动修改 spfile 文件来修改启动参数了
解决方法如下:
1. 进入 $oracle_home\bin 目录
cd D:\Oracle\App\product\11.2.0\dbhome_1\BIN
2. 执行 sqlplus / as sysdba
3. 执行 create pfile from spfile, 根据 spfile 文件生成 pfile 文件, 此处为
D:\Oracle\App\product\11.2.0\dbhome_1\database\INITc2.ORA
4. 编辑 INITc2.ORA 文件, 将其中的 sga_target 赋值改为和 sga_max_size 一致
5. 执行 create spfile from pfile;, 将修改过的文件转回去
6. 使用 startup 启动数据库
搞定
来源: http://www.bubuko.com/infodetail-2608820.html