位置:首頁 > 數據庫 > DB2教學 > DB2實例

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 <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

例如:[添加'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