DB2 - 例項



簡介

例項是 DB2 資料庫管理器的邏輯環境。使用例項,您可以管理資料庫。根據我們的需求,您可以在一臺物理機器上建立多個例項。例項目錄的內容為

  • 資料庫管理器配置檔案
  • 系統資料庫目錄
  • 節點目錄
  • 節點配置檔案 [db2nodes.cfg]
  • 除錯檔案,轉儲檔案

對於 DB2 資料庫伺服器,預設例項為“DB2”。建立例項目錄後,無法更改其位置。一個例項可以管理多個數據庫。在一個例項中,每個資料庫都有一個唯一的名稱,它自己的一組目錄表、配置檔案、許可權和特權。

DB2 產品中例項的架構

db2_product

多個例項

您可以在 Linux、UNIX 和 Windows 上的一個 DB2 伺服器上建立多個例項。可以在物理機器上安裝多個 DB2 伺服器。

在 Linux 上建立例項

如果 DB2 伺服器以 root 使用者身份安裝,則可以在 Linux 和 UNIX 上建立多個例項。例項可以在 Linux 和 UNIX 上獨立地同時執行。您一次只能在一個數據庫管理器的例項中工作。

例項資料夾包含資料庫配置檔案和資料夾。例項目錄儲存在 Windows 上的不同位置,具體取決於作業系統版本。

列出例項

以下命令用於列出例項

db2ilist

此命令列出系統上所有可用的例項。

語法

db2ilist 

示例:[檢視 DB2 副本中建立了多少個例項]

db2ilist 

輸出

db2inst1 
db2inst2 
db2inst3  

例項環境命令

這些命令對於使用 DB2 CLI 處理例項的安排很有用。

獲取例項

此命令顯示當前正在執行的例項的詳細資訊。

語法

db2 get instance 

示例:[檢視啟用當前使用者的當前例項]

db2 get instance 

輸出

The current database manager instance is : db2inst1 

設定例項

要在 DB2 UDB 上啟動或停止例項的資料庫管理器,請對當前例項執行以下命令。

語法

set db2instance=<instance_name> 

示例:[將“db2inst1”環境安排給當前使用者]

set db2instance=db2inst1

db2start

使用此命令,您可以啟動例項。在此之前,您需要執行“set instance”。

語法

db2start 

示例:[啟動例項]

db2start

輸出

SQL1063N DB2START processing was successful

db2stop

使用此命令,您可以停止正在執行的例項。

語法

db2stop 

輸出

SQL1064N DB2STOP processing was successful.

建立例項

讓我們看看如何建立一個新例項。

db2icrt

如果要建立新例項,則需要以 root 身份登入。例項 ID 不是 root ID 或 root 名稱。

以下是建立新例項的步驟

步驟 1:為例項建立一個作業系統使用者。

語法

useradd -u <ID> -g <group name> -m -d <user location> <user name> 
-p <password>  

示例:[在組“db2iadm1”中為名為“db2inst2”的例項建立使用者,密碼為“db2inst2”]

useradd -u 1000 -g db2iadm1 -m -d /home/db2inst2 db2inst2 -p db2inst2  

步驟 2:轉到 root 使用者的 DB2 例項目錄以建立新例項。

位置

cd /opt/ibm/db2/v10.1/instance  

步驟 3:使用以下語法建立例項

語法

./db2icrt -s ese -u <inst id> <instance name>

示例:[在使用者“db2inst2”中建立名為“db2inst2”的新例項,並具有“ESE”(企業伺服器版)的功能]

./db2icrt -s ese -u db2inst2 db2inst2

輸出

DBI1446I The db2icrt command is running, please wait.
 ….
 ….. 
DBI1070I Program db2icrt completed successfully.

安排例項的通訊埠和主機

編輯 /etc/services 檔案並新增埠號。在以下語法中,“inst_name”表示例項名稱,“inst_port”表示例項的埠號。

語法

db2c_<inst name> <inst_port>/tcp

示例:[為名為“db2inst2”的例項新增“50001/tcp”埠號,並在“services”檔案中使用變數“db2c_db2inst2”]

db2c_db2inst2 50001/tcp

語法 1:[使用服務名稱更新資料庫管理器配置。以下語法“svcename”表示例項服務名稱,“inst_name”表示例項名稱]

db2 update database manager configuration using svcename db2c_&<inst_name>

示例 1:[使用值為“db2c_db2inst2”的變數 svcename 更新 DBM 配置,用於例項“db2inst2”]

db2 update database manager configuration using svcename db2c_db2inst2 

輸出

DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully.

語法 2:為當前例項設定“tcpip”通訊協議

db2set DB2COMM=tcpip 

語法 3:[停止並啟動當前例項以獲取資料庫管理器配置的更新值]

db2stop 
db2start 

更新例項

您可以使用以下命令更新例項

db2iupdt

此命令用於在同一版本發行版中更新例項。在執行此命令之前,您需要使用“db2stop”命令停止例項資料庫管理器。以下語法“inst_name”表示您要更新到更新版本或已安裝的 DB2 伺服器版本的先前釋出或已安裝的 db2 伺服器例項名稱。

語法 1:以正常模式更新例項

db2iupdt <inst_name> 

示例 1

./db2iupdt db2inst2 

語法 2:以除錯模式更新例項

db2iupdt -D <inst_name> 

示例

db2iupdt -D db2inst2  

升級例項

您可以將例項從 DB2 副本的先前版本升級到當前新安裝的 DB2 副本版本。

db2iupgrade

在 Linux 或 UNIX 系統上,此命令位於 DB2DIR/instance 目錄中。在以下語法中,“inst_name”表示先前版本的 DB2 例項,“inst_username”表示當前安裝版本的 DB2 副本例項使用者。

語法 2:

db2iupgrade -d -k -u <inst_username> <inst_name>  

示例:

db2iupgrade -d -k -u db2inst2 db2inst2 

命令引數

-d:開啟除錯模式。

-k:如果在您執行此命令的 DB2 副本中支援預升級例項型別,則保留該型別。

如果您在 Linux 上使用超級使用者 (su) 執行 db2iupgrade 命令,則必須使用“-”選項發出“su”命令。

刪除例項

您可以刪除或刪除由“db2icrt”命令建立的例項。

db2idrop

在 Linux 和 UNIX 作業系統上,此命令位於 DB2_installation_folder/instance 目錄中。

語法:[在以下語法中,“inst_username”表示例項的使用者名稱,“inst_name”表示例項名稱]

db2idrop -u <inst_username> <inst_name> 

示例:[刪除 db2inst2]

./db2idrop -u db2inst2 db2inst2  

使用其他例項命令

查詢我們現在正在使用的 DB2 例項的命令。

語法 1:[檢查資料庫管理器啟用的當前例項]

db2 get instance  

輸出

The current database manager instance is:  db2inst1  

語法 2:[檢視當前例項的操作位和發行版]

db2pd -inst | head -2  

示例

db2pd -inst | head -2  

輸出

Instance db2inst1 uses 64 bits and DB2 code release SQL10010   

語法 3:[檢查當前工作例項的名稱]

db2 select inst_name from sysibmadm.env_inst_info    

示例

db2 select inst_name from sysibmadm.env_inst_info    

輸出

INST_NAME  --------------------------------------  
db2inst1              
1 record(s) selected.  

語法:[將新例項設定為預設例項]

db2set db2instdef=<inst_name> -g   

示例:[將新建立的例項作為預設例項]

db2set db2instdef=db2inst2 -g   
廣告