bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

oracle隊列怎么創建,如何創建oracle實例

我要在oracle 10g創建一個job,每天凌晨9點執行一個過程,過程名假定為 pro_1001 謝謝指點

在sql developer的jobs下右鍵菜單新建比較簡單。

10年積累的做網站、成都網站制作經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站設計后付款的網站建設流程,更有天津免費網站建設讓你可以放心的選擇與我們合作。

介紹幾個數據字典視圖:

dba_jobs 本數據庫定義到任務隊列的任務

dba_jobs_running 目前正在運行的任務

user_jobs 當前用戶擁有的任務

時間間隔 參數interval 設置

每天運行一次 'sysdate+1'

每小時運行一次 'sysdate+1/24'

每10分鐘運行一次 'sysdate+10/(24*60)'

每30秒運行一次 'sysdate+30/(24*60*60)'

每星期一次 'sysdate+7'

不再運行該任務并刪除它 null

以上時間間隔不能保證任務的下一次運行在一個特定的時間,僅僅能夠指定一個任務兩次運行之間的時間間隔

特定日期或時間的例子

每天午夜12點 'trunc(sysdate+1)'

每天早上8點30分 'trunc(sysdate+1)+(8*60+30)/(24*60)'

每星期二中午12點 'next_day(trunc(sysdate),"tuesday"+12/24)'

每個月第一天的午夜12點 'trunc(last_day(sysdate)+1)'

在總結之前,先把Job的參數一一說明一下:

job參數是由Submit()過程返回的binary_ineger。這個值用來唯一標識一個工作;

what參數是將被執行的PL/SQL代碼塊;

next_date參數指識何時將運行這個工作。寫Job的時候可以不指定該值,默認值是:“4000-1-1”;

interval參數何時這個工作將被重執行。

其中Interval這個值是決定Job何時,被重新執行的關鍵。

附上自己寫的兩個例子:

--每天凌晨一點執行

DECLARE

X NUMBER;

BEGIN

sys.dbms_job.submit(job = X,

what = 'begin pro_job_test.pro_job_day; end;',

next_date =to_date('13-07-2011 01:00:00', 'dd-mm-yyyy hh24:mi:ss'),

interval = ' TRUNC(SYSDATE+1)+1/24 ');

SYS.DBMS_OUTPUT.PUT_LINE( 'Job Number is: ' || to_char(x));

commit;

END;

--每月1日執行

DECLARE

X NUMBER;

BEGIN

sys.dbms_job.submit(job = X,

what = 'begin pro_job_test.pro_job_month; end;',

next_date =to_date('01-08-2011 01:00:00', 'dd-mm-yyyy hh24:mi:ss'),

interval = 'trunc(last_day(sysdate)+1)');

SYS.DBMS_OUTPUT.PUT_LINE( 'Job Number is: ' || to_char(x));

commit;

END;

oracle aq隊列 能實現并行嗎?創建兩個隊列也不能實現

并行概念

并行執行(parallel execution)是Oracle企業版才有的特性(標準版中沒有這個特性),指能夠將一個大型串行任務(任何DML,或者一般的DDL)物理地劃分為多個較小的部分,這些較小的部分可以同時得到處理。

并行包括:

并行查詢:這是指能使用多個操作系統進程或線程來執行一個查詢。Oracle會發現能并行執行的操作(如全表掃描或大規模排序),并創建一個查詢計劃來實現)。

并行DML(PDML):這在本質上與并行查詢很相似,但是PDML主要是使用并行處理來執行修改(INSERT、UPDATE、DELETE和MERGE)。

并行DDL:并行DDL是指Oracle能并行地執行大規模的DDL操作。例如,索引重建、創建一個新索引、數據加載以及大表的重組等都可以使用并行處理。

并行恢復:這是指數據庫能并行地執行實例(甚至介質)恢復,以減少從故障恢復所需的時間。

過程并行化:這是指能并行地運行所開發的代碼。

