如果是設(shè)備數(shù)據(jù)類的 用專門的軟件 如果是儀表的 可以用帝視信恒監(jiān)控設(shè)備,性價(jià)比會(huì)高
在金湖等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需定制開(kāi)發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都營(yíng)銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè),金湖網(wǎng)站建設(shè)費(fèi)用合理。
Oracle數(shù)據(jù)庫(kù)診斷文件(日志)查看
Diagnostic File(診斷文件)
1:診斷文件的作用
Diagnostic files :
包含了后臺(tái)遇見(jiàn)重大事件的信息。
被用于解析問(wèn)題,
被用于日常管理日志文件。
2:診斷文件日志的分類
分為兩類:
1: alterSID.log
-----background trace files (后臺(tái)進(jìn)程跟蹤文件)
2: trace files ---
-----user trace file (用戶trace 文件)
1:對(duì)于Background trace files文件的命名:
命名方式: SID_processname_PID.trc 對(duì)應(yīng)解釋 SID_進(jìn)程名_進(jìn)程號(hào).trc
2: 對(duì)于user trace files 的文件命名為:
SID_ora_PID.trc 解釋: SID_ora_進(jìn)程號(hào).trc
3:對(duì)于 alertSID.log 說(shuō)明:
這個(gè)文件是為了記錄: 1:記錄一些操作命令
2:記錄主要事件的結(jié)果
3:以及日常的操作信息
4:被用于診斷數(shù)據(jù)庫(kù)錯(cuò)誤
每一個(gè)entry 都有一個(gè)time stamp(時(shí)間戳)和它關(guān)聯(lián)
該文件必須被ORACLE DBA管理
這個(gè)文件的位置在: BACKGROUND_DUMP_DEST
通過(guò) show parameter dump 查看這個(gè)文件的位置:
這個(gè)文件中也包含數(shù)據(jù)庫(kù)的啟動(dòng)信息相當(dāng)于pfile或者spfile的內(nèi)容。
用管理員登錄:
2:下面是實(shí)戰(zhàn)操作:
首先用sysdba登錄后執(zhí)行:
[sql]
SQL show parameter dump
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
background_core_dump string partial
background_dump_dest string d:\app\topwqp\diag\rdbms\orcl\
orcl\trace
core_dump_dest string d:\app\topwqp\diag\rdbms\orcl\
orcl\cdump
max_dump_file_size string unlimited
shadow_core_dump string none
user_dump_dest string d:\app\topwqp\diag\rdbms\orcl\
orcl\trace
可以看到這些文件的路徑信息。
根據(jù)顯式的信息我找到我的文件位置:
目錄結(jié)構(gòu)如下:
下面說(shuō)一下如何才能記錄信息到這些日志文件,需要一些開(kāi)關(guān),如果不開(kāi),記錄的只是
一點(diǎn)點(diǎn)信息而已:
兩種方式 能夠讓用戶tracing
1:session 級(jí)別的:
使用如下命令:
ALTER SESSSION SET SQL_TRACE = TRUE
第二種是執(zhí)行如下存儲(chǔ)過(guò)程:
dbms_system.SET_SQL_TRACE_IN_SESSION
第二個(gè)方式是 instance級(jí)別的:
設(shè)置初始化參數(shù): SQL_TRACE = TRUE
一般采用session級(jí)別的。因?yàn)樵O(shè)置instance級(jí)別的容易造成log文件過(guò)大;
可以通過(guò)alterSID.log文件中的信息制作pfile 或者spfile文件啟動(dòng)
數(shù)據(jù)庫(kù)。
下面采用session級(jí)別的修改sql_trace為true即可在user_dump_dest中對(duì)應(yīng)文件中看到相應(yīng)的信息。
[sql]
SQL conn /as sysdba
已連接。
SQL alter session set sql_trace = true;
會(huì)話已更改。
執(zhí)行過(guò)后:查看
orcl_ora_7188.trc文件信息 PS:如果不知道哪個(gè)文件就把這個(gè)目錄下的全部刪除,再執(zhí)行sql就會(huì)看到生成的文件:
查看這個(gè)文件信息如下:
很詳細(xì)的執(zhí)行信息:
比如一個(gè)語(yǔ)句為:select * from dual
這個(gè)文件中會(huì)生成如下信息:
[plain]
*** 2013-06-13 22:58:20.776
=====================
PARSING IN CURSOR #1 len=18 dep=0 uid=0 oct=3 lid=0 tim=9184375464 hv=942515969 ad='232363f8' sqlid='a5ks9fhw2v9s1'
select * from dual
END OF STMT
PARSE #1:c=0,e=32,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=9184375458
EXEC #1:c=0,e=50,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=9184376205
FETCH #1:c=0,e=109,p=0,cr=3,cu=0,mis=0,r=1,dep=0,og=1,tim=9184376423
STAT #1 id=1 cnt=1 pid=0 pos=1 obj=115 op='TABLE ACCESS FULL DUAL (cr=3 pr=0 pw=0 time=0 us cost=2 size=2 card=1)'
FETCH #1:c=0,e=2,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=0,tim=9184376893
是對(duì)這個(gè)sql的執(zhí)行的詳細(xì)解讀分析
下面貼上今天的部分執(zhí)行的信息:
[plain]
*** 2013-06-13 22:58:20.776
=====================
PARSING IN CURSOR #1 len=18 dep=0 uid=0 oct=3 lid=0 tim=9184375464 hv=942515969 ad='232363f8' sqlid='a5ks9fhw2v9s1'
select * from dual
END OF STMT
PARSE #1:c=0,e=32,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=9184375458
EXEC #1:c=0,e=50,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=9184376205
FETCH #1:c=0,e=109,p=0,cr=3,cu=0,mis=0,r=1,dep=0,og=1,tim=9184376423
STAT #1 id=1 cnt=1 pid=0 pos=1 obj=115 op='TABLE ACCESS FULL DUAL (cr=3 pr=0 pw=0 time=0 us cost=2 size=2 card=1)'
FETCH #1:c=0,e=2,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=0,tim=9184376893
*** 2013-06-13 23:15:15.474
=====================
PARSING IN CURSOR #1 len=289 dep=0 uid=0 oct=3 lid=0 tim=10199053291 hv=2462394820 ad='232017e0' sqlid='7cfz5wy9caaf4'
SELECT NAME
NAME_COL_PLUS_SHOW_PARAM,DECODE(TYPE,1,'boolean',2,'string',3,'integer',4,'file',5,'number',
6,'big integer', 'unknown') TYPE,DISPLAY_VALUE
VALUE_COL_PLUS_SHOW_PARAM FROM V$PARAMETER WHERE UPPER(NAME) LIKE
UPPER(:NMBIND_SHOW_OBJ) ORDER BY NAME_COL_PLUS_SHOW_PARAM,ROWNUM
END OF STMT
PARSE #1:c=0,e=438,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,tim=10199053285
=====================
PARSING IN CURSOR #2 len=210 dep=1 uid=0 oct=3 lid=0 tim=10199056088 hv=864012087 ad='29162590' sqlid='96g93hntrzjtr'
select /*+ rule */ bucket_cnt, row_cnt, cache_cnt, null_cnt,
timestamp#, sample_size, minimum, maximum, distcnt, lowval, hival,
density, col#, spare1, spare2, avgcln from hist_head$ where obj#=:1 and
intcol#=:2
END OF STMT
PARSE #2:c=0,e=568,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=3,tim=10199056084
EXEC #2:c=0,e=1024,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=3,tim=10199057412
FETCH #2:c=0,e=30,p=0,cr=2,cu=0,mis=0,r=0,dep=1,og=3,tim=10199057533
STAT #2 id=1 cnt=0 pid=0 pos=1 obj=411 op='TABLE ACCESS BY INDEX ROWID HIST_HEAD$ (cr=2 pr=0 pw=0 time=0 us)'
STAT #2 id=2 cnt=0 pid=1 pos=1 obj=413 op='INDEX RANGE SCAN I_HH_OBJ#_INTCOL# (cr=2 pr=0 pw=0 time=0 us)'
=====================
PARSING IN CURSOR #2 len=210 dep=1 uid=0 oct=3 lid=0 tim=10199057848 hv=864012087 ad='29162590' sqlid='96g93hntrzjtr'
select /*+ rule */ bucket_cnt, row_cnt, cache_cnt, null_cnt,
timestamp#, sample_size, minimum, maximum, distcnt, lowval, hival,
density, col#, spare1, spare2, avgcln from hist_head$ where obj#=:1 and
intcol#=:2
END OF STMT
EXEC #2:c=0,e=25,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=3,tim=10199057844
FETCH #2:c=0,e=13,p=0,cr=2,cu=0,mis=0,r=0,dep=1,og=3,tim=10199058128
EXEC #1:c=0,e=7034,p=0,cr=4,cu=0,mis=1,r=0,dep=0,og=1,tim=10199060756
FETCH #1:c=15600,e=13882,p=0,cr=0,cu=0,mis=0,r=1,dep=0,og=1,tim=10199075783
FETCH #1:c=0,e=21,p=0,cr=0,cu=0,mis=0,r=5,dep=0,og=1,tim=10199076326
STAT #1 id=1 cnt=6 pid=0 pos=1 obj=0 op='SORT ORDER BY (cr=0 pr=0 pw=0 time=0 us cost=2 size=2115 card=1)'
STAT #1 id=2 cnt=6 pid=1 pos=1 obj=0 op='COUNT (cr=0 pr=0 pw=0 time=8 us)'
STAT #1 id=3 cnt=6 pid=2 pos=1 obj=0 op='HASH JOIN (cr=0 pr=0 pw=0 time=6 us cost=1 size=2115 card=1)'
STAT #1 id=4 cnt=35 pid=3 pos=1 obj=0 op='FIXED TABLE FULL X$KSPPI (cr=0 pr=0 pw=0 time=70 us cost=0 size=81 card=1)'
STAT #1 id=5 cnt=1915 pid=3 pos=2 obj=0 op='FIXED TABLE FULL X$KSPPCV (cr=0 pr=0 pw=0 time=19 us cost=0 size=203400 card=100)'
關(guān)于alter_SID.log中的內(nèi)容如下: 今天的:
注意這個(gè)文件中包含Oracle啟動(dòng)的參數(shù)信息:可以利用這些信息配置spfile或者pfile文件嘗試用這個(gè)配置的文件啟動(dòng)數(shù)據(jù)庫(kù)也可以的
[plain]
Thu Jun 13 22:13:43 2013
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Picked latch-free SCN scheme 2
Using LOG_ARCHIVE_DEST_1 parameter default value as D:\app\topwqp\product\11.1.0\db_1\RDBMS
Using LOG_ARCHIVE_DEST_10 parameter default value as USE_DB_RECOVERY_FILE_DEST
Autotune of undo retention is turned on.
IMODE=BR
ILAT =18
LICENSE_MAX_USERS = 0
SYS auditing is disabled
Starting up ORACLE RDBMS Version: 11.1.0.6.0.
Using parameter settings in server-side spfile D:\APP\TOPWQP\PRODUCT\11.1.0\DB_1\DATABASE\SPFILEORCL.ORA
System parameters with non-default values:
processes = 150
memory_target = 412M
control_files = "D:\APP\TOPWQP\ORADATA\ORCL\CONTROL01.CTL"
control_files = "D:\APP\TOPWQP\ORADATA\ORCL\CONTROL02.CTL"
control_files = "D:\APP\TOPWQP\ORADATA\ORCL\CONTROL03.CTL"
db_block_size = 8192
compatible = "11.1.0.0.0"
db_recovery_file_dest = "D:\app\topwqp\flash_recovery_area"
db_recovery_file_dest_size= 2G
fast_start_mttr_target = 0
undo_tablespace = "UNDOTBS1"
remote_login_passwordfile= "EXCLUSIVE"
db_domain = ""
dispatchers = "(PROTOCOL=TCP) (SERVICE=orclXDB)"
audit_file_dest = "D:\APP\TOPWQP\ADMIN\ORCL\ADUMP"
audit_trail = "DB"
db_name = "orcl"
open_cursors = 300
diagnostic_dest = "D:\APP\TOPWQP"
Thu Jun 13 22:13:46 2013
PMON started with pid=2, OS id=1888
Thu Jun 13 22:13:46 2013
VKTM started with pid=3, OS id=4296 at elevated priority
Thu Jun 13 22:13:46 2013
DIAG started with pid=4, OS id=6804
VKTM running at (20)ms precision
Thu Jun 13 22:13:46 2013
其實(shí)你可以在user_tables表上建立觸發(fā)器,當(dāng)這個(gè)表的數(shù)據(jù)發(fā)生變化時(shí),你用觸發(fā)器往記錄表里插入數(shù)據(jù)。
不是很清楚你的問(wèn)題和要求,
修改程序后, 你說(shuō)的所有記錄都存放在表中,是指所有對(duì)表的操作,還是僅跟你修改的程序相關(guān)的表操作
如果僅表示你修改的某個(gè)程序,相關(guān)的數(shù)量較多的表被修改, 你的要求是否要查到那些已經(jīng)被修改的表的信息.
(如果該程序可以重新執(zhí)行, 可以在程序的前與后,對(duì)該會(huì)話增加SQL_TRACE, 就可以從生成的trace文件中知道你的程序究竟對(duì)哪些表作了修改
222222222222222
查看歸檔模式
conn
/as
sysdba
archive
log
list
如果數(shù)據(jù)庫(kù)為歸檔模式的話,可以通過(guò)logmnr來(lái)進(jìn)行挖掘日志文件查看這些信息的。如果是非歸檔模式。對(duì)不起無(wú)法查看了
開(kāi)啟后臺(tái)進(jìn)程跟蹤,
設(shè)置參數(shù)(initsid.ora)
.backgroudn_dump_dest=目錄名
--
指定根蹤文件存放的路徑
.user_dmup_test=目錄名
--指定用戶信息跟蹤文件的存放路徑
.用戶的跟蹤文件(.trc),
用TKPROF
來(lái)格式化用戶跟蹤文件
SQL
語(yǔ)句跟蹤即可。
.imed_statistics=true;
--設(shè)置啟用
sql_trace
=true;
.user_dump_dest=目錄
--指定跟蹤文件的存放路徑
.max_dump_file_size=5M
--指定跟蹤文件最大尺寸
.SQL_TRACE=TRUE;
.動(dòng)態(tài)改變
:alter
session
set
sql_trace=true;
或者打開(kāi)生成的跟蹤文件:
默認(rèn)在..\oralce\admin\user\udump\*.trc,由于oralce
生成的*.trc
直接打開(kāi)格式不規(guī)格,看得很累,可以用tkprof
gk
來(lái)格式化
:c:\tkprof
ora00001.trc
a.txt
查看的方法和詳細(xì)的操作步驟如下:
1、首先,因?yàn)閛racle在Linux系統(tǒng)下運(yùn)行,所以必須連接到Linux系統(tǒng),如下圖所示,然后進(jìn)入下一步。
2、其次,完成上述步驟后,連接成功,進(jìn)入Oracle控制臺(tái)。
輸入命令“sqlplus / as sysdba”,如下圖所示,然后進(jìn)入下一步。
3、接著,完成上述步驟后,在sql命令行上,輸入以下代碼,如下圖所示,然后進(jìn)入下一步。
4、最后,完成上述步驟后,就可以查看相應(yīng)的結(jié)果了,如下圖所示。這樣,問(wèn)題就解決了。