真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle后臺怎么使用,怎么進oracle

如何讓sql語句在oracle后臺運行,怎么查看后臺運行的程序,謝謝?

sql要在后臺運行的的話你只有寫shell腳本了:

網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、微信小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了廣東免費建站歡迎大家使用!

sqlplus username/password@orcl !

select xxxxxxx --這里填你想要執(zhí)行的語句

exit

!

(在數(shù)據(jù)庫本地執(zhí)行的時候可以不帶連接串,直接用sqlplus username/password ! 即可)

編寫完腳本后在操作系統(tǒng)下執(zhí)行:

nohup ./mysql.sh 或者 ./mysql.sh

(這里暫定你的shell腳本名是mysql.sh可以自己改)

使用jobs命令就可查看你后臺運行的程序?;蛘呤褂?ps -ef|grep mysql.sh 也能看到。

當然了使用了nohup參數(shù)后在當前目錄會生成nohup.out的輸出文件,你也可以在這個文件中查看腳本執(zhí)行的進度。

簡要說明多進程oracle實例進程中各后臺進程的作用

1、DBWR進程:該進程執(zhí)行將緩沖區(qū)寫入數(shù)據(jù)文件,是負責緩沖存儲區(qū)管理的一個Oracle后臺進程。當緩沖區(qū)中的一緩沖區(qū)被修改,它被標志為“弄臟”,DBWR的主要任務是將“弄臟”的緩沖區(qū)寫入磁盤,使緩沖區(qū)保持“干凈”。由于緩沖存儲區(qū)的緩沖區(qū)填入數(shù)據(jù)庫或被用戶進程弄臟,未用的緩沖區(qū)的數(shù)目減少。當未用的緩沖區(qū)下降到很少,以致用戶進程要從磁盤讀入塊到內存存儲區(qū)時無法找到未用的緩沖區(qū)時,DBWR將管理緩沖存儲區(qū),使用戶進程總可得到未用的緩沖區(qū)。Oracle采用LRU(LEAST RECENTLY USED)算法(最近最少使用算法)保持內存中的數(shù)據(jù)塊是最近使用的,使I/O最小。在下列情況預示DBWR 要將弄臟的緩沖區(qū)寫入磁盤:當一個服務器進程將一緩沖區(qū)移入“弄臟”表,該弄臟表達到臨界長度時,該服務進程將通知DBWR進行寫。該臨界長度是為參數(shù)DB-BLOCK-WRITE-BATCH的值的一半。當一個服務器進程在LRU表中查找DB-BLOCK-MAX-SCAN-CNT緩沖區(qū)時,沒有查到未用的緩沖區(qū),它停止查找并通知DBWR進行寫。出現(xiàn)超時(每次3秒),DBWR 將通知本身。當出現(xiàn)檢查點時,LGWR將通知DBWR.在前兩種情況下,DBWR將弄臟表中的塊寫入磁盤,每次可寫的塊數(shù)由初始化參數(shù)DB-BLOCK- WRITE-BATCH所指定。如果弄臟表中沒有該參數(shù)指定塊數(shù)的緩沖區(qū),DBWR從LUR表中查找另外一個弄臟緩沖區(qū)。如果DBWR在三秒內未活動,則出現(xiàn)超時。在這種情況下DBWR對LRU表查找指定數(shù)目的緩沖區(qū),將所找到任何弄臟緩沖區(qū)寫入磁盤。每當出現(xiàn)超時,DBWR查找一個新的緩沖區(qū)組。每次由DBWR查找的緩沖區(qū)的數(shù)目是為寢化參數(shù)DB-BLOCK- WRITE-BATCH的值的二倍。如果數(shù)據(jù)庫空運轉,DBWR最終將全部緩沖區(qū)存儲區(qū)寫入磁盤。在出現(xiàn)檢查點時,LGWR指定一修改緩沖區(qū)表必須寫入到磁盤。DBWR將指定的緩沖區(qū)寫入磁盤。在有些平臺上,一個實例可有多個DBWR.在這樣的實例中,一些塊可寫入一磁盤,另一些塊可寫入其它磁盤。參數(shù)DB-WRITERS控制DBWR進程個數(shù)。 2、LGWR進程:該進程將日志緩沖區(qū)寫入磁盤上的一個日志文件,它是負責管理日志緩沖區(qū)的一個Oracle后臺進程。LGWR進程將自上次寫入磁盤以來的全部日志項輸出,LGWR輸出:◆當用戶進程提交一事務時寫入一個提交記錄。

◆每三秒將日志緩沖區(qū)輸出。

◆當日志緩沖區(qū)的1/3已滿時將日志緩沖區(qū)輸出。

