关于spfile或者pfile参数的一点摘要:
关于oracle的初始化参数可以分为推导参数sessions=(1.1*processes)+5,操作系统依赖参数db_cache_size受制于oracle使用内存大小,可变参数(例如open_cursors可以调整),但是一般来说个人更喜欢分类为隐含参数和非隐含参数,或者分类为动态参数和静态参数。
初始化参数spfile和pfile,在oracle 9I前一直是使用的pfile文本文件存储初始化参数,pfile可以直接手动修改,但是由于每次修改都需要重新启动实例才能生效,oracle 9I推出了spfile,
Spfile可以允许dba使用alter system方法修改而不需要手动去修改pfile。
由于本机测试库使用的是单实例的系统,一般修改初始化参数直接使用的是
alter system set license_max_users=30 scope=both;
不过如果对于rac环境下,由于双实例情况下初始化参数可能对于每个instance的值不同,
Alter system set license_max_users=30 scope=both sid=’rac1’;
最好指定sid,如果没有指定sid的值或者sid=’*’,oracle将默认的对所有实例修改生效。
了解到nomount情况下,oracle所需要的仅仅是spfile或者pfile文件,而如果是初始化参数文件顺坏或丢失,有备份下可以用rman启动默认实例,然后restore spfile从备份集恢复spfile,或者手工填写pfile然后create spfile form pfile重启实例生效。
Spfile是二进制文件,而所谓的pfile则是ASCII文本文件,这可以使用linux的file命令可以清晰的查看。
[oracle@localhost ~]$ file /usr/oracle/10.2/dbs/initjhql.ora
/usr/oracle/10.2/dbs/initjhql.ora: ASCII text
[oracle@localhost ~]$ file /usr/oracle/10.2/dbs/spfilejhql.ora
/usr/oracle/10.2/dbs/spfilejhql.ora: data
这里摘要以下很久之前碰到的两个关于初始化参数的问题:
在oracle 10g下设置了log_archive_start=true,由于log_archive_start在10g下已经属于废弃的参数,设置废弃的参数会引起ora-32004,此错误不会影响instance的启动,可以通过重置oracle的参数为默认值来消除此错误。
Alter system reset log_archive_start scope=spfile sid=’*’;
不过在oracle 10G前设置数据库归档则需要dba调整log_archive_start=true,不然数据库将无法归档,oracle 10g中将不再需要设置此log_archive_start启动数据库归档。
数据库启动到open状态时出错,查看警告日志文件发现如下错误
Thu Feb 02 14:56:54 2012
Error 30012 happened during db open, shutting down database
USER: terminating instance due to error 30012
Thu Feb 02 14:56:54 2012
Errors in file d:oracleproduct10.2.0adminxiaoyubdumpxiaoyu_pmon_3308.trc:
ORA-30012: undo tablespace '' does not exist or of wrong type
从警告日志发现是错误设置的undo tablespace导致的,重新设置undo_tablespace指定正确的undo tablespace然后重启实例即可解决!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25362835/viewspace-1057280/ ,如需转载,请注明出处,否则将追究法律责任。