何時使用并行

在應用并行執行之前,需要保證以下兩點成立:

必須有一個非常大的任務,如對50GB數據進行全面掃描。

必須有足夠的可用資源(CPU、I/O、內存)。在并行全面掃描50GB數據之前,你要確保有足夠的空閑CPU(以容納并行進程),還要有足夠的I/O通道。

如果只有一個小任務(通常OLTP系統中執行的查詢就是這種典型的小任務),或者你的可用資源不足(這也是OLTP系統中很典型的情況),其中CPU和I/O資源通常已經得到最大限度的使用,那就根本不用考慮并行執行。

如果一個任務只需要幾秒(或更短時間)就能串行地完成,引入并行執行后,相關的管理開銷可能會讓整個過程花費更長的時間。

舉例如,寫一頁文檔若12個人來寫,需要開會分段等,可能并不如一個人來寫更快。而如果寫1200頁,12個人寫需要的時間只為原來的1/12,就算分配任務可能也就1/12,還是比一個人寫要快多了。

并行查詢

并行查詢允許將一個SQL SELECT語句劃分為多個較小的查詢,每個部分的查詢并發地運行,然后會將各個部分的結果組合起來,提供最終的答案。

在并行進程和掃描文件之間并不存在1對1映射,可以多個進程掃描同一個文件。

各個并行進程可稱為并行執行服務器(parallel execution server),有時也稱為并行查詢(parallel

query,PQ)從屬進程。各個并行執行服務器都是單獨的會話,就像是專業服務器進程一樣連接數據庫。每個并行執行服務器分別負責掃描表中一個部分(各

個部分都不重疊),匯總其結果子集,將其輸出發回給協調服務器(即原始會話的服務器進程),它再將這些子結果匯總為最終答案。

在默認情況下,Oracle是不啟用并行查詢的。啟用并行查詢有多種方法,可以直接在查詢中使用一個提示,或者修改表要求考慮并行執行路徑等。

【并行查詢方法】

1)暗示hints式,臨時有效

select /*+parallel(table_name num)*/ count(*) from table_name;

多表關聯時多表并行:

select /*+parallel(table_name1,num1) parallel(table_name2,num2)*/ count(*) from table_name1, table_name2;

2)alter table對象式,長期有效

alter table table_name parallel num;

3)alter session會話式,會話生命周期有效

alter session force parallel query parallel num;

4)并行DDL式,會話生命周期有效

alter session enable parallel dml;

對于前兩種方式,若省略num則Oracle將自動根據負載確定并行度。并行度要隨著系統上工作負載的增減而變化。如果有充足的空閑資源,并行度會

上升;如果可用資源有限,并行度則會下降。這樣就不會為機器強加一個固定的并行度。利用這種方法,允許Oracle動態地增加或減少查詢所需的并發資源

量。

【查看默認并行數】

1)確定會話SID

select sid from v$mystat where rownum = 1;

2)在其他會話中查詢

select sid,qcsid,server#,degree from v$px_session where qcsid = num;

一般而言,如果能訪問盡可能多的資源(CPU、內存和I/O),并行執行就能最好地發揮作用。但這并不是說如果整個數據集都在一個磁盤上,就從并行

查詢得不到任何好處。不過如果整個數據集都在一個磁盤上,可能確實不如使用多個磁盤那樣能有更多收獲。即使使用一個磁盤,在響應時間上也可能可以得到一定

的速度提升。原因在于:給定的一個并行執行服務器在統計行時并不讀取這些行,反之亦然。所以,與執行串行相比,兩個并行執行服務器可以在更短的時間內完成

所有行的統計。

數據分布在多個物理設備上可以提高I/O,如表分區、跨磁盤等。

在Oracle 11g Release2及以上版本中,引入了一項新功能來限制資源過度使用:并行語句排除(Parallel

Statement

Queuing,PSQ)。使用PSQ時,數據庫會限制并發執行的并行查詢數,并把更多的并行請求放在一個執行隊列中。CPU資源用盡時數據庫會阻止新的

