DB2實例
實例是DB2數據庫管理器中的邏輯環境。使用實例可以管理數據庫。根據我們的要求,可以在一臺物理機器創建多個實例。實例目錄的內容是:
- 數據庫管理器配置文件
- 系統數據庫目錄
- 節點目錄
- 節點配置文件 [db2nodes.cfg]
- 調試文件,轉儲文件
對於DB2數據庫服務器,默認情況下是「DB2」。這不可以在創建後更改實例目錄的位置。一個實例可以管理多個數據庫。在一個實例,每個數據庫都有一個唯一的名稱,它自己的一套目錄表,配置文件,權限和特權認證。
DB2產品架構
多個實例
可以在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
-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_
例如:[添加'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