Chinaunix首页 | 论坛 | 博客
  • 博客访问: 142532
  • 博文数量: 12
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 600
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-09 14:36
文章分类

全部博文(12)

文章存档

2011年(1)

2008年(11)

我的朋友

分类: Oracle

2008-05-07 16:26:49

 是否使用了spfile

判断是否使用了SPFILE,可以使用以下方法:

1.查询v$parameter动态视图,如果以下查询返回空值,那么你在使用pfile.

 SQL> SELECT name,value FROM v$parameter WHERE name='spfile';

 

NAME                   VALUE

------------           ---------------------------------

spfile                 %ORACLE_HOME%\DATABASE\SPFILE%ORACLE_SID%.ORA

 

2.或者你可以使用SHOW命令来显示参数设置,如果以下结果value列返回空值,那么说明你在使用pfile:

 

SQL> SHOW PARAMETER spfile

 

NAME                      TYPE    VALUE

------------------------- ------  ---------------

spfile                    string  %ORACLE_HOME%\DATABASE\SPFILE%ORACLE_SID%.ORA

 

 3.查询v$spparameter视图

如果以下查询返回0值,表示你在使用pfile,否则表明你使用的是spfile:

SQL> SELECT COUNT(*) FROM v$spparameter WHERE value IS NOT NULL;

  COUNT(*)

----------

        32

 

或者使用以下查询,如果true值返回非0值,那么说明我们使用的是spfile.

SQL> SELECT   isspecified, COUNT (*) FROM v$spparameter

2 GROUP BY isspecified;

ISSPECIFIED    COUNT(*)

------------ ----------

FALSE               226

TRUE                 33


更为直接的:

SQL> select decode(count(*), 1, 'spfile', 'pfile' ) USED

  2  from v$spparameter

  3  where rownum=1 and isspecified='TRUE'

  4  /


USED

------------

spfile

 


 

SPFILE文件

SPFILE文件可以导出为文本文件,使用导出、创建过程你可以向SPFILE中添加参数。

SQL> create pfile='e:\initeyglen.ora' from spfile;

文件已创建。

SQL> SHUTDOWN immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

 

Initeyglen.ora文件的内容:

*.aq_tm_processes=1

*.background_dump_dest='e:\Oracle\admin\eyglen\bdump'

*.compatible='9.2.0.0.0'

*.control_files='e:\Oracle\oradata\eyglen\control01.ctl',

'e:\Oracle\oradata\eyglen\control02.ctl',

'e:\Oracle\oradata\eyglen\control03.ctl'

*.core_dump_dest='e:\Oracle\admin\eyglen\cdump'

*.db_block_size=8192

*.db_cache_size=25165824

*.db_domain=''

*.db_file_multiblock_read_count=16

*.db_name='eyglen'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=eyglenXDB)'

*.fast_start_mttr_target=300

*.hash_join_enabled=TRUE

*.instance_name='eyglen'

*.java_pool_size=33554432

*.job_queue_processes=10

*.large_pool_size=8388608

*.open_cursors=300

*.pga_aggregate_target=25165824

*.processes=150

*.query_rewrite_enabled='FALSE'

*.remote_login_passwordfile='EXCLUSIVE'

*.shared_pool_size=50331648

*.sort_area_size=524288

*.sql_trace=FALSE

*.star_transformation_enabled='FALSE'

*.timed_statistics=TRUE

*.undo_management='AUTO'

*.undo_retention=10800

*.undo_tablespace='UNDOTBS1'

*.user_dump_dest='e:\Oracle\admin\eyglen\udump'

 

然后我们可以使用这个pfile,或者手动修改其中的参数以启动数据库。

 

我们修改这个pfile,增加一行:

 

*.log_archive_start=true

 

使用这个PFILE启动数据库:

 


SQL>STARTUP pfile='e:\initeyglen.ora'

ORACLE 例程已经启动。

 

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

NAME                                 TYPE      VALUE ------------------------------------ --------  ------------

log_archive_start                    boolean   TRUE

SQL>

 

然后我们可以使用新的PFILE创建SPFILE

SQL> CREATE spfile FROM pfile='e:\initeyglen.ora';

文件已创建。

 

重新启动数据库,新的SPFILE生效。

 

SQL> STARTUP

ORACLE 例程已经启动。

 

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

 

NAME                    TYPE    VALUE

---------------------   ------  ----------------------------

spfile                  string  %ORACLE_HOME%\DATABASE\SPFILE%ORACLE_SID%.ORA

SQL> show parameter log_archive_start

 

NAME                    TYPE    VALUE

---------------------   ------  ----------------------

log_archive_start       boolean TRUE

SQL>


920PFILE

$ORACLE_BASE\admin\db_name\spfile下,你很可能可以看到一个类似这样
[init.ora.192003215317]
名字的文件,这就是初始化参数文件,只是跟上了时间戳。

 

对于Oracle920,缺省的就使用spfile启动,但是这个spfile 不是凭空而来,而是根据这个文件创建而来,你可以去掉这个长后缀,就是标准的pfile文件了。

 

如果你想要使用pfile启动数据库,那么你可以把spfile改名,NT缺省位于$ORACLE_HOME\database下,这样Oracle就不会使用这个spfile

 

你使用create pfile from spfile命令创建的pfile,也应该在这个目录下

 

以下是一个完整的例子:

 

E:\Oracle\Ora9ir2\database>dir *.ora

 驱动器 E 中的卷是 Doc

 卷的序列号是 980C-8EFF

 

 E:\Oracle\Ora9iR2\database 的目录

 

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 可用字节

 

E:\Oracle\Ora9iR2\database> SQLPLUS /nolog

 

SQL*Plus: Release 9.2.0.1.0 - Production on 星期三 2 26 11:16:29 2003

 

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

 

SQL> CONNECT / as sysdba

已连接到空闲例程。

 

SQL> startup

ORACLE 例程已经启动。

 

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

 

NAME                 TYPE     VALUE

-------------------- -------  ----------

spfile               string   %ORACLE_HOME%\DATABASE\SPFILE%ORACLE_SID%.ORA

SQL> SHUTDOWN immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> host rename SPFILEEYGLEN.ORA SPFILEEYGLEN.ORA.bak

 

SQL> host dir *.ora

 驱动器 E 中的卷是 Doc

 卷的序列号是 980C-8EFF

 

 E:\Oracle\Ora9iR2\database 的目录

 

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 可用字节

 

SQL> STARTUP

ORACLE 例程已经启动。

 

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

NAME                                 TYPE        VALUE

------------------------------------ ----------  ----------

spfile                               string

SQL>

SQL> host rename SPFILEEYGLEN.ORA.bak SPFILEEYGLEN.ORA

 

SQL> SHUTDOWN immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup

ORACLE 例程已经启动。

 

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

 

NAME                   TYPE     VALUE

---------------------  ------   --------------

spfile                 string   %ORACLE_HOME%\DATABASE\SPFILE%ORACLE_SID%.ORA

SQL>

阅读(714) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~