DB2實例

實例是DB2數據庫管理器中的邏輯環境。使用實例可以管理數據庫。根據我們的要求,可以在一臺物理機器創建多個實例。實例目錄的內容是:

  • 數據庫管理器配置文件
  • 系統數據庫目錄
  • 節點目錄
  • 節點配置文件 [db2nodes.cfg]
  • 調試文件,轉儲文件

對於DB2數據庫服務器,默認情況下是「DB2」。這不可以在創建後更改實例目錄的位置。一個實例可以管理多個數據庫。在一個實例,每個數據庫都有一個唯一的名稱,它自己的一套目錄表,配置文件,權限和特權認證。

DB2產品架構

db2_product

多個實例

可以在Linux,UNIX和Windows的一個DB2Server,創建多個實例。它可以將一個物理機器上安裝多個DB2Servers。

在Linux上創建實例

可以在Linux和UNIX創建多個實例,如果DB2服務器安裝爲root用戶。一個實例可以同時在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 -g -m -d
-p

示例:  [在組「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

示例: [創建一個新的實例」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_port>/tcp

例如:[添加'50001/tcp「端口號,例如」db2inst2「與」services「文件變量」db2c_db2inst2']

db2c_db2inst2 50001/tcp

語法 1: [更新數據庫管理器配置與服務名稱。以下語法'svcename'表示實例服務名稱,以及「inst_name」表示實例名稱]

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

示例: [更新DBM配置變量svcename的值爲「db2c_db2inst2」,爲實例「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副本,從正在運行此命令升級前的實例類型。

如果使用的是超級用戶(SU)在Linux上的db2iupgrade命令,必須發出「su」命令以及「- 」選項。

刪除實例

可以刪除或刪除實例,這是由「db2icrt」命令創建的。

db2idrop

在Linux和UNIX操作系統,此命令位於DB2_installation_folder/實例目錄。

語法:[ 以下語法,「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