請求變為活動狀態。這些請求并沒有失敗,它們只是會延遲開始,也就是說它們將排隊。資源可用時,數據庫就會開始執行隊列中的查詢。

并行DML

Oracle文檔將并行DML(PDML)一詞的范圍限制為只包括INSERT、UPDATE、DELETE和MERGE(不像平常的DML那樣還

包括SELECT)。在PDML期間,Oracle可以使用多個并行執行服務器來執行INSERT、UPDATE、DELETE或MERGE,而不是只利

用一個串行進程。在一個有充足I/O帶寬的多CPU主機上,對于大規模的DML操作,可能會得到很大的速度提升。

不過,不能把PDML當成提高OLTP應用速度的一個特性。因為并行操作設計為要充分、完全地利用一臺機器上的所有資源。通過這種設計,一個用戶可

以完全使用機器上的所有磁盤、CPU和內存。在某些數據倉庫中(有大量數據,而用戶很少),這可能正是你想要的。而在一個OLTP系統中(大量用戶都在做

很短、很快的事務),可能就不能希望如此了,你不想讓用戶能夠完全占用機器資源。

類似于Oracle執行的分布式查詢,PDML操作采用同樣的方式執行,即每個并行執行服務器相當于一個單獨數據庫實例中的一個進程。這些事務都結束后,會執行一個相當于快速2PC的過程來提交這些單獨的獨立事務。這些事務要么都由PDML協調會話提交,要么無一提交。

由于PDML采用的一種偽分布式的實現,因此存在一些限制:

PDML操作期間不支持觸發器。這是一個很合理的限制,因為觸發器可能會向更新增加大量開銷,而你使用PDML的本來目的是為了更快一些,這兩方面是矛盾的,不能放在一起。

PDML期間,不支持某些聲明方式的引用完整性約束,因為表中的每一片(部分)會在單獨的會話中作為單獨的事務進行修改。例如,PDML操作不支持自引用完整性。如果真的支持自引用完整性,可能會出現死鎖和其他鎖定問題。

在提交或回滾之前,不能訪問用PDML修改的表。

PDML不支持高級復制(因為復制特性的實現要基于觸發器)。

不支持延遲約束(也就是說,采用延遲模式的約束)。

如果表是分區的,PDML只可能在有位圖索引或LOB列的表上執行,而且并行度取決于分區數。在這種情況下,無法在分區內并行執行一個操作,因為每個分區只有一個并行執行服務器來處理。

執行PDML時不支持分布式事務。

PDML不支持聚簇表。

并行DDL

從維護的觀點看,以及從管理的角度來說,并行DDL才是Oracle中并行執行最突出的優點。如果認為并行查詢主要是為最終用戶設計的,那么并行

DDL則是為DBA/開發人員設計的。如果沒有并行執行,DBA將很難真正充分利用硬件的全部能力。但如果利用并行執行,則完全可以做到。以下SQL

DDL命令允許“并行化”:

CREATE INDEX:多個并行執行服務器可以掃描表、對數據排序,并把有序的段寫出到索引結構。

CREATE TABLE AS SELECT:執行SELECT的查詢可以使用并行查詢來執行,表加載本身可以并行完成。

ALTER INDEX REBUILD:索引結構可以并行重建。

ALTER TABLE MOVE:表可以并行移動。

ALTER TABLE SPLIT|COALESCE PARTITION:單個表分區可以并行地分解或合并。

ALTER INDEX SPLIT PARTITION:索引分區可以并行地分解。

前4個命令還適用于單個的表/索引分區,也就是說,可以并行地MOVE一個表的單個分區。

并行DDL和使用外部表的數據加載

