Oracle9i新特点:SPFILE的使用
--How to set events with spfile and etc.
Last Updated: Wednesday, 2004-10-27 0:39 Eygle
|
本文发表于itpub技术丛书《Oracle数据库DBA专题技术精粹》,未经许可,严禁转载本文.
原文出处:
http://www.eygle.com/faq/Oracle9i.New.Feature.Spfile.05.htm
七. 设置Events事件
Events事件是Oracle的重要诊断工具及问题解决办法,很多时候需要通过Events设置来屏蔽或者更改Oracle的行为,下面我们来看一下怎样修改spfile,增加Events事件设置:
|
>
>
>
> SQL> alter system set event='10841 trace name context forever' scope=spfile;
>
> System altered.
>
> SQL> startup force;
> ORACLE instance started.
>
> 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
>
> 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], [], [], [], [], [], []
>
>
>
>
那么,很不幸,你很可能是遇到了bug: 1725012
通过设置以上事件,可以屏蔽和解决这个ORA-00600错误.
具体你可以参考Metalink相关文档。
八. 导出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文件了。
如果手动创建数据库,可以看到以下的过程:
>
> SQL> create spfile='e:\oracle\ora10G\database\spfilesunny.ora'
> >
> FROM pfile='E:\oracle\admin\sunny\scripts\init.ora';
>
文件已创建。
如果你想要使用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
>
> SQLPlus: 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>
<<上一页 下一页>>
本文作者:
eygle,Oracle技术关注者,来自中国最大的Oracle技术论坛 itpub .
www.eygle.com 是作者的个人站点.你可通过 [email protected] 来联系作者.欢迎技术探讨交流以及链接交换.
原文出处:
http://www.eygle.com/faq/Oracle9i.New.Feature.Spfile.05.htm