實例是DB2數(shù)據(jù)庫管理器中的邏輯環(huán)境。使用實例可以管理數(shù)據(jù)庫。根據(jù)我們的要求,可以在一臺物理機器創(chuàng)建多個實例。實例目錄的內(nèi)容是:
對于DB2數(shù)據(jù)庫服務器,默認情況下是“DB2”。這不可以在創(chuàng)建后更改實例目錄的位置。一個實例可以管理多個數(shù)據(jù)庫。在一個實例,每個數(shù)據(jù)庫都有一個唯一的名稱,它自己的一套目錄表,配置文件,權限和特權認證。
可以在Linux,UNIX和Windows的一個DB2Server,創(chuàng)建多個實例。它可以將一個物理機器上安裝多個DB2Servers。
可以在Linux和UNIX創(chuàng)建多個實例,如果DB2服務器安裝為root用戶。一個實例可以同時在Linux和UNIX獨立運行??梢栽谝淮卧跀?shù)據(jù)庫管理器的單個實例中工作。
實例文件夾中包含數(shù)據(jù)庫配置文件和文件夾。實例目錄存儲在取決于Windows操作系統(tǒng)版本的不同位置。
下面的命令用于列出的實例:
該命令列出了所有可用的系統(tǒng)上的實例。
語法:
db2ilist
示例: [看看由DB2副本創(chuàng)建有多少實例]
db2ilist
輸出:
db2inst1 db2inst2 db2inst3
這些命令符合實例在DB2 CLI管理工作有用。
此命令顯示當前運行的實例的詳細信息。
語法:
db2 get instance
示例: [看看當前實例由哪個當前用戶的激活]
db2 get instance
輸出:
The current database manager instance is : db2inst1
要啟動或停止DB2 UDB實例的數(shù)據(jù)庫管理器,下面的命令執(zhí)行當前實例。
語法:
set db2instance=<instance_name>
示例: [ 安排“db2inst1”環(huán)境到當前用戶]
set db2instance=db2inst1
使用此命令,就可以啟動一個實例。在此之前,需要運行“set instance”。
語法:
db2start
示例: [要啟動一個實例]
db2start
輸出:
SQL1063N DB2START processing was successful
使用此命令可以停止正在運行的實例。
語法:
db2stop
輸出:
SQL1064N DB2STOP processing was successful.
讓我們來看看如何創(chuàng)建一個新的實例。
如果想創(chuàng)建一個新的實例,需要使用root身份登錄。實例ID不可以是root id或root名稱。
下面是步驟來創(chuàng)建一個新的實例:
步驟1: 創(chuàng)建例如操作系統(tǒng)用戶。
語法:
useradd -u <ID> -g <group name> -m -d <user location> <user name> -p <password>
示例: [在組“db2iadm1”和密碼“db2inst2”創(chuàng)建實例名為'db2inst2'用戶]
useradd -u 1000 -g db2iadm1 -m -d /home/db2inst2 db2inst2 -p db2inst2
步驟2: 轉到root用戶DB2實例目錄中創(chuàng)建新實例。
位置:
cd /opt/ibm/db2/v10.1/instance
步驟3: 使用下面的語法創(chuàng)建實例:
語法:
./db2icrt -s ese -u <inst id> <instance name>
示例: [創(chuàng)建一個新的實例”db2inst2“在用戶db2inst2“帶有”ESE“(企業(yè)服務器版)功能,]
./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: [更新數(shù)據(jù)庫管理器配置與服務名稱。以下語法'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”通訊協(xié)議為當前實例
db2set DB2COMM=tcpip
語法3:停止和啟動當前實例得到來自數(shù)據(jù)庫管理器配置更新的值]
db2stop db2start
可以使用以下命令更新實例:
此命令用于同一版本釋放內(nèi)更新實例。執(zhí)行此命令之前,需要使用“db2stop”命令停止實例數(shù)據(jù)庫管理器。下面的“inst_name”語法表示前釋放或安裝DB2服務器實例的名稱,要升級到新的版本或安裝DB2服務器版本。
語法1: 更新正常模式下的一個實例
db2iupdt <inst_name>
實例1:
./db2iupdt db2inst2
語法 2: 更新調(diào)試模式實例
db2iupdt -D <inst_name>
實例
db2iupdt -D db2inst2
可以從先前版本的DB2副本的實例升級到目前新安裝的DB2副本版本。
在Linux或UNIX系統(tǒng)中,該命令位于DB2DIR/ instance目錄。在下面的語法,“inst_name”表示以前的版本DB2實例和“inst_username”表示當前安裝的版本DB2副本實例用戶。
語法 2:
db2iupgrade -d -k -u <inst_username> <inst_name>
示例:
db2iupgrade -d -k -u db2inst2 db2inst2
命令參數(shù):
-d : 打開調(diào)試模式。
-k : 保持如果支持的DB2副本,從正在運行此命令升級前的實例類型。
如果使用的是超級用戶(SU)在Linux上的db2iupgrade命令,必須發(fā)出“su”命令以及“- ”選項。
可以刪除或刪除實例,這是由“db2icrt”命令創(chuàng)建的。
在Linux和UNIX操作系統(tǒng),此命令位于DB2_installation_folder/實例目錄。
語法:[ 以下語法,“inst_username”表示實例的用戶名,“inst_name”表示實例名稱]
db2idrop -u <inst_username> <inst_name>
例如:[刪除db2inst2]
./db2idrop -u db2inst2 db2inst2
命令找出我們當前工作的DB2實例。
語法1:檢查由數(shù)據(jù)庫管理器激活當前實例]
db2 get instance
輸出:
The current database manager instance is: db2inst1
語法2:要查看當前實例與操作位和發(fā)行版本]
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
例如:[數(shù)組新創(chuàng)建的實例作為默認實例]
db2set db2instdef=db2inst2 -g