利用并行DDL,再加上外部表,就能通過一個簡單的CREATE TABLE AS SELECT or INSERT /*+ APPEND

*/來實現并行直接路徑加載。不用再編寫腳本,不必再分解文件,也不用協調要運行的N個腳本。簡單地說,通過結合并行DDL和外部表,不僅提供了純粹的易

用性,而且全無性能損失。

并行DDL和區段截斷

并行DDL依賴于直接路徑操作。也就是說,數據不傳遞到緩沖區緩存以便以后寫出;而是由一個操作(如CREATE TABLE AS

SELECT)來創建新的區段,并直接寫入這些區段,數據直接從查詢寫到磁盤(放在這些新分配的區段中)。每個并行執行服務器執行自己的部分CREATE

TABLE AS SELECT工作,并且都會寫至自己的區段。INSERT /*+ APPEND

*/(直接路徑插入)會在一個段的HWM“之上“寫,每個并行執行服務器再寫至其自己的一組區段,而不會與其他并行執行服務器共享。因此,如果執行一個并

行CREATE TABLE AS

SELECT,并使用4個并行執行服務器來創建表,就至少有4個分區,可能還會更多。每個并行執行服務器會分配其自己的區段,向其寫入,等填滿時,再分配

另一個新的區段,并行執行服務器不會使用由其他并行執行服務器非品牌的區段。

linux下怎么創建oracle數據庫

1. 設置ORACLE_SID

默認的ORACLE_SID是orcl,我個人強烈建議起個唯一、且意義的名字,比如**testdb,**proddb等等,在Oracle用戶下執行:

export ORACLE_SID=lxdbtest

2. 重建PFILE

在$ORACLE_HOME/dbs目錄下重建pfile(initORACLE_SID.ora,本例為initlxdbtest.ora),除了以下三個參數,其它參數都可以不用設置(使用默認值):

db_name=lxdbtest

control_files='/home/oracle/app/oradata/lxdbtest/control01.ctl','/home/oracle/app/oradata/lxdbtest/control02.ctl','/home/oracle/app/oradata/lxdbtest/control03.ctl'

memory_target=2G

為了安全起見,控制文件一定要指定多份,在生產庫上,要把它們分開放在不同的物理磁盤上,這里因為是測試庫,所以才放在同一個磁盤上。

3. 啟動實例至nomount狀態

有了pfile就可以啟動實例至nomount狀態了:

$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Thu Jul 25 21:01:16 2013

Copyright (c) 1982, 2009, Oracle. All rights reserved.

Connected to an idle instance.

SQL startup nomount

ORACLE instance started.

Total System Global Area 2137886720 bytes

Fixed Size 2215064 bytes

Variable Size 1224737640 bytes

Database Buffers 905969664 bytes

Redo Buffers 4964352 bytes

SQL

4. 執行CREATE DATABASE語句

CREATE DATABASE lxdbtest

LOGFILE GROUP 1

('/home/oracle/app/oradata/lxdbtest/redo01a.log','/data/oradata/lxdbtest/redo01b.log')

SIZE 100M BLOCKSIZE 512,

GROUP 2

('/home/oracle/app/oradata/lxdbtest/redo02a.log','/data/oradata/lxdbtest/redo02b.log')

SIZE 100M BLOCKSIZE 512,

GROUP 3

('/home/oracle/app/oradata/lxdbtest/redo03a.log','/data/oradata/lxdbtest/redo03b.log')

SIZE 100M BLOCKSIZE 512

MAXLOGFILES 5

MAXLOGMEMBERS 5

MAXLOGHISTORY 1

MAXDATAFILES 600

CHARACTER SET ZHS16GBK

NATIONAL CHARACTER SET AL16UTF16

EXTENT MANAGEMENT LOCAL

DATAFILE '/home/oracle/app/oradata/lxdbtest/system01.dbf' SIZE 2048M REUSE AUTOEXTEND OFF

SYSAUX DATAFILE '/home/oracle/app/oradata/lxdbtest/sysaux01.dbf' SIZE 2048M REUSE AUTOEXTEND OFF

