DB2資料庫移植常見問題全面解析

pingyuan發表於2009-06-03
DB2資料庫移植常見問題全面解析[@more@]

安裝與配置

在Linux下重新安裝DB2之後無法建立DB2INST1的例項,提示已經存在

解決辦法:刪除 /var/db2/v81目錄,再重新建立例項;

原因分析:在重新安裝DB2之前,需要解除安裝原DB2安裝環境,其中很重要的一步就是,使用db2idrop命令刪除DB2INST1例項, 如果不刪除,再次安裝DB2之後,則無法建立相同名稱的資料庫例項。db2idrop命令在 /opt/IBM/db2/V8.1/instance 目錄下,以下為示例:

清單1. db2idrop命令示例

/opt/IBM/db2/V8.1/instance/db2idrop db2inst1

在Solaris 5.8下安裝 DB2 後卻無法建立例項,提示shmmax需要調整。

解決辦法:編輯/etc/system檔案,修改共享記憶體引數和訊息佇列值,重啟機器後再建例項;

原因分析:DB2在UNIX系統上需要使用IPC通訊,所以核心引數共享記憶體和訊息佇列是關鍵指標,如果不能達到DB2要求數量,則DB2無法正常工作,其具體數字不易記憶,但可以檢視db2diag.log,裡面記錄了DB2所需要的具體數字,依照該數字更新核心引數即可。

DB2 Runtime Client可否不安裝開發工具包,只安裝足夠客戶端工作的元件,以方便模擬客戶實際應用環境進行測試?

解決辦法:DB2 Runtime Client並不包含開發工具包。其功能就是隻提供客戶端工作的元件包。

一個裸裝置無法同時分配給兩個資料庫,這樣無法建立兩個資料庫伺服器共享同一個裸裝置

解決辦法:把這兩個資料庫分別建在不同的例項上,將其中一個例項停下,第二個例項啟動,分配裸裝置給該活動例項上的資料庫,分配完畢後將活動例項停下,啟動第一個例項,重複先前分配裸裝置的操作到第一個例項,即可實現當一個資料庫停下時,該裸裝置資料可以完全被另外一個資料庫接管,從而實現共享。

原因分析:一個容器是無法同時分配給兩個活動資料庫的。必須針對兩個例項來操作,分配給一個例項時另一個例項必須處於不活動狀態。

在Linux上DB2安裝完成後,不能繫結License,報DBI1430N錯誤

解決辦法:

1.更新系統時間到當前時間。使用 Linux 中的 DATE 命令;

2.使用db2licm命令繫結License:

清單 2. 繫結License命令示例

./db2licm -a db2ese.lic

在Linux上DB2例項建立不成功,返回錯誤碼DBI1281E

解決辦法:正確設定主機名;

原因分析:DB2建立例項時要取主機名,如果主機名設定不正確,則會報告無法初始化例項的錯誤,也就是DBI1281E,可以首先用uname或者hostname檢視是否有主機名,進一步可以用ping命令驗證主機名是否正確,如果 ping 不通則不正確,還可以檢查/etc/hosts檢視IP和主機名的對應關係是否正確。

安裝與配置

在Linux下重新安裝DB2之後無法建立DB2INST1的例項,提示已經存在

解決辦法:刪除 /var/db2/v81目錄,再重新建立例項;

原因分析:在重新安裝DB2之前,需要解除安裝原DB2安裝環境,其中很重要的一步就是,使用db2idrop命令刪除DB2INST1例項, 如果不刪除,再次安裝DB2之後,則無法建立相同名稱的資料庫例項。db2idrop命令在 /opt/IBM/db2/V8.1/instance 目錄下,以下為示例:

清單1. db2idrop命令示例

/opt/IBM/db2/V8.1/instance/db2idrop db2inst1

在Solaris 5.8下安裝 DB2 後卻無法建立例項,提示shmmax需要調整。

解決辦法:編輯/etc/system檔案,修改共享記憶體引數和訊息佇列值,重啟機器後再建例項;

原因分析:DB2在UNIX系統上需要使用IPC通訊,所以核心引數共享記憶體和訊息佇列是關鍵指標,如果不能達到DB2要求數量,則DB2無法正常工作,其具體數字不易記憶,但可以檢視db2diag.log,裡面記錄了DB2所需要的具體數字,依照該數字更新核心引數即可。

DB2 Runtime Client可否不安裝開發工具包,只安裝足夠客戶端工作的元件,以方便模擬客戶實際應用環境進行測試?

解決辦法:DB2 Runtime Client並不包含開發工具包。其功能就是隻提供客戶端工作的元件包。

