今天在做完全备份和恢复实验的时候,按照书上的操作进行操作,结果导致数据库起不来了,在不装载的情况下依然起不来。下面看一下详细过程。
首先说明下实验环境:OS:XP; Oracle 10.2.0.1
书上所用的实验环境:OS:XP; Oracle 9i
书上操作过程如下:
SQL> alter system set log_archive_dest_1="location=e:/oracle";
系统已更改。
SQL> alter system set log_archive_format="%s.arc" scope=spfile;
系统已更改。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
oracle例程已经关闭。
SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORA-19905: log_archive_format must contain %s, %t and %r
仔细看了看两个问题的说明,ORA-32004是因为指定了已经废弃的参数,ORA-19905是说log_archive_format 必须包含%s, %t and %r。看到这里,我突然明白了,我练习用的课本是9i,实际操作的数据库是10.2,看来是log_archive_format 参数命名发生了变化。那么究竟是那个环境出了问题呢?于是
SQL> startup nomount;
ORA-32004: obsolete and/or deprecated parameter(s) specifie
ORA-19905: log_archive_format must contain %s, %t and %r
问题依旧,看开这个东西就在初始化文件里面,于是,重建spfile文件。
SQL> create spfile from pfile='C:/admin/orcl/pfile/init.ora.852008171438';
文件已创建。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 293601280 bytes
Fixed Size 1248600 bytes
Variable Size 92275368 bytes
Database Buffers 192937984 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
数据库已经打开。
看来版本不兼容会带来很多问题,在应用新版本的时候还要熟悉两者之间的变化,是个挺繁琐的工作。
下面摘抄一篇我参考的文章:
oracle10g 启动时报错:ORA-32004 ORA-19905
1、出现问题之前的操作
SQL> alter system set log_archive_dest_1='LOCATION=D:/archive1';
系统已更改。
SQL> alter system set log_archive_dest_2='LOCATION=E:/archive1';
系统已更改。
SQL> alter system set log_archive_dest_2='LOCATION=E:/archive2';
系统已更改。
SQL> show parameter log_archive
NAME TYPE VALUE
------------------------------------ ----------- ----------------------------
log_archive_config string
log_archive_dest string
log_archive_dest_1 string LOCATION=D:/archive1
log_archive_dest_10 string
log_archive_dest_2 string LOCATION=E:/archive2
log_archive_dest_3 string
log_archive_dest_4 string
log_archive_dest_5 string
log_archive_dest_6 string
log_archive_dest_7 string
log_archive_dest_8 string
NAME TYPE VALUE
------------------------------------ ----------- -------------------
log_archive_dest_9 string
log_archive_dest_state_1 string enable
log_archive_dest_state_10 string enable
log_archive_dest_state_2 string enable
log_archive_dest_state_3 string enable
log_archive_dest_state_4 string enable
log_archive_dest_state_5 string enable
log_archive_dest_state_6 string enable
log_archive_dest_state_7 string enable
log_archive_dest_state_8 string enable
log_archive_dest_state_9 string enable
NAME TYPE VALUE
------------------------------------ ----------- -------------------
log_archive_duplex_dest string
log_archive_format string ARC%S_%R.%T
log_archive_local_first boolean TRUE
log_archive_max_processes integer 2
log_archive_min_succeed_dest integer 1
log_archive_start boolean FALSE
log_archive_trace integer 0
SQL> alter system set log_archive_format='ARC_S%_T%_r%_d%';
alter system set log_archive_format='ARC_S%_T%_r%_d%'
*
第 1 行出现错误:
ORA-02095: 无法修改指定的初始化参数
SQL> alter system set log_archive_format='ARC_S%_T%_r%_d%' scope=spfile;
系统已更改。
SQL> alter system archive log all;
alter system archive log all
*
第 1 行出现错误:
ORA-00258: NOARCHIVELOG 模式下的手动归档必须标识日志
SQL> alter system set log_archive_start = true scope=spfile;
系统已更改。
SQL> alter system archive log start;
系统已更改。
SQL> alter system archive log all;
alter system archive log all
*
第 1 行出现错误:
ORA-00258: NOARCHIVELOG 模式下的手动归档必须标识日志
SQL> archive log list;
数据库日志模式 非存档模式
自动存档 禁用
存档终点 E:/archive2
最早的联机日志序列 97
当前日志序列 99
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORA-19905: log_archive_format must contain %s, %t and %r
SQL> shutdown abort
ORACLE 例程已经关闭。
SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORA-19905: log_archive_format must contain %s, %t and %r
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
C:/Documents and Settings/Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 4月 8 22:54:59 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
2、启动数据库时,报错如下:
SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORA-19905: log_archive_format must contain %s, %t and %r
SQL> show parameter archive
ORA-01034: ORACLE not available
3、处理过程,
1) 原因分析:
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORA-19905: log_archive_format must contain %s, %t and %r
1、ORA-32004是因为指定了已经废弃的参数,
2、ORA-19905是说log_archive_format 必须包含%s, %t and %r。
2) 试着启动数据库到mount状态,并重新创建pfile
SQL> shutdown immediate
SQL> startup mount;
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORA-19905: log_archive_format must contain %s, %t and %r
SQL>
SQL> create pfile from spfile;
create pfile from spfile
*
第 1 行出现错误:
ORA-27041: unable to open file
OSD-04002: ????????????
O/S-Error: (OS 2) ??????????????????????
3) 强制启动,并从spfile创建pfile文件,
SQL> startup force
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORA-19905: log_archive_format must contain %s, %t and %r
SQL> create pfile from spfile;
文件已创建。
但发现pfile内容问题如下:
SPFILE='D:/oracle/product/10.2.0/db_1/dbs/spfileoracsid.ora'
所以根本无法通过修改pfile来修改出错的初始参数。
4) 根据pfile的提示内容,用这个spfile来重新创建pfile
SQL> create pfile from spfile='D:/oracle/product/10.2.0/db_1/dbs/SPFILEORACSID.ORA';
文件已创建。
5) 修改pfile内容,看清楚log_archive_format=’ARC_%t_%s_%r.dbf’,百分号是在前面,而非在后面。
6) 指定ORACLE从PFILE启动
SQL> startup nomount pfile='D:/oracle/product/10.2.0/db_1/database/initoracsid.ora';
ORA-32006: LOG_ARCHIVE_START initialization parameter has been deprecated
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250452 bytes
Variable Size 176163692 bytes
Database Buffers 432013312 bytes
Redo Buffers 2940928 bytes
7) 再用pfile创建spfile,然后启动数据库
SQL> create spfile from pfile;
SQL>shutdown immediate
SQL>startup
数据库正常启动。
8) 处理Deprecated system parameters
SQL> alter system reset log_archive_start scope=spfile sid='*';
系统已更改。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250452 bytes
Variable Size 184552300 bytes
Database Buffers 423624704 bytes
Redo Buffers 2940928 bytes
数据库装载完毕。
数据库已经打开。
SQL>
查看oracle10g有哪些参数deprecated
SQL> set linesize 1000
SQL> run
1 select name,description
2 from v$parameter
3* where isdeprecated = 'TRUE'
NAME DESCRIPTION
-------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
lock_name_space lock name space used for generating lock names for standby/clone database
buffer_pool_keep Number of database blocks/latches in keep buffer pool
buffer_pool_recycle Number of database blocks/latches in recycle buffer pool
max_commit_propagation_delay Max age of new snapshot in .01 seconds
remote_archive_enable remote archival enable setting
log_archive_start start archival process on SGA initialization
parallel_server if TRUE startup in parallel server mode
parallel_server_instances number of instances to use for sizing OPS SGA structures
fast_start_io_target Upper bound on recovery reads
logmnr_max_persistent_sessions maximum number of threads to mine
serial_reuse reuse the frame segments
NAME DESCRIPTION
-------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
max_enabled_roles max number of roles a user can have enabled
global_context_pool_size Global Application Context Pool Size in Bytes
plsql_compiler_flags PL/SQL compiler flags
sql_trace enable SQL trace
parallel_automatic_tuning enable intelligent defaults for parallel execution parameters
drs_start start DG Broker monitor (DMON process)
17 rows selected.