一、DB2 實例
1、創建及刪除實例
DB2 實例 是一種邏輯上下文,DB2 命令及函數在其中執行。您可將實例視為管理對數據庫文件的訪問的服務或守護進程。在一臺服務器上可定義多個實例。各實例獨立于其他實例,也就是說所有實例均可分別管理、操縱及調優。
要在 Windows 中創建實例,只需執行以下命令:
在 Linux 和 UNIX 中,您必須另外提供一個用戶 ID,用以創建 fenced 用戶定義的函數和存儲過程進程,形式如下:
db2icrt -u fenced_user_ID instance_name |
默認情況下,用戶定義的函數和存儲過程是在 fenced 模式下創建的,因而這些進程運行在與 DB2 引擎不同的地址空間中,也稱為系統控制器進程 db2sysc。這為數據庫管理器提供了保護,使之免于被用戶定義的例程意外地或惡意地破壞。
要刪除一個實例,首先斷開所有數據庫連接,然后執行以下命令停止實例:
db2idrop -f instance_name |
2、列舉、遷移和更新 DB2 實例
要列舉服務器上存在的 DB2 實例,可使用以下命令:
若您決定轉而使用比服務器上安裝的 DB2 軟件更新的版本,或者需要將 32 位實例遷移為 64 位實例,就需要進行實例遷移。在Windows 上,實例遷移是在必要的遷移過程中隱式完成的。在 Linux 和 UNIX 上,可使用以下命令顯式地遷移已有實例:
在為 DB2 安裝修補程序包或補丁時,一旦在服務器上安裝好了修補程序包,您就需要更新已有實例,以鏈接到新的修補程序文件。使用以下命令更新實例:
3、設置 DB2 環境 恰當地設置 DB2 環境非常重要,這是因為它控制著 DB2 操作和活動的方式。DB2 環境由以下幾部分構成:
● DB2 配置文件注冊庫
● 操作系統環境變量
● DB2 數據庫管理器配置參數
● DB2 數據庫配置參數
4、設置配置文件注冊庫
DB2 配置文件注冊庫是特定于 DB2 的變量,它會影響 DB2 系統的管理、配置與性能。為使 DB2 配置文件注冊庫的更改生效,您通常需要停止并重啟實例。
要列舉所支持的全部 DB2 配置文件注冊庫:
要設置 DB2 配置文件注冊庫:
db2set registry_variable = value |
請注意,在變量名、等號和變量值之間沒有空格。下面給出一個將 DB2COMM 注冊庫變量設置為單一值的示例:
將 DB2COMM 注冊庫變量設置為多個值的示例如下:
db2set DB2COMM=TCPIP,NPIPE,LOCAL |
要將 DB2 配置文件注冊庫重置為默認值,只需使用與上面相同的命令即可,但不指定任何值:
db2set registry_variable = |
要顯示服務器上當前設置的所有 DB2 配置文件注冊庫,請執行以下命令:
5、設置系統環境變量 要了解您當前工作在哪個 DB2 實例中,可運行以下 DB2 命令:
此命令的輸出結果形式如下:
The current database manager instance is: DB2 |
絕大多數 DB2 環境設置都是由 DB2 配置文件注冊庫控制的。而那些未存儲在配置文件注冊庫中的設置稱為操作系統環境變量。設置系統變量的命令將根據您所使用的平臺及 UNIX shell 而有所不同。
● 在 Windows 中: set DB2INSTANCE=DB2
● 在 Linux 和 UNIX 的 Korn shell 中: export DB2INSTANCE=DB2
DB2INSTANCE 是一個需要掌握的重要系統變量。它指定當前應用程序的會話或窗口的默認 DB2 實例。一旦設置好該變量,后續的所有 DB2 命令都將在該實例的作用域內執行。
6、設置配置參數
在 DB2 中,存在兩個配置 “級別”。在實例(或數據庫管理器)級別,您可為該實例配置整個 DB2 環境,這將影響實例中的所有數據庫和使用該實例中數據庫的所有應用程序。在數據庫 級別,您可配置參數,而這些參數將影響到訪問特定數據庫的所有應用程序的行為。
獲取 DBMS 或者 DB 的配置參數:
db2 get database manager configuration db2 get database configuration for database_name |
或者(后同)
db2 get database manager cfg db2 get database cfg for database_name |
更改 DBMS 或者 DB 的配置參數
db2 update database manager configuration using parameter new_value db2 update database configuration for database_name using parameter new_value |
7、聯機設置配置參數 絕大多數配置參數均可在實例或數據庫保持運行的情況下聯機設置。只要可能,對這些聯機配置參數的更改默認為立即生效。例如,若更改了 sortheap 的值,所有新的 SQL 請求將使用新值。為顯式指定這種立即生效的行為,可將 immediate 關鍵字附加到 update 命令中:
db2 update database manager configuration using parameter new_value immediate db2 update database configuration for database_name using parameter new_value immediate |
若您選擇將此更改延遲至實例重啟或數據庫激活時,則應指定 deferred 關鍵字:
db2 update database manager configuration using parameter new_value deferred db2 update database configuration for database_name using parameter new_value deferred |
有時,您可能希望找出已確定并延遲了哪些更改。為顯示數據庫管理器配置參數的當前值和掛起值,首先進入實例,然后在 get database manager configuration 命令中指定 show detail 選項,方法如下(請注意,instance_name 是系統環境變量 DB2INSTANCE 設置的值):
db2 attach to instance_name db2 get database manager configuration show detail |
同樣地,要列舉數據庫配置參數的當前值和掛起值,首先連接到數據庫,然后使用 show detail 選項:
db2 connect to database_name db2 get database configuration for database_name show detail |
8、強制停止實例和數據庫
如果您需要使數據庫或數據庫管理器配置更改立即生效,而您所更改的參數并非動態,那么就需要停止并重啟數據庫或整個實例。若存在連接并使用此實例中一個或多個數據庫的應用程序,您就無法停止并重啟數據庫或實例。此時,您可使用如下 DB2 命令,強行使用戶斷開 與數據庫的連接:
db2 force application all |
您也可以在停止實例的同時斷開所有用戶的連接,命令如下:
若您只希望強制停止一個特定的應用程序,則需要了解該應用程序的句柄。 使用以下命令查找句柄:
強制停止該應用程序的連接,可使用如下 DB2 命令:(x 為該應用程序句柄)
db2 force application (x) |
二、DB2 客戶機/服務器連通性 1、DB2 客戶機/服務器環境
由于 DB2 用戶間整體通信協議使用情況發生了變化,因此為實現 DB2 客戶機/服務器連通性,
DB2 目前支持以下協議:
● TCP/IP
● NPIPE
對于到主數據庫(如 DB2 for z/OS 和/或 DB2 for iSeries)的連接,必須具備使用 Distributed Relational Database Architecture(DRDA)的 DB2 Connect。
2、為遠程應用程序連接準備您的 DB2 數據庫
在 DB2 客戶機(應用程序)能夠連接到數據庫之前,您必須確保服務器端通信得到了恰當的設置,可接收連接請求。要為 TCP/IP 連接準備服務器,您需要設置一個 TCP/IP 監聽器,方法如下。
(1)、 使用以下命令設置 DB2 配置文件注冊庫 DB2COMM,使實例能夠監聽 TCP/IP 的連接:
(2)、使用正確的端口號更新數據庫管理器配置參數 svcename,如下所示:
db2 update database manager configuration using svcename 50000 |
(3)、數據庫管理器配置參數 svcename 并非動態,因此您必須停止并重啟實例,以使 TCP/IP 監聽器啟動,如下所示:
3、使用 DB2 Configuration Assistant
DB2 Configuration Assistant 提供了用戶友好的向導和圖形化界面,可配置您或您的應用程序將使用的環境。通過 Configuration Assistant,您可以:
● 添加一個新的數據庫連接
● 更新數據庫連通性信息
● 查看并更新數據庫管理器配置參數
● 查看并更新 DB2 配置文件注冊庫
● 將應用程序綁定到數據庫
● 更新 Call Level Interface(CLI)設置
4、配置數據庫連通性的三種方法
在 DB2 Configuration Assistant 中,有三個選項可用于設置數據庫連接。您可以:
● 為 DB2 數據庫搜索網絡
● 使用 DB2 訪問配置文件
● 手動配置連接
5、通過搜索網絡自動配置數據庫連通性
DB2 Discovery 搜索并定位您的網絡上的 DB2 服務器,您可以選擇使用搜索 或已知 發現方法。
搜索方法將在網絡中搜索任意 DB2 服務器。這種方法需要花上一些時間才能返回結果。
如果您知道一些關于希望定位的 DB2 服務器的信息,則可使用已知方法,并提供數據庫或服務器名稱之類的信息來約束搜索。
DB2 允許某些 DB2 服務器、實例或數據庫可以被發現或者不被發現。
僅在 DB2 服務器上運行 Administration Server(DAS)服務、且 discover 配置參數被設置為 search 時,該 DB2 服務器才可被搜索到,如下所示:
db2admin start db2 update admin configuration using discover search |
您還可控制哪些實例是可被發現的,只需設置 discover_inst 數據庫管理器配置參數即可,如下所示:
db2 update database manager configuration using discover_inst enable |
各數據庫都擁有一個相似的配置參數 —— discover_db,它可啟用或禁用數據庫發現,如下所示:
db2 update database configuration for database_name using discover_db enable |
這里要重點指出,在 DAS、實例或數據庫級別禁用發現不會限制 DB2 客戶機通過其他方法設置數據庫連通性(下文將詳細討論)。DB2 客戶機仍然可以連接到遠程數據庫 —— 即便其數據庫配置 discover_db 被禁用也是如此。
6、使用 DB2 訪問配置文件自動配置數據庫連通性
如果您要為 1,000 臺或更多的工作站設置 DB2 客戶機/服務器連通性,那么您會怎么做?您當然可以前往每一臺工作站,使用Configuration Assistant 中的發現方法,但可能要花上很長一段時間才能完成這個任務。在此類情況下,您應考慮使用 DB2 訪問配置文件。
訪問配置文件中包含客戶機配置與 DB2 服務器的連通性時所必需的信息。訪問配置文件有兩種類型:
● 服務器訪問配置文件 是在 DB2 服務器上生成的。它包含服務器上定義的全部或選定的部分實例和數據庫的相關信息。
● 客戶機配置文件 是在 DB2 客戶機上生成的。它包含客戶機上已編目的實例(也稱為節點)和數據庫的相關信息。
讓我們逐步地看一下 DB2 訪問配置文件方法。
(1)、使用 Configuration Assistant 將信息導出到訪問配置文件(該文件就是一個 ASCII 文件)。
(2)、將導出的文件發送給客戶機。
(3)、在客戶機上使用 Configuration Assistant 將文件導入 DB2 客戶機。
第三個步驟也可以使用命令實現:
db2cfimp access_profile_name |
7、手動配置數據庫連通性
如果您了解配置連通性所必需的所有信息,那么可以使用 Configuration Assistant 中的 Add Database 向導。
(1)、必須首先編目節點(或 DB2 服務器)與實例的結合。
db2 catalog tcpip node mynode remote db2server.mycompany.com server db2icdb db2 catalog netbios node jeremy remote N01FCBE3 adapter 0 |
(2)、編目數據庫
db2 catalog database sample as mysamp at node mynode db2 catalog database baydb as newbaydb at node mynode |
8、列舉節點和數據庫目錄 要在 node 目錄中列舉服務器與實例的結合,可使用如下命令:
要列舉 database 目錄,可使用如下命令:
db2 list database directory |
9、附加到實例并連接到數據庫
通過編目節點和數據庫設置完客戶機/服務器連通性后,您可附加到實例以進行實例級管理任務,也可連接到數據庫以讀取該數據庫中的數據或向數據庫寫入數據。
要附加到 DB2 實例,可使用 DB2 命令 attach,如下所示:
attach to nodename user username using password |
附加到實例后,您可在該實例上執行管理任務,例如:
● 創建和刪除數據庫
● 檢索、更新和重置數據庫管理器及數據庫配置參數
● 管理數據庫監控程序
● 備份、還原和前滾數據庫
● 強制用戶和應用程序與實例中定義的數據庫斷開連接
要連接到數據庫,以選擇、插入、更新或刪除數據,您必須首先通過以下方式連接到數據庫:
connect to database_name user username using password [new new_password confirm new_password ] |
連接到數據庫之后,就可以進行數據庫的相應操作了。