Topic: oracle11G初始化参数文件修复

ERP俱乐部

第 1 页 总共 1 页 [共有 1 条记录]


Posted by weilm on 2012-08-07 03:46 下午
参考文档http://hi.baidu.com/javatechliu/item/5b37bd2230fad8856f2cc3db里面这一条设置,想开启归档日志模式,并修改归档日志的默认路径。

alter system set log_archive_dest="location=/u01/app/oracle/baklog" scope=spfile;

执行之后出问题,关闭数据库之后,起不来了,
------------------------------------------------------------------------------------
SQL> startup nomount;

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORA-16032: parameter LOG_ARCHIVE_DEST destination string cannot be translated

ORA-07286: sksagdi: cannot obtain device information.

Linux-x86_64 Error: 2: No such file or directory
-------------------------------------------------------------------------------------
原因是,log_archive_dest 是早期版本的参数,已经是个废弃的参数,不能用LOCATION SERVICE等关键字,新的版本设置为路径log_archive_dest_N(N可以是1,2,3,4) 10G支持10个路径 11G支持到31个。

问题解决过程。由于我的数据库是安装在ASM磁盘组上,所以不能用
create pfile='/tmp/init.ora' from spfile  这条命令导出spfile文件,注意spfile文件是二进制文件,不能直接编辑。如果安装数据库是在文件系统上,那么直接执行这句就可以。

我的环境需要执行create pfile='/tmp/init.ora' from spfile='+DATA/orcl/spfileorcl.ora'
意思就是说,将spfile文件导出到/tmp/init.ora文件中,

然后查看init.ora文件,找到错误的一行,修改正确
---------------------------------------------------------------------------------
[oracle@oracle ~]$ cat /tmp/init.ora 
orcl.__db_cache_size=637534208
orcl.__java_pool_size=16777216
orcl.__large_pool_size=16777216
orcl.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=671088640
orcl.__sga_target=989855744
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=301989888
orcl.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='+DATA/orcl/controlfile/current.260.790263943','+FRA/orcl/controlfile/current.256.790263943'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_domain=''
*.db_name='orcl'
*.db_recovery_file_dest='+FRA'
*.db_recovery_file_dest_size=4070572032
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.log_archive_dest='location=/u01/app/oracle/baklog'   注意这一行
*.memory_target=1655701504
*.nls_language='SIMPLIFIED CHINESE'
*.nls_territory='CHINA'
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
---------------------------------------------------------------------------
*.log_archive_dest='location=/u01/app/oracle/baklog'修改为
*.log_archive_dest_1='location=/u01/app/oracle/baklog'就可以了,如果有多个归档日志位置,那么可以添加*.log_archive_dest_2=


接下来还原spfile文件,执行
create  spfile='+DATA/orcl/spfileorcl.ora' from pfile='/tmp/init.ora'   注意这句跟上面的区别,

然后重新启动数据库。
-------------------------------------------------------------------------
SQL> startup
ORACLE instance started.

Total System Global Area 1653518336 bytes
Fixed Size                  2213896 bytes
Variable Size            1006635000 bytes
Database Buffers          637534208 bytes
Redo Buffers                7135232 bytes
Database mounted.
Database opened.
-------------------------------------------------------------------------
到这里正常启动。