◆當DBWR將修改緩沖區(qū)寫入磁盤時則將日志緩沖區(qū)輸出。LGWR進程同步地寫入到活動的鏡象在線日志文件組。如果組中一個文件被刪除或不可用,LGWR可繼續(xù)地寫入該組的其它文件。日志緩沖區(qū)是一個循環(huán)緩沖區(qū)。當LGWR將日志緩沖區(qū)的日志項寫入日志文件后,服務器進程可將新的日志項寫入到該日志緩沖區(qū)。LGWR 通常寫得很快,可確保日志緩沖區(qū)總有空間可寫入新的日志項。注意:有時候當需要更多的日志緩沖區(qū)時,LWGR在一個事務提交前就將日志項寫出,而這些日志項僅當在以后事務提交后才永久化。ORACLE使用快速提交機制,當用戶發(fā)出COMMIT語句時,一個COMMIT記錄立即放入日志緩沖區(qū),但相應的數(shù)據(jù)緩沖區(qū)改變是被延遲,直到在更有效時才將它們寫入數(shù)據(jù)文件。當一事務提交時,被賦給一個系統(tǒng)修改號(SCN),它同事務日志項一起記錄在日志中。由于SCN記錄在日志中,以致在并行服務器選項配置情況下,恢復操作可以同步。 3、CKPT進程:該進程在檢查點出現(xiàn)時,對全部數(shù)據(jù)文件的標題進行修改,指示該檢查點。在通常的情況下,該任務由LGWR執(zhí)行。然而,如果檢查點明顯地降低系統(tǒng)性能時,可使CKPT進程運行,將原來由LGWR進程執(zhí)行的檢查點的工作分離出來,由CKPT進程實現(xiàn)。對于許多應用情況,CKPT進程是不必要的。只有當數(shù)據(jù)庫有許多數(shù)據(jù)文件,LGWR在檢查點時明顯地降低性能才使CKPT運行。 CKPT進程不將塊寫入磁盤,該工作是由DBWR完成的。初始化參數(shù)CHECKPOINT-PROCESS控制CKPT進程的使能或使不能。缺省時為FALSE,即為使不能。 由于Oracle中LGWR和DBWR工作的不一致,Oracle引入了檢查點的概念,用于同步數(shù)據(jù)庫,保證數(shù)據(jù)庫的一致性。在Oracle里面,檢查點分為兩種:完全檢查點和增量檢查點。下面我們分別介紹這兩種檢查點的作用:1、完全檢查點 在Oracle8i之前,數(shù)據(jù)庫的發(fā)生的檢查點都是完全檢查點,完全檢查點會將數(shù)據(jù)緩沖區(qū)里面所有的臟數(shù)據(jù)塊寫入相應的數(shù)據(jù)文件中,并且同步數(shù)據(jù)文件頭和控制文件,保證數(shù)據(jù)庫的一致。完全檢查點在8i之后只有在下列兩種情況下才會發(fā)生:(1)DBA手工執(zhí)行alter system checkpoint的命令;(2)數(shù)據(jù)庫正常shutdown(immediate,transcational,normal)。由于完全檢查點會將所有的臟數(shù)據(jù)庫塊寫入,巨大的IO往往會影響到數(shù)據(jù)庫的性能。因此Oracle從8i開始引入了增量檢查點的概念。

2、 增量檢查點Oracle從8i開始引入了檢查點隊列這么一種概念,用于記錄數(shù)據(jù)庫里面當前所有的臟數(shù)據(jù)塊的信息,DBWR根據(jù)這個隊列而將臟數(shù)據(jù)塊寫入到數(shù)據(jù)文件中。檢查點隊列按時間先后記錄著數(shù)據(jù)庫里面臟數(shù)據(jù)塊的信息,里面的條目包含RBA(Redo Block Address,重做日志里面用于標識檢查點期間數(shù)據(jù)塊在重做日志里面第一次發(fā)生更改的編號)和數(shù)據(jù)塊的數(shù)據(jù)文件號和塊號。在檢查點期間不論數(shù)據(jù)塊更改幾次,它在檢查點隊列里面的位置始終保持不變,檢查點隊列也只會記錄它最早的RBA,從而保證最早更改的數(shù)據(jù)塊能夠盡快寫入。當DBWR將檢查點隊列里面的臟數(shù)據(jù)塊寫入到數(shù)據(jù)文件后,檢查點的位置也要相應地往后移,CKPT每三秒會在控制文件中記錄檢查點的位置,以表示Instance Recovery時開始恢復的日志條目,這個概念稱為檢查點的“心跳”(heartbeat)。檢查點位置發(fā)生變更后,Oracle里面通過4個參數(shù)用于控制檢查點位置和最后的重做日志條目之間的距離。在這里面需要指出的是,多數(shù)人會將這4個參數(shù)看作控制增量檢查點發(fā)生的時間。事實上這是錯誤的,這4個參數(shù)是用于控制檢查點隊列里面的條目數(shù)量,而不是控制檢查點的發(fā)生。

如何打開oracle的sql后臺跟蹤功能

一.在系統(tǒng)級別上設置sql跟蹤

該方法優(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.關閉跟蹤,在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服務的輸入: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ù)庫的用戶名,如果返回多個結果,在根據(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ù)據(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服務的輸入: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ù)庫的用戶名,如果返回多個結果,在根據(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.結束跟蹤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)下跟蹤消耗內存的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#后利用二方法進行跟蹤。


文章名稱:oracle后臺怎么使用,怎么進oracle
本文地址:http://weahome.cn/article/hcjsei.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部