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 PFILE%
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 pfile下,你很可能可以看到一個類似這樣[init.ora.192003215317]名字的文件,這就是初始化
參數文件,只是跟上了時間戳。
對于Oracle920,缺省的就使用spfile啟動,但是這個spfile不是憑空而來,而是根據這個文件創建而來,你可以去掉這個長后綴,就是標準的
pfile文件了。
假如手動創建數據庫,可以看到以下的過程:
SQL> create spfile='e:/oracle/ora10G/database pfilesunny.ora'
FROM pfile='E:/oracle/admin unny cripts/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
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 PFILE%
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 PFILE%
ORACLE_SID%.ORA
SQL>
<<上一頁 下一頁>>
本文作者:
eygle,Oracle技術關注者,來自中國最大的Oracle技術論壇itpub.
www.eygle.com是作者的個人站點.你可通過Guoqiang.Gai@Gmail.com來聯系作者.歡迎技術探討交流以及鏈接交換.
原文出處:
http://www.eygle.com/faq/Oracle9i.New.Feature.Spfile.05.htm