Oracle不同數(shù)據庫間對比分析腳本
Oracle數(shù)據庫開發(fā)應用中經常對數(shù)據庫管理員有這樣的需求,對比兩個不同實例間某模式下對象的差異或者對比兩個不同實例某模式下表定義的差異性,這在涉及到數(shù)據庫軟件的開發(fā)應用中是經常遇到的。一般數(shù)據庫軟件的開發(fā)都是首先在開發(fā)數(shù)據庫上進行,開發(fā)到一定程度后,系統(tǒng)投入運行,此時軟件處于維護階段。針對在系統(tǒng)運行中遇到的錯誤、bug等,還有應用系統(tǒng)的升級,經常需要調整后臺程序,數(shù)據庫開發(fā)人員經常遇到這樣一種尷尬的事情,維護到一定時期,開發(fā)庫和運行庫之間出現(xiàn)了一些差異,而這些差異又是什么。還有一種情況就是如果應用在很多地方同時使用,每次的后臺升級,那些數(shù)據庫作了升級,那些還沒有作升級,如果沒有詳細記錄的話,也會造成我們的尷尬事情。
另外,如果要搭建Oracle的高級表復制環(huán)境,在規(guī)劃好了復制的架構以及復制的表后,在正式將需要復制的表加入到復制組之前,一個重要工作就是檢查這些需要復制的表在主節(jié)點和主定義節(jié)點間的差異性。如果這些表定義間存在任何細微的差別,如某個字段在一個節(jié)點是允許Null,而在另一個節(jié)點是Not Null,在將表加入到復制組時都會出現(xiàn)這樣的錯誤,“ORA-23309 object string.string of type string exists”,其實造成這個錯誤的原因就是復制主定義節(jié)點和主節(jié)點之間表的定義存在某些差異,系統(tǒng)認為是兩個不同的表,但是在兩個數(shù)據庫中具有同樣的名稱。如果需要復制的表很多,手工對比兩個節(jié)點復制表之間的差異是需要很大工作量,而且不一定準確。
業(yè)界有名的數(shù)據庫軟件輔助產品提供商美國Embarcadero公司(www.embarcadero.com)在其全套數(shù)據庫解決方案中就相應提供了一個叫Change Manager的產品,該產品一個很大的用途就是對比分析不同實例間的差異。Oracle公司的OEM(oracle enterprise manager)包中也相應提供了一個工具叫做DB-Diff,也用來比較兩個數(shù)據庫間的差異。
其實對于普通的數(shù)據庫開發(fā)在某種程度上說根本不需要上面提到的這些工具軟件,況且這些產品不是隨便可以得到并且使用的。針對上面提到的這些問題,提供了兩個SQL腳本,可以輕松實現(xiàn)對比分析兩個不同數(shù)據庫實例間對象的差異以及表定義的差異。
一、對比兩個不同實例下某模式中對象差異
在運行下面的腳本之前,必須首先創(chuàng)建當然數(shù)據庫用戶和需要對比的兩個實例間的數(shù)據庫聯(lián)接。下面是運行該腳本的一個例子。在SQL/PLUS下運行該腳本,系統(tǒng)出現(xiàn)如下提示:
對象屬主(模式): repadmin
第一個實例的數(shù)據庫聯(lián)接名稱 (包括 @):@ora_zs
第一個實例的數(shù)據庫聯(lián)接名稱 (包括 @):@ora_sjjk
[NextPage]
其中程序要求輸入對象屬主,也就是對比那個用戶,這里是repadmin用戶。然后是需要對比的實例聯(lián)接名稱,這里是ora_zs和ora_sjjk,最后給出對比報告。
附:PL/SQL程序腳本清單:
二、對比兩個不同模式下表定義的差異
運行方法和前面第一個腳本一樣,這里不再詳述。下面是一個運行實例結果:
對象屬主(模式): db_zgxt
第一個實例的數(shù)據庫聯(lián)接名稱 (包括 @):@ora_cx
第一個實例的數(shù)據庫聯(lián)接名稱 (包括 @):@ora_zs
上一頁
相關文章
Oracle 數(shù)據庫優(yōu)化實戰(zhàn)心得總結
優(yōu)化sql語句、優(yōu)化io、表設計優(yōu)化、充分利用系統(tǒng)cpu資源、優(yōu)化數(shù)據庫連接、充分利用數(shù)據的后臺處理方案減少網絡流量,實施系統(tǒng)資源管理分配計劃等等,感興趣的朋友可以參考下哈2013-06-06oracle數(shù)據排序后獲取前幾行數(shù)據的寫法(rownum、fetch方式)
項目中用到Oracle分組查詢取每組排序后的前N條記錄,group?by?只能返回每個組的單條統(tǒng)計,下面這篇文章主要給大家介紹了關于oracle數(shù)據排序后獲取前幾行數(shù)據的寫法(rownum、fetch方式),需要的朋友可以參考下2022-12-12plsql 連接oracle數(shù)據庫詳細配置的方法步驟
這篇文章主要介紹了plsql 連接oracle數(shù)據庫詳細配置的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09Oracle Session每日統(tǒng)計功能實現(xiàn)
客戶最近有這樣的需求,想通過統(tǒng)計Oracle數(shù)據庫活躍會話數(shù),并記錄在案,利用比對歷史的活躍會話的方式,實現(xiàn)對系統(tǒng)整體用戶并發(fā)量有大概的預估,本文給大家分享具體實現(xiàn)方法,感興趣的朋友一起看看吧2022-02-02關于Oracle12C默認用戶名system密碼不正確的解決方案
這篇文章主要介紹了關于Oracle12C默認用戶名system密碼不正確的解決方案 ,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-10-10