DEFAULT TABLESPACE users

DATAFILE '/home/oracle/app/oradata/lxdbtest/users01.dbf'

SIZE 2048M REUSE AUTOEXTEND OFF

DEFAULT TEMPORARY TABLESPACE temptbs

TEMPFILE '/home/oracle/app/oradata/lxdbtest/temp01.dbf'

SIZE 2048M REUSE AUTOEXTEND OFF

UNDO TABLESPACE undotbs

DATAFILE '/home/oracle/app/oradata/lxdbtest/undotbs01.dbf'

SIZE 2048M REUSE AUTOEXTEND OFF;

有幾點需要注意:

1)每個日志文件組的日志要放在不同的物理磁盤上,萬一有一個磁盤損壞,也不會丟失數據

2)根據需要選擇合適的字符集

3)創建了5個基本的表空間:SYSTEM,SYSAUX,默認表空間,默認臨時表空間,默認UNDO表空間

5. 根據需要創建應用程序所需的表空間

對于關鍵業務的數據,應該創建單獨的表空間給它使用(最好把表和索引分開放在表空間)

SQL create tablespace p95169tbs

2 datafile '/home/oracle/app/oradata/lxdbtest/p95169tbs01.dbf' size 10G,

3 '/home/oracle/app/oradata/lxdbtest/p95169tbs02.dbf' size 10G;

Tablespace created.

6. 構建數據字典視圖

@?/rdbms/admin/catalog.sql

@?/rdbms/admin/catproc.sql

@?/sqlplus/admin/pupbld.sql

7. 修改system,sys的密碼

alter user sys identified by ***;

alter user system identified by ***;

8. 創建SPFILE

SQL create spfile from pfile;

File created.

重啟數據庫后,將以spfile取代pfile.

最后,再順便說下如何刪除數據庫。在刪除數據庫之前,數據庫必須是在mount和restricted session狀態,具體如下:

SQL startup mount

SQL alter system enable restricted session;

System altered.

SQL drop database;

Database dropped.

數據庫刪除成功后,所有的在線日志文件、數據文件都會一并被刪除,但歸檔日志和備份文件不會被刪除。

oracle 如何運用隊列和觸發器在員工表中每插入一個新員工自動生成員工編號

創建一個序列:abc_table_s

插入表的value里引用:abc_table_s.nextval

oracle 如何創建每小時執行的jobs

dbms_job.submit( job out binary_integer,

what in archar2,

next_date   in date,

interval in varchar2,

no_parse in boolean)

●job:輸出變量,是此任務在任務隊列中的編號;

●what:執行的任務的名稱及其輸入參數;

●next_date:任務執行的時間;

●interval:任務執行的時間間隔。

interval取值'SYSDATE + 1/24'就是每天運行一次

求oracle DBA 大神. ora-600, 隊列表.

這個問題在MyOracleSupport上有文檔講

Getting ORA-600 [kcbgcur_3] When Creating a Queue Table (Doc ID 555035.1)

這個錯誤是因為之前有人drop過這個隊列表,但是沒有成功。導致AQ Metadata損壞。

依次嘗試如下步驟

DBMS_AQADM.DROP_QUEUE_TABLE(queue_table = 'qtable_name');

DBMS_AQADM.DROP_QUEUE_TABLE(queue_table = 'qtable_name', force = TRUE);

嘗試創建隊列表,如果不行

重啟實例以清除內存殘留信息

嘗試創建隊列表,如果還不行,需要手動的清除AQ metadata.這個得找Oracle Support部門開SR。我也不知道怎么手動清除。

名稱欄目:oracle隊列怎么創建,如何創建oracle實例
網站地址:http://vcdvsql.cn/article24/heosce.html

成都網站建設公司_創新互聯,為您提供營銷型網站建設定制網站、品牌網站制作、、網站設計面包屑導航

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都seo排名網站優化