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