Time of Update: 2018-12-03
視圖v$sql,v$sqlarea,v$sqltext,v$sqltext_with_newlines 是幾個經常容易混淆的視圖,主要是提供library cache中當前緩衝的sql語句的資訊。這幾個視圖都可以提供當前有關sql語句的具體資訊,但稍有差異。本文主要描述其差異並給出執行個體。 一、sql語句與遊標 sql語句,這個沒什麼好說的,就是按照sql標準書寫的sql語句 遊標,包含shared cursor,session
Time of Update: 2018-12-03
對於Oracle 網路設定,我們通常通過negmgr或者netca來完成用戶端串連到資料庫執行個體。而對於串連到ASM執行個體,同樣可以實現從用戶端來進行串連。不過Oracle並未為我們提供工具來完成配置,我們可以通過手動設定監聽以及用戶端tnsnames來實現。本文對此給出描述與樣本。1、伺服器端、用戶端的環境 #伺服器端環境,host資訊 oracle@bo2dbp:~> cat /etc/hosts |grep vip 192.168.7.61
Time of Update: 2018-12-03
對於大批量的DML操作中出現的錯誤,除了使用DML error logging特性來記錄在DML期間出現的錯誤之外,使用批量SQL語句FORALL的SAVEEXCEPTIONS是不錯的選擇之一。DML error logging特性的使用較FORALL之 SAVE EXCEPTIONS相對簡單,也存在一些不足,如每一個被操作的DML對象需要建立相應的對應的日誌表,不利於集中管理。本文對DML error logging這個不利於集中管理的特性使用FORALL 之 SAVE
Time of Update: 2018-12-03
Oracle 聯機重做記錄檔記錄了資料庫的所有變化(DML,DDL或管理員對資料所作的結構性更改等),用於對於意外刪除或宕機利用記錄檔實現資料恢複來確保資料的完整性。但不合理的聯機記錄檔規劃將引發日誌相關的等待事件。下面是這樣一個來自生產環境中的例子。 1、故障描述--客戶描述該資料庫晚上用於實現資料同步以及匯總,以前一直工作的比較良好,隨著需要同步的數量量的增大,最近變得越來越慢。--下面我們首先取了客戶晚8點至第二天7點的awr report。WORKLOAD
Time of Update: 2018-12-03
使用shell指令碼實現對Oracle資料庫的監控與管理將大大簡化DBA的工作負擔,如常見的對執行個體的監控,監聽的監控,警示日誌的監控,以及資料庫的備份,AWR report的自動郵件等。本文給出Linux 下使用 shell 指令碼來監控 Oracle 警示日誌(monitor alter log file)。 Linux Shell的相關參考: Linux/Unix shell 指令碼中調用SQL,RMAN指令碼 Linux/Unix shell
Time of Update: 2018-12-03
Time of Update: 2018-12-03
NUMBER資料類型在Oracle中使用的較為廣泛,可以儲存零值,正負數,以及定長數,對於這個資料類型有個幾個概念要搞清,否則容易搞混,下面給出具體描述。 1、可表示範圍及儲存空間 從1.0 x 10-130 到 1.0 x 10126(不包括),如果運算式或值大於1.0 x 10126,Oracle會返回錯誤資訊 所需的儲存空間為1到22個位元組 2、Number類型標記法 NUMBER(p,s) P 和S 可選
Time of Update: 2018-12-03
在使用sqlplus執行sql指令碼時,經常碰到向指令碼傳遞參數的情形。類似於shell指令碼的參數傳遞,我們同樣可以向sql指令碼傳遞參數,其方法是指令碼後面直接跟多個連續的參數並以空格分開。本文描述該內容並給出樣本。1、SQLPlus 的協助資訊 下面的協助資訊是關於sqlplus調用帶參指令碼的說明 sqlplus -H <start> is: @<URL>|<filename>[.<ext>]
Time of Update: 2018-12-03
RAC環境下的歸檔模式切換與單一實例稍有不同,主要是共用儲存所產生的差異。在這種情況下,我們可以將RAC資料庫切換到非叢集狀態下,僅僅在一個執行個體上來實施歸檔模式切換即可完成RAC資料庫的歸檔模式轉換問題。本文主要描述了由非歸檔模式切換到歸檔模式,而由非歸檔切換的歸檔步驟相同,不再贅述。1、主要步驟: 備份spfile,以防止參數修改失敗導致資料庫無法啟動 修改叢集參數cluster_database為false 啟動單一實例到mount狀態 將資料庫置于歸檔模式(alter
Time of Update: 2018-12-03
對於索引的調整,我們可以通過Oracle提供的索引監控特性來跟蹤索引是否被使用。儘管該特性並未提供索引使用的頻度,但仍不失為我們參考的方式之一。然而,最近在Oracle 10.2.0.3中發現收集統計資訊時導致索引也被監控,而不是用於sql查詢引發的索引監控。如此這般,索引監控豈不是雞肋? 1、基於Oracle 10g 收集統計資訊索引被監控情形scott@CNMMBO> select * from v$version where rownum<2;BANNER-----
Time of Update: 2018-12-03
在使用CBO最佳化器模式的Oracle資料庫中,統計資訊是CBO產生最佳執行計畫的重要依據。這些統計資訊通常包括列級、表級、索引、系統層級的統計資訊等。所有的這些統計資訊都可以被備份,匯入匯出也可以被鎖定與解鎖。因此相應地,我們可以匯出列級、表級、索引、系統層級的統計資訊。通過匯出匯入統計資訊,可以在測試環境來類比產生環境進行資料庫效能最佳化,SQL調優等。本文主要描述了基於schema層級匯出匯入統計資訊到不同的資料庫。
Time of Update: 2018-12-03
Oracle 聯機日誌加上Oracle歸檔日誌記錄了整個資料庫完整的變更資訊。是Oracle體繫結構中的重要組成部分。因此聯機日誌的規劃也相當重要。但隨著業務的增加或當前聯機記錄檔的大小成為資料庫瓶頸之一時,不得不調整聯機日誌的大小。本文示範了如何調整聯機日誌的大小。 有關聯機日誌、歸檔日誌規劃,設定等其參考: Oracle 聯機重做記錄檔(ONLINE LOG FILE) Oracle 歸檔日誌 1、示範環境sys@CNBO1>
Time of Update: 2018-12-03
對於經常在SQL*Plus 下工作的大師們而言,總是時不時查詢SQL*Plus的協助命令。著實太多了,記不住。SQL*Plus下直接提供了help命令來協助描述所有命令的用法。嘎嘎,再也不用查SQL*Plus reference了。對於Oracle 10g預設情況下,SQL*Plus的help手冊並沒有被安裝,需要手動安裝。Oracle 10/11g下採用相同的安裝方式,下面來描述一下help的安裝與使用。 1、安裝sqlplus helpsystem@CNMMBO> help
Time of Update: 2018-12-03
在從root使用者切換到oracle使用者時,碰到了ulimit: open files: cannot modify limit: Operation not
Time of Update: 2018-12-03
PL/SQL中提供了常用的三種集合聯合數組、巢狀表格、變長數組,而對於這幾個集合類型中元素的操作,PL/SQL提供了相應的函數或過程來操縱數組中的元素或下標。這些函數或過程稱為集合方法。一個集合方法就是一個內建於集合中並且能夠操作集合的函數或過程,可以通過點標誌來調用。本文主要描述如何操作這些方法。一、集合類型提供的方法與調用方式1、集合的方法與調用方式 EXISTS 函數EXISTS(n)在第n個元素存在的情況下會返回TRUE,否則返回FALSE。
Time of Update: 2018-12-03
工作中不可避免地碰到需要修改dbname以及dbid的情形,如將資料庫恢複到同一台機器的情形是其中之一。但dbname以及dbid是用於標識資料庫的重要標誌之一,尤其是dbid,具有唯一性,因此對其修改應謹慎處理。本文描述了修改dbname以及dbid的步驟並給出樣本。 1、修改dbid及dbname的影響 a、修改dbid 等同於建立一個新的資料庫,不同的是資料已經存在於資料檔案。這是由dbid的唯一性決定的。
Time of Update: 2018-12-03
最近的資料匯入(IMP)時碰到了ORA-01187 ORA-01110 錯誤,由於這個資料庫是使用熱備恢複過來的,且恢複也是成功的,因為資料庫能夠成功open,那到底是哪裡有遺漏呢?如你有類似的問題,不妨往下看。 1、故障現象IMP-00003: ORACLE error 1187 encounteredORA-01187: cannot read from file 202 because it failed verification testsORA-01110: data file 202
Time of Update: 2018-12-03
最近在卸載VirtualBox出現了無法卸載的錯誤。提示為Failed to install the extension. The installer failed with exit code 1: VBoxExtPackHelperApp.exe: error: Failed to rename the extension pack directory: VERR_ALREADY_EXISTS. 而且也無法再次成功安裝。本文是對此給出的描述及其解決辦法。 1、故障描述
Time of Update: 2018-12-03
Oracle
Time of Update: 2018-12-03
資料庫效能是一個永恒的話題,那就是如何使用更少的資源以達到更高效的效能。Oracle系統參數RESOURCE_LIMIT是一個用於控制使用者對於資料庫資源使用的參數,當值為true的時候即為啟用,否則禁用。該參數結合profile來可以控制多種資源的使用,如CPU_PER_SESSION,