一.在系統(tǒng)級別上設(shè)置sql跟蹤
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名申請、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、惠城網(wǎng)站維護、網(wǎng)站推廣。
該方法優(yōu)點:可以跟蹤所有的oracle的后臺進程所執(zhí)行的sql,包括系統(tǒng)后臺進程和用戶進程,并且可以跟蹤所有的操作
缺點:跟蹤所有的后臺進程,跟蹤信息量比較大
1.在sqlplus中以sys/ as sysdba身份登陸到數(shù)據(jù)庫。
2.打開跟蹤,在sqlplus中輸入alter sysetem set events '10046 trace name context forever,level level';
(其中l(wèi)evel可以輸入1,4,8,12三個級別,不同的級別含有不同級別的信息)
3.然后到ArcMap或ArcCatalog中進行你想跟蹤的操作
4.關(guān)閉跟蹤,在sqlplus中輸入alter systemm set events '10046 trace name context off';
5.查找你所跟蹤的session的ID
A 修改時間格式:alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
B.對使用sde服務(wù)的輸入:select sid,logon_time from v$session where username=username and program='gsrvr.exe';
C.對直連這種方式輸入:select sid,logon_time from v$session where username=username and program='ArcCatalog';
select sid,logon_time from v$session where username=username and program='ArcMap';
(其中username是程序登陸到數(shù)據(jù)庫的用戶名,如果返回多個結(jié)果,在根據(jù)登陸的時間確定具體的sid值)
6.執(zhí)行以下的sql語句
SELECT d.VALUE
|| '/'
|| LOWER (RTRIM (i.INSTANCE, CHR (0)))
|| '_ora_'
|| p.spid
|| '.trc' trace_file_name
FROM (SELECT p.spid
FROM v$mystat m, v$session s, v$process p
WHERE m.statistic# = 1 AND s.SID = SID AND p.addr = s.paddr) p,
(SELECT t.INSTANCE
FROM v$thread t, v$parameter v
WHERE v.NAME = 'thread'
AND (v.VALUE = 0 OR t.thread# = TO_NUMBER (v.VALUE))) i,
(SELECT VALUE
FROM v$parameter
WHERE NAME = 'user_dump_dest') d
在輸入sid后,即得到后臺的跟蹤文件。
二. 在session級別上設(shè)置跟蹤
該方法只適用于跟蹤登陸數(shù)據(jù)后所進行的一系列的操作,比如跟蹤在ArcCatalog中創(chuàng)建一個Dataset,FeatureClass等的操作
1.在sqlplus中以sys / as sysdba身份登陸到數(shù)據(jù)庫
2.查找你所要跟蹤的session的sid和serial#
A 修改時間格式:alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
B.對使用sde服務(wù)的輸入:select sid,serial#,logon_time from v$session where username=username and program='gsrvr.exe';
C.對直連這種方式輸入:select sid,serial#,logon_time from v$session where username=username and program='ArcCatalog';
select sid,serial#,logon_time from v$session where username=username and program='ArcMap';
(其中username是程序登陸到數(shù)據(jù)庫的用戶名,如果返回多個結(jié)果,在根據(jù)登陸的時間確定具體的sid和serial#的值)
3.開始跟蹤,輸入exec dbms_support.start_trace_in_session(sid,serial#,true,true).(如果系統(tǒng)沒有安裝dbms_support包,可以執(zhí)行$ORACLE_HOME\rdbms\admin\dbmssupp.sql進行安裝)
4.然后到ArcMap或ArcCatalog中進行你想跟蹤的操作
5.結(jié)束跟蹤exec dbms_support.stop_trace_in_session(sid,serial#);
6.執(zhí)行以下的sql語句
SELECT d.VALUE
|| '/'
|| LOWER (RTRIM (i.INSTANCE, CHR (0)))
|| '_ora_'
|| p.spid
|| '.trc' trace_file_name
FROM (SELECT p.spid
FROM v$mystat m, v$session s, v$process p
WHERE m.statistic# = 1 AND s.SID = SID AND p.addr = s.paddr) p,
(SELECT t.INSTANCE
FROM v$thread t, v$parameter v
WHERE v.NAME = 'thread'
AND (v.VALUE = 0 OR t.thread# = TO_NUMBER (v.VALUE))) i,
(SELECT VALUE
FROM v$parameter
WHERE NAME = 'user_dump_dest') d
在輸入sid后,即得到后臺的跟蹤文件。
三. 在Aix系統(tǒng)下跟蹤消耗內(nèi)存的session的辦法
1.在Aix系統(tǒng)上執(zhí)行export TERM=vt100
2.執(zhí)行topas命令,確定最占cpu資源的process的進程號
3,然后利用select a.sid,b.serial# from v$session a,v$process b where a.paddr=b.addr and b.spid=spid;
4.確定sid和serial#后利用二方法進行跟蹤。
可能原因如,請一一核對:
1、如果你以sys用戶登錄的話,連接身份請選擇【as sysdba】
說明:如果你的sys用戶密碼在安裝的時候沒有修改,他的默認密碼是:
【change_on_install】。
如果你改了忘記了,可以利用如下方法重置:
1)進入cmd
2)sqlplus / as sysdba
3)alter user sys identified by 新密碼;
2、如果是你新建的普通用戶登錄的話,用戶名和密碼請重新確認是否正確,如果實在是確認不了的話,使用sqlplus工具按照如下方式重新建一個用戶再試
1)進入cmd
2)sqlplus / as sysdba 或者 sqlplus sys/密碼 as sysdba
3) create user 用戶名 identified by 密碼;
4) grant connect,resource to 用戶名;
5) conn 用戶名/密碼
說明:如果第 5)步可以連接成功說明,用戶建立成功,就可以用這個用戶登錄了。
---
以上,希望對你有所幫助。
登錄時需要加連接字符串:數(shù)據(jù)庫名 as sysdba 進入后執(zhí)行: grant connect to scott 這樣scott用戶就可以使用了
運行sqlplus然后看標題欄里面顯示的sqlplus.exe的安裝路徑;然后去同樣路徑下Network\Admin找到tnsnames.ora文件;用txt打開,加入你建的數(shù)據(jù)庫實例名 如:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 機器IP)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
保存。
以后再運行sqlplus /nolog conn sys/psw@ORCL as sysdba