|
|

楼主 |
发表于 2006/11/6 20:35:52
|
显示全部楼层
. 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 例程已经启动。
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 ALUE
------------------------------------ -------- ----------
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
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,可以使用以下方法:
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>
关于920的PFILE
在$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>
(END) |
|