一個裸裝置無法同時分配給兩個資料庫,這樣無法建立兩個資料庫伺服器共享同一個裸裝置

解決辦法:把這兩個資料庫分別建在不同的例項上,將其中一個例項停下,第二個例項啟動,分配裸裝置給該活動例項上的資料庫,分配完畢後將活動例項停下,啟動第一個例項,重複先前分配裸裝置的操作到第一個例項,即可實現當一個資料庫停下時,該裸裝置資料可以完全被另外一個資料庫接管,從而實現共享。

原因分析:一個容器是無法同時分配給兩個活動資料庫的。必須針對兩個例項來操作,分配給一個例項時另一個例項必須處於不活動狀態。

在Linux上DB2安裝完成後,不能繫結License,報DBI1430N錯誤

解決辦法:

1.更新系統時間到當前時間。使用 Linux 中的 DATE 命令;

2.使用db2licm命令繫結License:

清單 2. 繫結License命令示例

./db2licm -a db2ese.lic

在Linux上DB2例項建立不成功,返回錯誤碼DBI1281E

解決辦法:正確設定主機名;

原因分析:DB2建立例項時要取主機名,如果主機名設定不正確,則會報告無法初始化例項的錯誤,也就是DBI1281E,可以首先用uname或者hostname檢視是否有主機名,進一步可以用ping命令驗證主機名是否正確,如果 ping 不通則不正確,還可以檢查/etc/hosts檢視IP和主機名的對應關係是否正確。

安裝與配置

在Linux下重新安裝DB2之後無法建立DB2INST1的例項,提示已經存在

解決辦法:刪除 /var/db2/v81目錄,再重新建立例項;

原因分析:在重新安裝DB2之前,需要解除安裝原DB2安裝環境,其中很重要的一步就是,使用db2idrop命令刪除DB2INST1例項, 如果不刪除,再次安裝DB2之後,則無法建立相同名稱的資料庫例項。db2idrop命令在 /opt/IBM/db2/V8.1/instance 目錄下,以下為示例:

清單1. db2idrop命令示例

/opt/IBM/db2/V8.1/instance/db2idrop db2inst1

在Solaris 5.8下安裝 DB2 後卻無法建立例項,提示shmmax需要調整。

解決辦法:編輯/etc/system檔案,修改共享記憶體引數和訊息佇列值,重啟機器後再建例項;

原因分析:DB2在UNIX系統上需要使用IPC通訊,所以核心引數共享記憶體和訊息佇列是關鍵指標,如果不能達到DB2要求數量,則DB2無法正常工作,其具體數字不易記憶,但可以檢視db2diag.log,裡面記錄了DB2所需要的具體數字,依照該數字更新核心引數即可。

DB2 Runtime Client可否不安裝開發工具包,只安裝足夠客戶端工作的元件,以方便模擬客戶實際應用環境進行測試?

解決辦法:DB2 Runtime Client並不包含開發工具包。其功能就是隻提供客戶端工作的元件包。

一個裸裝置無法同時分配給兩個資料庫,這樣無法建立兩個資料庫伺服器共享同一個裸裝置

解決辦法:把這兩個資料庫分別建在不同的例項上,將其中一個例項停下,第二個例項啟動,分配裸裝置給該活動例項上的資料庫,分配完畢後將活動例項停下,啟動第一個例項,重複先前分配裸裝置的操作到第一個例項,即可實現當一個資料庫停下時,該裸裝置資料可以完全被另外一個資料庫接管,從而實現共享。

原因分析:一個容器是無法同時分配給兩個活動資料庫的。必須針對兩個例項來操作,分配給一個例項時另一個例項必須處於不活動狀態。

在Linux上DB2安裝完成後,不能繫結License,報DBI1430N錯誤

解決辦法:

1.更新系統時間到當前時間。使用 Linux 中的 DATE 命令;

2.使用db2licm命令繫結License:

清單 2. 繫結License命令示例

./db2licm -a db2ese.lic

在Linux上DB2例項建立不成功,返回錯誤碼DBI1281E

解決辦法:正確設定主機名;

原因分析:DB2建立例項時要取主機名,如果主機名設定不正確,則會報告無法初始化例項的錯誤,也就是DBI1281E,可以首先用uname或者hostname檢視是否有主機名,進一步可以用ping命令驗證主機名是否正確,如果 ping 不通則不正確,還可以檢查/etc/hosts檢視IP和主機名的對應關係是否正確。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7199667/viewspace-1022735/,如需轉載,請註明出處,否則將追究法律責任。

相關文章