参数设置不合理导致数据不能启动问题解决
由于修改初始化参数不合理导致数据库不能启动
以下面的例子进行恢复
1.修改数据库的shared_pool_size大小,不小心修改shared_pool_size大小超过了操作系统分配oracle的内存的大小了
SQL> alter system set shared_pool_size=100G scope=spfile;
系统已更改。
2.重启oracle数据库使修改生效
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 102440M
SQL>
数据库启动报错,启动失败说MEMORY_TARGET is too small, needs to be at least 102440M
在真正的环境中我们并不知道是修改那个参数导致数据库不能启动这个时候我们就应该看警告日志了,警告日志会记录alter system的修改记录找到修改不合理的配置项
3.由于数据库不能启动我们找到不合理的配置项也不能使用alter system set 指令把修改的值该回来
4.现在构造一个pfile文件指向spfile文件并把修改不合理的配置加到pfile中如下:
spfile='D:\app\wwang\product\11.2.0\dbhome_1\database\SPFILEMDSP.ORA'
shared_pool_size=100M
注:把参数修改成合理的值就可以了
5.启动数据库用上面的pfile启动
SQL> startup pfile=C:\initmdsp.ora
ORACLE 例程已经启动。
Total System Global Area 326414336 bytes
Fixed Size 1373292 bytes
Variable Size 243272596 bytes
Database Buffers 75497472 bytes
Redo Buffers 6270976 bytes
数据库装载完毕。
数据库已经打开。
SQL>
6.数据库启动了,然后再使用alter system set命令把刚才修改的不合理参数修改成合理值
SQL> alter system set shared_pool_size=0 scope=spfile;
系统已更改。、
SQL>
重启数据库(用spfile文件启动)
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 326414336 bytes
Fixed Size 1374388 bytes
Variable Size 243271500 bytes
Database Buffers 75497472 bytes
Redo Buffers 6270976 bytes
数据库装载完毕。
数据库已经打开。
SQL>
这时数据库启动正常了,参数设置不合理导致数据库启动不了,都可以用上面方法解决,主要的就是去警告日志里找到那个参数设置的有问题