DB2 9 數(shù)據(jù)庫服務(wù)器管理之DB2實(shí)例
創(chuàng)建及刪除實(shí)例
DB2 實(shí)例 是一種邏輯上下文,DB2 命令及函數(shù)在其中執(zhí)行。您可將實(shí)例視為管理對數(shù)據(jù)庫文件的訪問的服務(wù)或守護(hù)進(jìn)程。在一臺服務(wù)器上可定義多個(gè)實(shí)例。各實(shí)例獨(dú)立于其他實(shí)例,也就是說所有實(shí)例均可分別管理、操縱及調(diào)優(yōu)。
要在 Windows 中創(chuàng)建實(shí)例,只需執(zhí)行以下命令:
db2icrt instance_name
在 Linux 和 UNIX 中,您必須另外提供一個(gè)用戶 ID,用以創(chuàng)建 fenced 用戶定義的函數(shù)和存儲過程進(jìn)程,形式如下:
db2icrt -u fenced_user_ID
instance_name
默認(rèn)情況下,用戶定義的函數(shù)和存儲過程是在 fenced 模式下創(chuàng)建的,因而這些進(jìn)程運(yùn)行在與 DB2 引擎不同的地址空間中,也稱為系統(tǒng)控制器進(jìn)程 db2sysc。這為數(shù)據(jù)庫管理器提供了保護(hù),使之免于被用戶定義的例程意外地或惡意地破壞。
要?jiǎng)h除一個(gè)實(shí)例,首先斷開所有數(shù)據(jù)庫連接,然后執(zhí)行以下命令停止實(shí)例:
db2idrop -f instance_name
列舉、遷移和更新 DB2 實(shí)例
要列舉服務(wù)器上存在的 DB2 實(shí)例,可使用以下命令:
db2ilist
若您決定轉(zhuǎn)而使用比服務(wù)器上安裝的 DB2 軟件更新的版本,或者需要將 32 位實(shí)例遷移為 64 位實(shí)例,就需要進(jìn)行實(shí)例遷移。在 Windows 上,實(shí)例遷移是在必要的遷移過程中隱式完成的。在 Linux 和 UNIX 上,可使用以下命令顯式地遷移已有實(shí)例:
db2imigr instance_name
在為 DB2 安裝修補(bǔ)程序包或補(bǔ)丁時(shí),一旦在服務(wù)器上安裝好了修補(bǔ)程序包,您就需要更新已有實(shí)例,以鏈接到新的修補(bǔ)程序文件。使用以下命令更新實(shí)例:
db2iupdt instance_name
設(shè)置 DB2 環(huán)境
恰當(dāng)?shù)卦O(shè)置 DB2 環(huán)境非常重要,這是因?yàn)樗刂浦?DB2 操作和活動的方式。DB2 環(huán)境由以下幾部分構(gòu)成:
DB2 配置文件注冊庫 操作系統(tǒng)環(huán)境變量 DB2 數(shù)據(jù)庫管理器配置參數(shù) DB2 數(shù)據(jù)庫配置參數(shù)設(shè)置配置文件注冊庫
DB2 配置文件注冊庫是特定于 DB2 的變量,它會影響 DB2 系統(tǒng)的管理、配置與性能。為使 DB2 配置文件注冊庫的更改生效,您通常需要停止并重啟實(shí)例。
要列舉所支持的全部 DB2 配置文件注冊庫:
db2set -lr
要設(shè)置 DB2 配置文件注冊庫:
db2set registry_variable = value
請注意,在變量名、等號和變量值之間沒有空格。下面給出一個(gè)將 DB2COMM 注冊庫變量設(shè)置為單一值的示例:
db2set DB2COMM=TCPIP
將 DB2COMM 注冊庫變量設(shè)置為多個(gè)值的示例如下:
db2set DB2COMM=TCPIP,NPIPE,LOCAL
要將 DB2 配置文件注冊庫重置為默認(rèn)值,只需使用與上面相同的命令即可,但不指定任何值:
db2set registry_variable =
要顯示服務(wù)器上當(dāng)前設(shè)置的所有 DB2 配置文件注冊庫,請執(zhí)行以下命令:
db2set -all
您將看到形式如下的輸出結(jié)果:
[e] DB2PATH=C:Program FilesIBMSQLLIB_01
[i] DB2ACCOUNTNAME=IBM-TP101dwsnow
[i] DB2INSTOWNER=IBM-SB2QTSR5RSN
[i] DB2PORTRANGE=60001:60004
[i] DB2INSTPROF=C:PROGRA~1IBMSQLLIB~1
[i] DB2COMM=TCPIP,NPIPE,LOCAL
[g] DB2_EXTSECURITY=YES
[g] DB2SYSTEM=IBM-TP101
[g] DB2PATH=C:Program FilesIBMSQLLIB_01
[g] DB2INSTDEF=DB2V
方括號( [])中包含的標(biāo)記表示注冊庫配置文件的作用域,具體解釋如下:
[e] 表示為當(dāng)前會話或環(huán)境所設(shè)置的注冊庫 [u] 表示用戶級注冊庫 [n] 表示節(jié)點(diǎn)級注冊庫 [i] 表示實(shí)例級注冊庫 [g] 表示全局級注冊庫設(shè)置系統(tǒng)環(huán)境變量絕大多數(shù) DB2 環(huán)境設(shè)置都是由 DB2 配置文件注冊庫控制的。而那些未存儲在配置文件注冊庫中的設(shè)置稱為操作系統(tǒng)環(huán)境變量。設(shè)置系統(tǒng)變量的命令將根據(jù)您所使用的平臺及 UNIX shell 而有所不同。
下面給出幾個(gè)示例:
在 Windows 中: set DB2INSTANCE=PROD 在 Linux 和 UNIX 的 Korn shell 中: export DB2INSTANCE=PRODDB2INSTANCE 是一個(gè)需要掌握的重要系統(tǒng)變量。它指定當(dāng)前應(yīng)用程序的會話或窗口的默認(rèn) DB2 實(shí)例。一旦設(shè)置好該變量,后續(xù)的所有 DB2 命令都將在該實(shí)例的作用域內(nèi)執(zhí)行。
要了解您當(dāng)前工作在哪個(gè) DB2 實(shí)例中,可運(yùn)行以下 DB2 命令:
get instance
舉個(gè)例子,為此,您只要運(yùn)行以下命令即可:
db2 get instance
此命令的輸出結(jié)果形式如下:
The current database manager instance is: DB2V
設(shè)置配置參數(shù)
在 DB2 中,存在兩個(gè)配置 “級別”。在實(shí)例(或數(shù)據(jù)庫管理器)級別,您可為該實(shí)例配置整個(gè) DB2 環(huán)境,這將影響實(shí)例中的所有數(shù)據(jù)庫和使用該實(shí)例中數(shù)據(jù)庫的所有應(yīng)用程序。在數(shù)據(jù)庫 級別,您可配置參數(shù),而這些參數(shù)將影響到訪問特定數(shù)據(jù)庫的所有應(yīng)用程序的行為。關(guān)于參數(shù)的更多信息,請參閱 Monitoring DB2 activity 教程。數(shù)據(jù)庫管理器、數(shù)據(jù)庫配置參數(shù)及其值均可使用 DB2 Control Center 或 DB2 命令查看及設(shè)置。
在 Control Center 中,右擊需要配置或更改的實(shí)例或數(shù)據(jù)庫,選擇 Configure Parameters。您將看到一個(gè)配置參數(shù)的列表,并帶有簡短的描述、其當(dāng)前及掛起值,如下所示。
您還可通過使用如下 DB2 命令獲得相同的輸出結(jié)果:
db2 get database manager configuration
db2 get database configuration for database_name
要更新 Control Center 中數(shù)據(jù)庫管理器或數(shù)據(jù)庫配置參數(shù)的值,打開 DBM 或 DB Configuration 窗口。找到您想要更改的參數(shù),然后雙擊其值。單擊 '...' 圖標(biāo)將打開一個(gè)包含如何設(shè)置變量的提示以及允許范圍說明的窗體。
若參數(shù)值可立即或動態(tài)更改,則在您單擊 OK 后,更改立即生效。部分重要性較低的參數(shù)無法動態(tài)更改,在這種情況下,您將看到其當(dāng)前值與掛起值不同。掛起值是新值,將在該實(shí)例或數(shù)據(jù)庫下一次停止并重啟后應(yīng)用。Pending Value Effective 列告訴您新值將在何時(shí)生效。
也可使用以下命令來設(shè)置您的數(shù)據(jù)庫管理器或數(shù)據(jù)庫配置參數(shù)的值:
db2 update database manager configuration using parameter new_value
db2 update database configuration for database_name using parameter new_value
若您所指定的參數(shù)更改不能立即生效,則在您運(yùn)行了 update db/dbm configuration 命令后,將返回形式如下的警告消息:
SQL1362W One or more of the parameters submitted for immediate modification
were not changed dynamically. Client changes will not be effective until the next time
the application is started or the TERMINATE command has been issued. Server changes
will not be effective until the next DB2START command.
聯(lián)機(jī)設(shè)置配置參數(shù)
絕大多數(shù)配置參數(shù)均可在實(shí)例或數(shù)據(jù)庫保持運(yùn)行的情況下聯(lián)機(jī)設(shè)置。只要可能,對這些聯(lián)機(jī)配置參數(shù)的更改默認(rèn)為立即生效。例如,若更改了 sortheap 的值,所有新的 SQL 請求將使用新值。為顯式指定這種立即生效的行為,可將 immediate 關(guān)鍵字附加到 update 命令中:
db2 update database manager configuration using parameter new_value
immediate
db2 update database configuration for database_name using
parameter new_value
immediate
若您選擇將此更改延遲至實(shí)例重啟或數(shù)據(jù)庫激活時(shí),則應(yīng)指定 deferred 關(guān)鍵字:
db2 update database manager configuration using parameter new_value
deferred
db2 update database configuration for database_name using
parameter new_value
deferred
有時(shí),您可能希望找出已確定并延遲了哪些更改。為顯示數(shù)據(jù)庫管理器配置參數(shù)的當(dāng)前值和掛起值,首先進(jìn)入實(shí)例,然后在 get database manager configuration 命令中指定 show detail 選項(xiàng),方法如下(請注意,instance_name 是系統(tǒng)環(huán)境變量 DB2INSTANCE 設(shè)置的值):
db2 attach to instance_name
db2 get database manager configuration show detail
同樣地,要列舉數(shù)據(jù)庫配置參數(shù)的當(dāng)前值和掛起值,首先連接到數(shù)據(jù)庫,然后使用 show detail 選項(xiàng):
db2 connect to database_name
db2 get database configuration for database_name
show detail
掛起值列于 Delayed Value 列中,如下所示。
強(qiáng)制停止實(shí)例和數(shù)據(jù)庫
如果您需要使數(shù)據(jù)庫或數(shù)據(jù)庫管理器配置更改立即生效,而您所更改的參數(shù)并非動態(tài),那么就需要停止并重啟數(shù)據(jù)庫或整個(gè)實(shí)例。若存在連接并使用此實(shí)例中一個(gè)或多個(gè)數(shù)據(jù)庫的應(yīng)用程序,您就無法停止并重啟數(shù)據(jù)庫或?qū)嵗4藭r(shí),您可使用如下 DB2 命令,強(qiáng)行使用戶斷開 與數(shù)據(jù)庫的連接:
force application all
您也可以在停止實(shí)例的同時(shí)斷開所有用戶的連接,命令如下:
db2stop force
若您只希望強(qiáng)制停止一個(gè)特定的應(yīng)用程序,則需要了解該應(yīng)用程序的句柄。 使用以下命令查找句柄:
list applications
您將看到形式如下的輸出結(jié)果:
Auth Id Application Appl. Application Id DB # of
Name Handle Name Agents
-------- -------------- ---------- ------------------------------ -------- -----
DSNOW db2bp.exe 8 *LOCAL.DB2.020205193946 SAMPLE 1
若您僅希望強(qiáng)制停止命令行處理器(或命令窗口),即本例中的 db2bp.exe 應(yīng)用程序,可使用如下 DB2 命令:
force application (8)
