本文是关于Oracle9i spfile的一篇文字,这是Oracle9i的一个新特性,虽然是很小的一个改进,但是却体现了Oracle在安全性和可靠性上的一个提高,通过rman备份或者控制文件的自动备份,Oracle把spfile纳入到整个备份恢复体系当中。
本文对spfile的使用和修改等作了详细描述,对于其备份恢复也给出了相应的例子,希望大家能够从这篇文章中受益,从Oracle的这个新特性中获得收益。
在Oracle9i中,一个新的文件被引入-spfile,spfile用于服务器端,管理初始化参数。
在9i以前,Oracle使用pfile存储初始化参数设置,这些参数在实例启动时被读取,任何修改需要重起实例才能生效,使用spfile你可以使用ALTER SYSTEM
或者ALTER SESSION来动态修改那些可动态修改的参数,所有更改可以立即生效,你可以选择使更改只应用于当前实例还是同时应用到spfile。这就使
得所有对spfile的修改都可以在命令行完成,我们可以彻底告别手工修改初始化参数文件,这就大大减少了人为错误的发生。
SPFILE是一个二进制文件,可以使用RMAN进行备份,这样实际上Oracle把参数文件也纳入了备份恢复管理。
除了第一次启动数据库需要PFILE(然后可以根据PFILE创建SPFILE),我们可以不再需要PFILE,ORACLE强烈推荐使用spfile,应用其新特性来存储和
维护初始化参数设置。
一. 创建SPFILE
缺省的,ORACLE使用PFILE启动数据库,SPFILE必须由PFILE创建,新创建的SPFILE在下一次启动数据库时生效,CREATE SPFILE需要SYSDBA或者
SYSOPER的权限:
语法如下:
CREATE
SPFILE
[
='SPFILE-NAME'
]
FROM
PFILE
[
='PFILE-NAME'
]
例:
SQL
>
create
spfile
from
pfile;
缺省的,spfile创建到系统缺省目录
(Unix: $ORACLE_HOME/dbs; NT: $ORACLE_HOME/database)
如果SPFILE已经存在,那么创建会返回以下错误:
SQL
>
create
spfile
from
pfile;
create
spfile
from
pfile
*
ERROR 位于第
1
行:
ORA
-
32002
: 无法创建已由例程使用的 SPFILE
这也可以用来判断当前是否使用了SPFILE文件。
然而意外的时,Oracle并没有向其他文件一样,在运行期间保持锁定,让我们作以下试验:
SQL
>
host rename SPFILEEYGLEN.ORA SPFILEEYGLEN.ORA.BAK
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
SQL
>
alter
system
set
db_cache_size
=
24M scope
=
both;
系统已更改。
SQL
>
host dir
*
.ora
驱动器 E 中的卷是 Doc
卷的序列号是 980C
-
8EFF
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
E:OracleOra9iR2
database
的目录
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
2003
-
02
-
10
14
:
35
2
,
048
PWDeyglen.ORA
1
个文件
2
,
048
字节
0
个目录
150
,
347
,
776
可用字节
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
SQL
>
alter
system
set
db_cache_size
=
24M scope
=
spfile;
alter
system
set
db_cache_size
=
24M scope
=
spfile
*
ERROR 位于第
1
行:
ORA
-
27041
: 无法打开文件
OSD
-
04002
: 无法打开文件
O
/
S
-
Error: (OS
2
) 系统找不到指定的文件。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
SQL
>
host rename SPFILEEYGLEN.ORA.BAK SPFILEEYGLEN.ORA
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
SQL
>
alter
system
set
db_cache_size
=
24M scope
=
spfile;
系统已更改。
SQL
>
估计Oracle以后会想办法来锁定这个文件。
二. 使用SPFILE
重新启动数据库,使用startup命令,Oralce将会按照以下顺序在缺省目录中搜索参数文件:
a. spfile${ORACLE_SID}.ora
缺省目录
UNIX: ${ORACLE_HOME}/dbs/
NT: ${ORACLE_HOME}/database
b. spfile.ora
缺省目录
UNIX: ${ORACLE_HOME}/dbs/
NT: ${ORACLE_HOME}/database
c. init${ORACLESID}.ora
缺省目录
UNIX: ${ORACLE_HOME}/dbs/
NT: ${ORACLE_HOME}/database or
${ORACLE_HOME}/admin/db_name/pfile/
创建了spfile,重新启动数据库,Oracle会按顺序搜索以上目录,spfile就会自动生效。
三. 使用pfile/spfile启动数据库
如果你想使用pfile启动数据库,你可以在启动时指定pfile或者删除spfile.
SQL
>
startup pfile
=
'
E:Oracleadmineyglenpfileinit.ora
'
;
你不能以同样的方式指定spfile,但是可以创建一个包含spfile参数的pfile文件,指向spfile.
SPFILE是一个自Oracle9i引入的初始化参数,类似于IFILE参数。 SPFILE参数用于定义非缺省路径的spfile文件。
你可以在PFILE链接到SPFILE文件,同时在PFILE中定义其他参数,如果参数重复设置,后读取的参数将取代先前的设置。
PFILE参数的使用,例如:
这是我们使用SPFILE启动的情况
SQL
>
startup
ORACLE 例程已经启动。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Total System Global Area
135338868
bytes
Fixed Size
453492
bytes
Variable Size
109051904
bytes
Database
Buffers
25165824
bytes
Redo Buffers
667648
bytes
数据库装载完毕。
数据库已经打开。
SQL
>
show parameter log_archive_start
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
NAME TYPE
--
---------------------------------- ----------------------
VALUE
--
----------------------------
log_archive_start boolean
TRUE
SQL
>
show parameter spfile
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
NAME TYPE
--
---------------------------------- ----------------------
VALUE
--
----------------------------
spfile string
%
ORACLE_HOME
%
DATABASE
SPFILE
%
ORACLE_SID
%
.ORA
SQL
>
我们修改PFILE文件内容如下:
#Pfile link
to
SPFILE
SPFILE
=
'
E:OracleOra9iR2databaseSPFILEEYGLEN.ORA
'
log_archive_start
=
false
可以预见这个log_archive_start参数设置将会代替SPFILE中的设置:
SQL
>
startup pfile
=
'
e:initeyglen.ora
'
ORACLE 例程已经启动。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Total System Global Area
135338868
bytes
Fixed Size
453492
bytes
Variable Size
109051904
bytes
Database
Buffers
25165824
bytes
Redo Buffers
667648
bytes
数据库装载完毕。
数据库已经打开。
SQL
>
show parameter spfile
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
NAME TYPE
--
---------------------------------- ----------------------
VALUE
--
----------------------------
spfile string
E:OracleOra9iR2
database
SPF
ILEEYGLEN.ORA
SQL
>
show parameter log_archive_start
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
NAME TYPE
--
---------------------------------- ----------------------
VALUE
--
----------------------------
log_archive_start boolean
FALSE
然后我们可以使用ALTER SYSTEM方式将修改固定到SPFILE.
SQL
>
alter
system
set
log_archive_start
=
false scope
=
spfile;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
系统已更改。
所以你也可以通过如上方式在启动时修改初始化参数。比我们在本文最后介绍的导入导出方法要简便的多。
四. 修改参数
可以通过ALTER SYSTEM或者导入导出来更改SPFILE的内容。
ALTER SYSTEM增加了一个新选项:SCOPE。SCOPE参数有三个可选值:MEMORY ,SPFILE , BOTH
MEMORY:只改变当前实例运行
SPFILE:只改变SPFILE的设置
BOTH:改变实例及SPFILE
1. SCOPE=MEMORY
SQL
>
show parameter timed_statistics
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
NAME TYPE
--
---------------------------------- ----------------------
VALUE
--
----------------------------
timed_statistics boolean
TRUE
SQL
>
ALTER
SYSTEM
SET
timed_statistics
=
FALSE SCOPE
=
MEMORY;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
系统已更改。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
SQL
>
show parameter timed_statistics
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
NAME TYPE
--
---------------------------------- ----------------------
VALUE
--
----------------------------
timed_statistics boolean
FALSE
SQL
>
shutdown
immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL
>
startup
ORACLE 例程已经启动。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Total System Global Area
135338868
bytes
Fixed Size
453492
bytes
Variable Size
109051904
bytes
Database
Buffers
25165824
bytes
Redo Buffers
667648
bytes
数据库装载完毕。
数据库已经打开。
SQL
>
show parameter timed_statistics
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
NAME TYPE
--
---------------------------------- ----------------------
VALUE
--
----------------------------
timed_statistics boolean
TRUE
2. SCOPE=SPFILE
SQL
>
show parameter timed_statistics
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
NAME TYPE
--
---------------------------------- ----------------------
VALUE
--
----------------------------
timed_statistics boolean
TRUE
SQL
>
ALTER
SYSTEM
SET
timed_statistics
=
FALSE SCOPE
=
SPFILE;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
系统已更改。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
SQL
>
show parameter timed_statistics
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
NAME TYPE
--
---------------------------------- ----------------------
VALUE
--
----------------------------
timed_statistics boolean
TRUE
SQL
>
shutdown
immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL
>
startup
ORACLE 例程已经启动。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Total System Global Area
135338868
bytes
Fixed Size
453492
bytes
Variable Size
109051904
bytes
Database
Buffers
25165824
bytes
Redo Buffers
667648
bytes
数据库装载完毕。
数据库已经打开。
SQL
>
show parameter timed_statistics
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
NAME TYPE
--
---------------------------------- ----------------------
VALUE
--
----------------------------
timed_statistics boolean
FALSE
SQL
>
3. SCOPE = BOTH
使用BOTH选项实际上等同于不带参数的ALTER SYSTEM语句。
注意:如果修改静态参数,那么需要指定SPFILE参数,否则将会报错。
SQL
>
show parameter timed_statistics
NAME TYPE
--
---------------------------------- ----------------------
VALUE
--
----------------------------
timed_statistics boolean
FALSE
SQL
>
ALTER
SYSTEM
SET
timed_statistics
=
TRUE SCOPE
=
BOTH;
系统已更改。
SQL
>
show parameter timed_statistics
NAME TYPE
--
---------------------------------- ----------------------
VALUE
--
----------------------------
timed_statistics boolean
TRUE
SQL
>
shutdown
immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL
>
startup
ORACLE 例程已经启动。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Total System Global Area
135338868
bytes
Fixed Size
453492
bytes
Variable Size
109051904
bytes
Database
Buffers
25165824
bytes
Redo Buffers
667648
bytes
数据库装载完毕。
数据库已经打开。
SQL
>
show parameter timed_statistics
NAME TYPE
--
---------------------------------- ----------------------
VALUE
--
----------------------------
timed_statistics boolean
TRUE
SQL
>
ALTER
SYSTEM
SET
sql_trace
=
FALSE SCOPE
=
BOTH;
ALTER
SYSTEM
SET
sql_trace
=
FALSE SCOPE
=
BOTH
*
ERROR 位于第
1
行:
ORA
-
02095
: 无法修改指定的初始化参数
SQL
>
ALTER
SYSTEM
SET
sql_trace
=
FALSE SCOPE
=
SPFILE;
系统已更改。
4.你也可以在数据库shutdown时创建和修改spfile,例如:
SQL
>
show sga
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Total System Global Area
135338868
bytes
Fixed Size
453492
bytes
Variable Size
109051904
bytes
Database
Buffers
25165824
bytes
Redo Buffers
667648
bytes
SQL
>
shutdown
immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL
>
create
pfile
from
spfile;
文件已创建。
SQL
>
create
spfile
from
pfile;
文件已创建。
SQL
>
所以spfile的修改是相当容易的.
五. 是否使用了spfile
b. 记录数据库变化
SQL
>
create
tablespace eygle
2
datafile
'
/data1/oracle/oradata/eygle01.dbf
'
3
size 5M;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Tablespace created.
如果新创建一个表空间,这时候检查alert<sid>.log文件,你可以在其中发现这样的备份信息:
Sat Jan 17 00:55:57 2004
Starting control autobackup
Control autobackup written to DISK device
handle '/opt/oracle/product/9.2.0/dbs/c-1052178311-20040117-00'
Completed: create tablespace eygle
datafile '/data1/oracle/oradata/eygle01.dbf’
如果使用rman进行备份,在提示中你可以看到如下信息:
RMAN
>
configure controlfile autobackup
on
;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
old RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP
OFF
;
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP
ON
;
new RMAN configuration parameters are successfully stored
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
RMAN
>
run
2
>
{
3
>
allocate channel ch1 type
disk
format
=
'
e:oracleorabakpenny%t.arc
'
;
4
>
backup
archivelog
all
delete
all
input;
5
>
release channel ch1;
6
>
}
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
allocated channel: ch1
channel ch1: sid
=
13
devtype
=
DISK
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Starting
backup
at
02
-
DEC
-
03
current
log
archived
channel ch1: starting archive
log
backupset
channel ch1: specifying archive
log
(s)
in
backup
set
input archive
log
thread
=
1
sequence
=
63
recid
=
168
stamp
=
511712617
input archive
log
thread
=
1
sequence
=
64
recid
=
169
stamp
=
511712620
input archive
log
thread
=
1
sequence
=
65
recid
=
170
stamp
=
511712626
input archive
log
thread
=
1
sequence
=
66
recid
=
171
stamp
=
511712690
channel ch1: starting piece
1
at
02
-
DEC
-
03
channel ch1: finished piece
1
at
02
-
DEC
-
03
piece handle
=
E:ORACLEORABAKPENNY511712693.ARC comment
=
NONE
channel ch1:
backup
set
complete, elapsed time:
00
:
00
:
03
channel ch1: deleting archive
log
(s)
archive
log
filename
=
E:ORACLEORADATAPENNYARCHIVE_
63
.DBF recid
=
168
stamp
=
511712617
archive
log
filename
=
E:ORACLEORADATAPENNYARCHIVE_
64
.DBF recid
=
169
stamp
=
511712620
archive
log
filename
=
E:ORACLEORADATAPENNYARCHIVE_
65
.DBF recid
=
170
stamp
=
511712626
archive
log
filename
=
E:ORACLEORADATAPENNYARCHIVE_
66
.DBF recid
=
171
stamp
=
511712690
Finished
backup
at
02
-
DEC
-
03
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Starting Control
File
and
SPFILE Autobackup at
02
-
DEC
-
03
piece handle
=
E:ORACLEORA92
DATABASE
C
-
3627775766
-
20031202
-
01
comment
=
NONE
Finished Control
File
and
SPFILE Autobackup at
02
-
DEC
-
03
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
released channel: ch1
我们简单看一下自动备份的控制文件及spfile文件的格式及命名规则:
c-IIIIIIIIII-YYYYMMDD-QQ
c ------------------------控制文件
IIIIIIIIII---------DBID
YYYYMMDD------------时间戳
QQ----------------------序号00-FF,16进制表示
c. 使用自动备份恢复spfile文件
[
oracle@jumper bdump
]
$ rman target
/
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Recovery Manager: Release
9.2
.
0.3
.
0
-
Production
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Copyright (c)
1995
,
2002
, Oracle Corporation.
All
rights reserved.
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
connected
to
target
database
: HSJF (DBID
=
1052178311
)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
RMAN
>
restore
spfile
to
'
/tmp/spfileeygle.ora
'
from
autobackup;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Starting
restore
at
17
-
JAN
-
04
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
using target
database
controlfile instead
of
recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid
=
18
devtype
=
DISK
channel ORA_DISK_1: looking
for
autobackup
on
day
:
20040117
channel ORA_DISK_1: autobackup found: c
-
1052178311
-
20040117
-
01
channel ORA_DISK_1: SPFILE
restore
from
autobackup complete
Finished
restore
at
17
-
JAN
-
04
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
RMAN
>
exit
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Recovery Manager complete.
[
oracle@jumper bdump
]
$ ls
-
l
/
tmp
/
spfileeygle.ora
-
rw
-
r
--
--- 1 oracle dba 3584 1月 17 09:34 /tmp/spfileeygle.ora
你同样可以通过这种方法恢复控制文件,示例如下:
[
oracle@jumper bdump
]
$ rman target
/
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Recovery Manager: Release
9.2
.
0.3
.
0
-
Production
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Copyright (c)
1995
,
2002
, Oracle Corporation.
All
rights reserved.
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
connected
to
target
database
: HSJF (DBID
=
1052178311
)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
RMAN
>
restore
controlfile
to
'
/tmp/control01.ctl
'
from
autobackup;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Starting
restore
at
17
-
JAN
-
04
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
using target
database
controlfile instead
of
recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid
=
10
devtype
=
DISK
channel ORA_DISK_1: looking
for
autobackup
on
day
:
20040117
channel ORA_DISK_1: autobackup found: c
-
1052178311
-
20040117
-
02
channel ORA_DISK_1: controlfile
restore
from
autobackup complete
Finished
restore
at
17
-
JAN
-
04
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
RMAN
>
exit
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Recovery Manager complete.
[
oracle@jumper bdump
]
$ ls
-
l
/
tmp
/
control
*
-
rw
-
r
--
--- 1 oracle dba 1892352 1月 17 09:44 /tmp/control01.ctl
Oracle9i自动备份控制文件的功能给我们带来了极大的收益,通过自动备份,在数据库出现紧急状况的时候,你可能可以从这个自动备份中获得更
为有效及时的控制文件.
缺省的,这个自动备份功能是关闭的,你可以用我们上面提到的方法打开该功能.
七. 设置Events事件
Events事件是Oracle的重要诊断工具及问题解决办法,很多时候需要通过Events设置来屏蔽或者更改Oracle的行为,下面我们来看一下怎样修改spfile,增加Events事件设置
SQL
>
alter
system
set
event
=
'
10841 trace name context forever
'
scope
=
spfile;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
System altered.
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
SQL
>
startup force;
ORACLE instance started.
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Total System Global Area
101782380
bytes
Fixed Size
451436
bytes
Variable Size
75497472
bytes
Database
Buffers
25165824
bytes
Redo Buffers
667648
bytes
Database
mounted.
Database
opened.
SQL
>
show parameter event
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
NAME TYPE VALUE
--
---------------------------------- ----------- ------------------------------
event string
10841
trace name context forever
顺便提一句,10841事件是用于解决Oracle9i中JDBC Thin Driver问题的一个方法,如果你的alert.log文件中出现以下错误提示:
Wed Jan
7
17
:
17
:
08
2004
Errors
in
file
/
opt
/
oracle
/
admin
/
phsdb
/
udump
/
phsdb_ora_1775.trc:
ORA
-
00600
: internal error code, arguments:
[
ttcgcshnd-1
]
,
[
0
]
,
[]
,
[]
,
[]
,
[]
,
[]
,
[]
Wed Jan
7
17
:
17
:
18
2004
Errors
in
file
/
opt
/
oracle
/
admin
/
phsdb
/
udump
/
phsdb_ora_1777.trc:
ORA
-
00600
: internal error code, arguments:
[
ttcgcshnd-1
]
,
[
0
]
,
[]
,
[]
,
[]
,
[]
,
[]
,
[]
Wed Jan
7
17
:
17
:
24
2004
Errors
in
file
/
opt
/
oracle
/
admin
/
phsdb
/
udump
/
phsdb_ora_1783.trc:
ORA
-
00600
: internal error code, arguments:
[
ttcgcshnd-1
]
,
[
0
]
,
[]
,
[]
,
[]
,
[]
,
[]
,
[]
Wed Jan
7
17
:
17
:
31
2004
Errors
in
file
/
opt
/
oracle
/
admin
/
phsdb
/
udump
/
phsdb_ora_1785.trc:
ORA
-
00600
: internal error code, arguments:
[
ttcgcshnd-1
]
,
[
0
]
,
[]
,
[]
,
[]
,
[]
,
[]
,
[]
Wed Jan
7
17
:
17
:
39
2004
Errors
in
file
/
opt
/
oracle
/
admin
/
phsdb
/
udump
/
phsdb_ora_1777.trc:
ORA
-
00600
: internal error code, arguments:
[
ttcgcshnd-1
]
,
[
0
]
,
[]
,
[]
,
[]
,
[]
,
[]
,
[]
Wed Jan
7
17
:
17
:
45
2004
Errors
in
file
/
opt
/
oracle
/
admin
/
phsdb
/
udump
/
phsdb_ora_1783.trc:
ORA
-
00600
: internal error code, arguments:
[
ttcgcshnd-1
]
,
[
0
]
,
[]
,
[]
,
[]
,
[]
,
[]
,
[]
Wed Jan
7
17
:
17
:
52
2004
Errors
in
file
/
opt
/
oracle
/
admin
/
phsdb
/
udump
/
phsdb_ora_1787.trc:
ORA
-
00600
: internal error code, arguments:
[
ttcgcshnd-1
]
,
[
0
]
,
[]
,
[]
,
[]
,
[]
,
[]
,
[]
Wed Jan
7
17
:
18
:
11
2004
Errors
in
file
/
opt
/
oracle
/
admin
/
phsdb
/
udump
/
phsdb_ora_1791.trc:
ORA
-
00600
: internal error code, arguments:
[
ttcgcshnd-1
]
,
[
0
]
,
[]
,
[]
,
[]
,
[]
,
[]
,
[]
Wed Jan
7
17
:
18
:
19
2004
Errors
in
file
/
opt
/
oracle
/
admin
/
phsdb
/
udump
/
phsdb_ora_1785.trc:
ORA
-
00600
: internal error code, arguments:
[
ttcgcshnd-1
]
,
[
0
]
,
[]
,
[]
,
[]
,
[]
,
[]
,
[]
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
那么,很不幸,你很可能是遇到了bug: 1725012
通过设置以上事件,可以屏蔽和解决这个ORA-00600错误.
具体你可以参考Metalink相关文档。
八. 导出SPFILE文件
SPFILE文件可以导出为文本文件,使用导出、创建过程你可以向SPFILE中添加参数。
SQL
>
create
pfile
=
'
e:initeyglen.ora
'
from
spfile;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
文件已创建。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
SQL
>
shutdown
immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
然后我们可以使用这个pfile,或者手动修改其中的参数以启动数据库。
我们修改这个pfile,增加一行
*.log_archive_start=true
使用这个PFILE启动数据库
SQL
>
startup pfile
=
'
e:initeyglen.ora
'
ORACLE 例程已经启动。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Total System Global Area
135338868
bytes
Fixed Size
453492
bytes
Variable Size
109051904
bytes
Database
Buffers
25165824
bytes
Redo Buffers
667648
bytes
数据库装载完毕。
数据库已经打开。
SQL
>
show parameter log_archive_start
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
NAME TYPE
--
---------------------------------- ----------------------
VALUE
--
----------------------------
log_archive_start boolean
TRUE
SQL
>
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
然后我们可以使用新的PFILE创建SPFILE
SQL
>
create
spfile
from
pfile
=
'
e:initeyglen.ora
'
;
文件已创建。
重新启动数据库,新的SPFILE生效。
SQL
>
startup
ORACLE 例程已经启动。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Total System Global Area
135338868
bytes
Fixed Size
453492
bytes
Variable Size
109051904
bytes
Database
Buffers
25165824
bytes
Redo Buffers
667648
bytes
数据库装载完毕。
数据库已经打开。
SQL
>
show parameter spfile
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
NAME TYPE
--
---------------------------------- ----------------------
VALUE
--
----------------------------
spfile string
%
ORACLE_HOME
%
DATABASE
SPFILE
%
ORACLE_SID
%
.ORA
SQL
>
show parameter log_archive_start
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
NAME TYPE
--
---------------------------------- ----------------------
VALUE
--
----------------------------
log_archive_start boolean
TRUE
SQL
>
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
九. 关于920的PFILE
在$ORACLE_BASE/admin/db_name/spfile下,你很可能可以看到一个类似这样[init.ora.192003215317]名字的文件,这就是初始化
参数文件,只是跟上了时间戳。
对于Oracle920,缺省的就使用spfile启动,但是这个spfile不是凭空而来,而是根据这个文件创建而来,你可以去掉这个长后缀,就是标准的
pfile文件了。
如果手动创建数据库,可以看到以下的过程:
SQL
>
create
spfile
=
'
e:oracleora10Gdatabasespfilesunny.ora
'
FROM
pfile
=
'
E:oracleadminsunnyscriptsinit.ora
'
;
文件已创建。
如果你想要使用pfile启动数据库,那么你可以把spfile改名,NT缺省位于$ORACLE_HOME/database下,这样Oracle就不会使用这个spfile了 。
你使用create pfile from spfile命令创建的pfile,也应该在这个目录下
以下是一个完整的例子:
E:OracleOra9iR2
database
>
dir
*
.ora
驱动器 E 中的卷是 Doc
卷的序列号是 980C
-
8EFF
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
E:OracleOra9iR2
database
的目录
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
2003
-
02
-
26
10
:
49
1
,
028
INITeyglen.ORA
2003
-
02
-
10
14
:
35
2
,
048
PWDeyglen.ORA
2003
-
02
-
26
11
:
05
3
,
584
SPFILEEYGLEN.ORA
3
个文件
6
,
660
字节
0
个目录
937
,
455
,
616
可用字节
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
E:OracleOra9iR2
database
>
sqlplus
/
nolog
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
SQL
*
Plus: Release
9.2
.
0.1
.
0
-
Production
on
星期三 2月
26
11
:
16
:
29
2003
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Copyright (c)
1982
,
2002
, Oracle Corporation.
All
rights reserved.
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
SQL
>
connect
/
as
sysdba
已连接到空闲例程。
SQL
>
startup
ORACLE 例程已经启动。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Total System Global Area
135338868
bytes
Fixed Size
453492
bytes
Variable Size
109051904
bytes
Database
Buffers
25165824
bytes
Redo Buffers
667648
bytes
数据库装载完毕。
数据库已经打开。
SQL
>
show parameter spfile
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
NAME TYPE
--
---------------------------------- ----------------------
VALUE
--
----------------------------
spfile string
%
ORACLE_HOME
%
DATABASE
SPFILE
%
ORACLE_SID
%
.ORA
SQL
>
shutdown
immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL
>
host rename SPFILEEYGLEN.ORA SPFILEEYGLEN.ORA.bak
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
SQL
>
host dir
*
.ora
驱动器 E 中的卷是 Doc
卷的序列号是 980C
-
8EFF
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
E:OracleOra9iR2
database
的目录
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
2003
-
02
-
26
10
:
49
1
,
028
INITeyglen.ORA
2003
-
02
-
10
14
:
35
2
,
048
PWDeyglen.ORA
2
个文件
3
,
076
字节
0
个目录
937
,
435
,
136
可用字节
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
SQL
>
startup
ORACLE 例程已经启动。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Total System Global Area
135338868
bytes
Fixed Size
453492
bytes
Variable Size
109051904
bytes
Database
Buffers
25165824
bytes
Redo Buffers
667648
bytes
数据库装载完毕。
数据库已经打开。
SQL
>
show parameter spfile
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
NAME TYPE
--
---------------------------------- ----------------------
VALUE
--
----------------------------
spfile string
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
SQL
>
SQL
>
host rename SPFILEEYGLEN.ORA.bak SPFILEEYGLEN.ORA
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
SQL
>
shutdown
immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL
>
startup
ORACLE 例程已经启动。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Total System Global Area
135338868
bytes
Fixed Size
453492
bytes
Variable Size
109051904
bytes
Database
Buffers
25165824
bytes
Redo Buffers
667648
bytes
数据库装载完毕。
数据库已经打开。
SQL
>
show parameter spfile
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
NAME TYPE
--
---------------------------------- ----------------------
VALUE
--
----------------------------
spfile string
%
ORACLE_HOME
%
DATABASE
SPFILE
%
ORACLE_SID
%
.ORA
SQL
>