今天做了个实验,大致流程就是误删除所有参数文件,这时候我们启动数据库会发现数据库无法启动。
首先我们先删除参数文件,尝试重启
-
SYS@PROD> startup
-
ORA-01078: failure in processing system parameters
-
LRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initPROD.ora'
发现找不到相对应的参数文件,因为没有任何备份,所以尝试创建参数文件
-
-
SYS@PROD> create spfile from memory;
-
-
File created.
创建好后再次尝试重启
-
SYS@PROD> startup
-
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
-
ORACLE instance started.
-
-
Total System Global Area 835104768 bytes
-
Fixed Size 2257840 bytes
-
Variable Size 541068368 bytes
-
Database Buffers 289406976 bytes
-
Redo Buffers 2371584 bytes
-
Database mounted.
-
Database opened.
这时候我们发现数据库报出
ORA-32004的错误,查找官方文档觉得大致是由于过期参数造成的然后再在网上进行一些查询。
-
ORA-32004: obsolete or deprecated parameter(s) specified for string instance
-
Cause: Obsolete or deprecated parameters for this instance type were specified in the SPFILE or the PFILE on the server side.
-
Action: See alert log for a list of parameters that are obsolete or deprecated. Remove them from the SPFILE or the server side PFILE.
网上大致的办法是
SQL>alter system reset log_archive_start scope=spfile sid='*';无法在spfile中找到要删除的条目
-
SYS@PROD> alter system reset sql_trace scope=spfile sid='*';
-
alter system reset sql_trace scope=spfile sid='*'
-
*
-
ERROR at line 1:
-
ORA-32010: cannot find entry to delete in SPFILE
由于spfile是二进制文件,所以我们决定生成pfile文件,并手动修改参数文件,我们先查看alert.log文件,查找到以下内容
-
Deprecated system parameters with specified values:
-
background_dump_dest
-
user_dump_dest
-
End of deprecated system parameter listing
关闭数据库,删除或者mv动态参数文件,以达到以静态参数文件启动的目的,然后再静态参数文件中删除
background_dump_dest和user_dump_dest的参数文件后重启,发现重启正常不再报错。
-
SYS@PROD> startup;
-
ORACLE instance started.
-
-
Total System Global Area 835104768 bytes
-
Fixed Size 2257840 bytes
-
Variable Size 541068368 bytes
-
Database Buffers 289406976 bytes
-
Redo Buffers 2371584 bytes
-
Database mounted.
-
Database opened.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30604784/viewspace-1984773/
,如需转载,请注明出处,否则将追究法律责任。