DB2環境變量管理是DB2數據庫管理中非常重要的一環,下面就為您介紹DB2環境變量管理的策略選擇,希望對您能夠有所幫助。
在Oracle數據庫中,對於DB2環境變量管理是一件比較麻煩的事情。在Windows操作系統上部署Oracle數據庫的時候,數據庫安裝程序會自動設置Oracle相關的環境變量。但是在Linux等操作系統上部署Oracle數據庫時,不得不手工來設置環境變量,而且必須在Linux操作系統上進行設置。這就對Oracle數據庫管理員提出了特殊的要求。他們不僅要懂得Oracle數據庫系統的專業知識,而且還必須要了解Linux操作系統的相關命令。
數據庫管理員可以利用數據庫命令來更改這張表中的環境變量值。然後數據庫系統會自動將相關相關的內容更新到操作系統中,從而達到控制環境變量的目的。簡單的說,在DB2數據庫中DB2環境變量管理是跟數據庫系統融為一體的。在不需要掌握Linux操作系統命令的情況下就可以配置數據庫的環境變量。
一、簡要注冊表的類型
在DB2數據庫中,有多張簡要注冊表。每張簡要注冊表都負責特定級別的環境變量。
一是實例級別的簡要注冊表。在這張表中,保存了大量的DB2數據庫變量標量。一般情況下,特定實例的環境變量都會保存在這張簡要注冊表中。而且,這個表中的環境變量具有比較高的優先性。在這個級別定義的環境變量的值與在全局級別的對應設置的值相互沖突的話,則這個級別的環境變量的值會取而代之。二是全局級簡要注冊表。如果對於特定的實例數據庫管理員沒有設置相關的環境變量,則會使用這張全局簡要注冊表。這個表中的環境變量具有在當前機器范圍內有效的環境變量(前提是在實例級簡要注冊表中沒有相沖突的設置)。三是DB2實例節點級簡要注冊表。在數據庫應用比較復雜的環境中,往往會通過使用分布式部署環境來提高數據庫的性能。當數據庫分布於不同的數據庫分區的系統中,這個注冊表駐留在每個節點上(即每台服務器上,且包含在這服務器上存儲數據的所有實例的環境變量的值。注意這個級別的設置優先性要比以上兩個級別都要高,在這個級別上設置的環境變量的值將會取代在實例級別或者全局級別的對應設置。
筆者認為,在了解這些簡要注冊表的時候,最重要的是要了解其優先性。這就跟操作系統中環境變量一樣,其有用戶級、操作系統級別環境變量的限制。一般來說,其越靠近用戶,其優先性越高,即采取的是就近原則。對於DB2注冊表的優先性來說,也是如此。從以上的分析中可以看出,優先級最高的簡要注冊表是實例節點級簡要注冊表。其次是實例級別簡要注冊表。最後是全局級簡要注冊表。一般情況下,將一些共用的環境變量配置在級別比較低的簡要注冊表中,如全局級簡要注冊表中;或者可以將全部環境變量都配置在這全局簡要注冊表中,作為數據庫的默認環境變量。然後在實例級別或者節點級別的配置中進行更改,采用用戶個性化的設置。如此就可以減少環境變量的配置。總之,無論采取什麼樣的管理策略,數據庫管理員必須要對這幾張簡要注冊表的優先性有一個清晰的認識。以免在管理的時候,出現張冠李戴的現象。
二、學會使用db2set命令來修改簡要注冊表的值
在DB2數據庫中,主要是通過db2set命令來管理簡要注冊表中的DB2環境變量。為此DB2數據庫管理員必須數量掌握db2set命令。具體的來說,主要掌握如下內容。
一是需要掌握各個選項的含義。由於在db2數據庫中有多個級別的簡要注冊表。這些表中的值都是通過同一個命令來完成的。那麼管理員到底需要更改哪個級別中的環境變量,都是通過不同的選項來完成的。如要更改數據庫系統中所有實例級別的簡要注冊表中的環境變量,需要使用-g選項;如果需要更該用戶級別的簡要注冊表的話,那麼就需要使用-ul選項時。切記在更改環境變量的時候,這些選項千萬不能夠用錯。否則的話,張冠李戴就可能得到相反的結果。
二是需要注意有時候管理員可能要對環境變量的設置進行一些限制。如不能夠在全局級別修改某個環境變量,而只能夠在實例級別或者節點級別進行設置。此時就需要使用-null選項。這個命令的主要用途就是刪除指定的環境變量,並限制通過其他級別的簡要注冊表來更改相關的環境變量。
三是需要注意環境變量的差異。有些環境變量可以在上面提到的各個簡要注冊表中進行設置。但是有些環境變量只有在特定的簡要注冊表中才可以進行設置。如有些環境變量只有在全局級別的簡要注冊表中才可以進行設置。這主要是一些共用性的環境變量。而且往往要求全部實例都采用同一的環境變量。此時通過這種限制,就可以避免每個實例或者用戶設置的環境變量不同而造成的沖突。如db2system環境變量,其就只可以在全局級別的環境變量中才可以設置。其目的就是為了保證各個實例都采用相同的db2system環境變量。如果想在實例級別的注冊表中修改db2system環境變量,那麼數據庫系統就會提示用戶相關的錯誤信息。所以DB2數據庫管理員需要了解,哪些環境變量只能夠在哪些特定級別進行設置。特別是需要了解在只有在全局級別環境下才能夠進行修改的環境變量。掌握了這些內容之後,在DB2環境變量管理上,才可以少走彎路。
四是需要注意更改環境變量實需要操作系統的相關權限。雖然數據庫管理員在更改簡要注冊表中環境變量的時候,是在數據庫系統中更改的。但是這些更改最重需要反應到操作系統中。所以數據庫管理員若需要更改環境變量,不僅需要數據庫系統的權限,而且當前用戶在操作系統中還應該有對應的權限,如操作系統管理員權限等等。如果在操作系統級別上沒有權限,那麼即使在數據庫系統上有最高的權限也是沒有用的。如在Linux操作系統中,數據庫用戶若想要更改實例級別的注冊表的值,用戶必須具有系統管理員的權限。如果想要更改全局級簡要注冊表中的環境變量,則這個數據庫用戶必須具有操作系統超級用戶的權限。從這個例子中也可以看出,簡要注冊表僅僅只是一個幫助數據庫管理員控制環境變量的一個工具。最終這些環境變量還是會更新到操作系統的相關設置中。
五是如果DB2數據庫管理員不僅僅是數據庫管理員,在操作系統上(特別是Linux操作系統上)也有比較特殊造詣的話,那麼也可以跳過這個簡要注冊表,直接在操作系統層面利用export等命令來維護DB2數據庫系統運行所必需的環境變量。由於現在大部分的DB2數據庫都是部署在Linux或者Unix操作系統上的,所以掌握Linux等操作系統的管理技能也是DB2數據庫管理員所必需要具備的。所以如果有機會,筆者認為DB2管理員去學習一下Linux等操作系統的管理也是非常有必要的。等到熟練掌握Linux等操作系統管理技巧的時候,筆者就會建議可以直接通過操作系統的環境變量來進行管理數據庫運行的環境。因為在操作系統上,可以對這些環境變量的配置文件進行方便的更新、備份等等。有時候甚至比在簡要注冊表中更改更改的容易。故對於比較專業的DB2數據庫管理員而言,必須要同時掌握通過簡要注冊表和操作系統命令維護環境變量的技能。有時候兩者同時采用,可以起到事半功倍的效果。