程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2建nickname導致CRASH解決方法

DB2建nickname導致CRASH解決方法

編輯:DB2教程

create alias db2admin.tables for sysstat.tables;

CREATE ALIAS DB2ADMIN.VIEWS FOR SYSCAT.VIEWS

create alias db2admin.columns for syscat.columns;

create alias guest.columns for syscat.columns;

4. 建立表

create table zjt_tables as

(select * from tables) definition only;

create table zjt_vIEws as

(select * from vIEws) definition only;

5. 插入記錄

insert into zjt_tables select * from tables;

insert into zjt_views select * from vIEws;

6. 建立視圖

create vIEw V_zjt_tables as select tabschema,tabname from zjt_tables;

7. 建立觸發器

CREATE TRIGGER zjt_tables_del

AFTER DELETE ON zjt_tables

REFERENCING OLD AS O

FOR EACH ROW MODE DB2SQL

Insert into zjt_tables1 values(substr(o.tabschema,1,8),substr(o.tabname,1,10))

8. 建立唯一性索引

CREATE UNIQUE INDEX I_ztables_tabname

[size=3]ON zjt_tables(tabname);

9. 查看表

select tabname from tables

where tabname='ZJT_TABLES';

10. 查看列

select SUBSTR(COLNAME,1,20) as 列名,TYPENAME as 類型,LENGTH as 長度

from columns

where tabname='ZJT_TABLES';

11. 查看表結構

db2 describe table user1.department

db2 describe select * from user.tables

12. 查看表的索引

db2 describe indexes for table user1.department

13. 查看視圖

select viewname from vIEws

where vIEwname='V_ZJT_TABLES';

14. 查看索引

select indname from indexes

where indname='I_ZTABLES_TABNAME';

15. 查看存貯過程

SELECT SUBSTR(PROCSCHEMA,1,15),SUBSTR(PROCNAME,1,15)

FROM SYSCAT.PROCEDURES;

16. 類型轉換(cast)

ip datatype:varchar

select cast(ip as integer)+50 from log_comm_failed

17. 重新連接

connect reset

18. 中斷數據庫連接

disconnect db2_gcb

19. vIEw application

LIST APPLICATION;

20. kill application

FORCE APPLICATION(0);

db2 force applications all (強迫所有應用程序從數據庫斷開)

21. lock table

lock table test in exclusive mode

22. 共享

lock table test in share mode

23. 顯示當前用戶所有表

list tables

24. 列出所有的系統表

list tables for system

25. 顯示當前活動數據庫

list active databases

26. 查看命令選項

list command options

27. 系統數據庫目錄

LIST DATABASE DIRECTORY

28. 表空間

list tablespaces

29. 表空間容器

LIST TABLESPACE CONTAINERS FOR

Example: LIST TABLESPACE CONTAINERS FOR 1

30. 顯示用戶數據庫的存取權限

GET AUTHORIZATIONS
db2命令介紹:  
 相比圖形界面而言,使用命令行的命令可以節省很多內存資源。但是寫的時候語法需要熟悉。
    db2start:啟動當前的DB2數據庫管理實例。 
    db2stop:停止當前的數據庫管理實例。
   注:啟動和關閉的是數據庫管理實例,而不是單個的數據庫,而restart database:並不是重新啟動數據庫,是平衡非正常結束而不一致狀態的數據庫,結束後,連接仍然存在。
    db2look:能為表,索引,視圖和諸如此類需要產生統計信息和數據定義語言(DDL)的對象產生需要的語句,以便重建數據庫對象和/或更新統計信息。DB2CLP下直接db2look,可看到選項。 db2move:db2移動數據的一個工具,可以在兩個不同的db2數據庫間移動數據,這兩個DB2數據庫可以在不同的服務器上,尤其是大量數據的表需要轉移的情況下,非常方便。 DB2CLP下直接db2move,可看到選項。 
   
以下命令在“db2=>”下鍵入“? Command”可以看到使用。
    catalog:編目數據庫或節點
    uncatalog:刪除已經編目的數據庫或節點
    這一對命令其實就實現了客戶機配置輔助程序編目數據庫的功能。
    update:功能是更新數據庫/數據庫管理器配置參數,
更新命令行處理器設置和監控器的開關等。
    connect:連接到一個數據庫。
    注:習慣顯式的關閉連接。
attach:建立一個到實例的連接,執行實例級別的管理。
  list:顯示一些數據庫對象或者設置的相關信息
   get:獲取一些數據庫參數的設置和狀態
  runstats:運行統計,更新系統目錄表中的信息。
  backup:備份數據庫
    1、防止意外數據丟失或系統意外
    2、重定向恢復實現整個數據庫的遷移
    3、AIX下的備份需要指定with n buffers 和 buffer size
   restore:還原數據庫
注:操作系統相同才可進行備份和恢復
   force application:強行關閉應用程序或者連接
導入導出數據:
文件格式:
DEL:界定的ASCII文件,行分隔符和列分隔符將數據分開。常用
ASC:定長的ASCII文件,行按照行分割符分開,列定長。
PC/IXF:只能用來在db2之間導數據,根據類型數字值被打包成十進制或者二進制,字符被保存為ASCII,只保存變量已經使用了的長度,文件中包括表的定義和表的數據。
WSF:工作表方式導入導出,不建議使用。

export:導出數據,支持IXF,DEL或WSF
import:導入數據,可以向表或者視圖中導入數據,支持上面提到的4中文件。
 注:當一個表中的主鍵被其他表引用為外鍵時,導入數據只能選APPEND,不能選替換。  
load:導入數據,功能和import基本相同。支持以上說的4種格式。Load最大的缺點是變化沒有記錄日志,不能前滾恢復。
Load的工作步驟:
1、載入階段:
 把數據載入到表中
 收集並存儲索引
2、建立階段
 建立載入階段收集的索引
3、刪除階段
 把違反唯一鍵或主鍵約束的記錄放到例外表中
 刪除違反主鍵和唯一鍵約束的記錄
注:自動生成列數據導入問題。
Load完畢之後:
Load程序可以將表或者表所在的表空間處於掛起狀態。
1、載入掛起:在載入階段發生錯誤,表空間處於此狀態
  解決方法:
  A:糾正錯誤後重新載入,將replace或者insert換成restart。將從失敗處重新開始裝載操作。
  B:如果前面調用用了replace,則再使用replace做load。
  C:用terminate選項終止load操作。
  D:DBA撤消並重新建立表空間
  E:從一個備份中恢復表空間(歸檔日志下才可以)。
2、刪除掛起:在刪除階段發生錯誤,將一直處於刪除掛起狀態。
3、備份掛起:這種策略是強迫用戶對目標表所在的數據庫或者表空間做一個備份。如果load是使用了copy no選項,並且開啟了歸檔日志,load完後將處於該狀態。做一個備份就可以消除該狀態。
4、檢查掛起的表:當表上存在主鍵和唯一鍵之外的約束時,load完後表將處於該狀態。包括以下情況:
 外鍵約束—用來強制執行內容的完整性。
 檢查約束—用戶定義的約束,檢查合法性。
 操作中引用了summary表,並且表設置的為refresh immediate。
可以使用如下命令解除該狀態:
SET CONSTRAINTS FOR TABNAME IMMEDIATE CHECKED FOR EXCEPTION IN EXP_TABLE
load和import的不同:
1、load的目標表必須存在,而import不需要
2、load並不創建索引,只是在原來索引的基礎上追加數據
3、最大區別在於性能區別,import每次插入一條,每行都要進行一次限制檢查,日志用來記錄變化,而load插入則快的多,每次讀取數據構造頁,然後直接輸入到數據庫。插入完頁後,索引將重新建立,違反主鍵和唯一鍵限制的記錄將被刪除並保存到另一個擴展表中。
注:load技巧使用:大數據量刪除。
 load from a.del of del replace into table   大家在應用DB2的時候可能會遇到一些看似簡單的問題,特別對新手來說,我在此簡單的
總結一下,發布給大家,希望對大家能有所幫助,同時也歡迎大家一起探討,共同發展,共同進步!
以下主要以DB27.X為基礎的.以下的字符為小寫.

  本文對DB2高手來說是不用看的.

  1.DB2產品的級別有那些?
  企業版的NTERPRISEEDITION
  工作組版WORKGROUPEDITION
  企業擴展版ENTERPRISEEXTENDEDEDITION
  個人版的PERSONALEDITION
  衛星版的SATELLITEEDITION
  微型版的EVERYPLACE
  
  2.可以連接到DB2數據庫的產品有哪些?
  DB2客戶端
  DB2CONNECT
  DB2DATAPROPAGATOR
  DB2NET.DATA
  DB2DATAJOINER
  DB2RELATIONALCONNECT
  WEBSPHERE應用服務器
  等
  
  3.DB2支持的通訊協議有哪些?
  TCP/IP
  NETBiOS
  APPG
  IPX/SPX
  NAMEPIPE
  等
  
  4.DB2客戶端產品有哪些?
  DB2運行時間客戶端DB2RUNTIMECLIENT
  DB2管理客戶端DB2ADMINISTRATIONCLIENT
  DB2應用程序開發客戶端DB2APPLICATIONDEVELOPMENTCLIENT
  DB2瘦客戶端DB2THINCLIENT
  
  5.一個數據庫是否可以安裝在多個數據庫服務器上?
  可以
  
  6.從哪個版本後存儲過程可以用SQL語句來創建?
  7.1版後
  
  7.DB2提供哪些關系擴展器?
  文本擴展器TEXTEXTENDER
  圖象擴展器IMAGEEXTENDER
  音頻擴展器AUDIOEXTENDER
  視頻擴展器VIDEOEXTENDER
  空間數據擴展器SPATIALEXTENDER
  xml(標准化越來越近了)擴展器XML(標准化越來越近了)EXTENDER
  網絡搜索擴展器NET.SEARCHEXTENDER
  
  8.Windows和OS/2環境下的DB2安裝目錄結構?
  用SETUP.EXE來安裝
  
  \SQLLIB安裝的根目錄,包括README文件
  \SQLLIB\ADSM包含ADSTAR分布式存儲管理器文件
  \SQLLIB\BIN包含DB2工具的可執行文件
  \SQLLIB\BND包含DB2工具的綁定文件
  \SQLLIB\CC包含運行控制中心所需的文件
  \SQLLIB\CFG包含默認的系統配置文件
  \SQLLIB\CONV包含代碼頁轉換表文件
  \SQLLIB\DB2默認的實例目錄
  \SQLLIB\DB2DAS00缺省的DB2管理服務器目錄
  \SQLLIB\DOC包含DB2聯機手冊
  \SQLLIB\FUNCTION默認的用戶自定義函數目錄
  \SQLLIB\FUNCTION\UNFENCED默認的非隔離用戶自定義函授目錄
  \SQLLIB\HELP聯機幫助文件
  \SQLLIB\JAVADB2所需的Java類庫
  Java12包含JDK1.2的支持程序
  \SQLLIB\MISC包含Html搜索服務器文件
  \SQLLIB\MSG\PRIME包含信息文件
  \SQLLIB\QP包含QUERYPATROLLER的客戶端文件
  \SQLLIB\SAMPLES包含樣例程序和樣例腳本
  \SQLLIB\SPMLOG包含DB2同步點管理器日志文件
  \SQLLIB\THNSETUP包含瘦客戶端安裝文件
  

簡介

理解 DB2 如何使用內存,可以防止過度分配內存,並有助於對內存的使用進行調優,從而獲得更好的性能。

本文將向您傳授 DB2 內存使用的基礎,以及共享內存和私有內存的概念。這些內容同時適用於 32 位和 64 位的系統。雖然對於 64 位系統有一些限制,但是在未來的一段時間內還不大可能觸及這些限制。因此,我們將焦點放在影響 32 位系統的內存限制,並對之進行詳細的討論。

我們首先討論一般情況下 DB2 如何使用內存,接著討論內存管理如何隨著平台(AIX、Sun、HP、Linux 和 Windows)的不同而變化,以及它們對 DB2 的影響。最後,我們將給出一些實際生活中客戶處境/問題以及他們的解決方案的有意義的例子。本文的內容適用於 DB2 version 8。

DB2 內存結構概述

圖 1中說明了 DB2 內存結構。這種內存結構在所有平台上都是一致的。 注意:在多分區環境中,下面的圖適用於多分區實例中的每個分區。

圖 1 - DB2 內存結構

DB2中內存的使用(1)(圖一)

DB2 在 4 種不同的內存集(memory set)內拆分和管理內存。這 4 種內存集分別是:

  • 實例共享內存(instance shared memory)
  • 數據庫共享內存(database shared memory)
  • 應用程序組共享內存(application group shared memory)
  • 代理私有內存(agent private memory)

每種內存集由各種不同的內存池(亦稱堆)組成。圖 1 也給出了各內存池的名稱。例如, locklist是屬於數據庫共享內存集的一個內存池。 sortheap是屬於代理私有內存集的一個內存池。

我們將詳細討論每一種內存集。

實例共享內存

每個 DB2 實例都有一個實例共享內存。實例共享內存是在數據庫管理器啟動(db2start)時分配的,並隨著數據庫管理器的停止(db2stop)而釋放。這種內存集用於實例級的任務,例如監控、審計和節點間通信。下面的數據庫管理器配置(dbm cfg)參數控制著對實例共享內存以及其中個別內存池的限制:

  • 實例內存( instance_memory)。
  • 監視器堆( mon_heap_sz):用於監控。
  • Audit Buffer( audit_buf_sz):用於 db2audit 實用程序。
  • Fast Communication buffers ( fcm_num_buffers):用於分區之間的節點間通信。僅適用於分區的實例。

instance_memory參數指定為實例管理預留的內存數量。默認值是 AUTOMATIC。這意味著 DB2 將根據監視器堆、審計緩沖區和 FCM 緩沖區的大小計算當前配置所需的實例內存數量。此外,DB2 還將分配一些額外的內存,作為溢出緩沖區。每當某個堆超出了其配置的大小時,便可以使用溢出緩沖區來滿足實例共享內存區內任何堆的峰值需求。在這種情況下,個別堆的設置是 限制的,它們可以在內存使用的峰值期間進一步增長。

如果 instance_memory被設置為某一個數字,則采用 instance_memorymon_heap_szaudit_buf_szfcm_num_buffers的和之間的較大者。這時,對實例內存就施加了一個硬性的限制,而不是軟限制。當達到這個限制時,就會收到內存分配錯誤。出於這個原因,建議將 instance_memory的設置保留為 AUTOMATIC

如果 instance_memory被設為 AUTOMATIC,則可以使用下面的命令來確定它的值:

  • db2 attach to instance_name(其中 instance_name是實例的名稱)
  • db2 get dbm cfg show detail

下面的輸出表明有 42 MB 的內存被預留給實例共享內存集(10313 頁 * 4096 字節/頁):

  • Size of instance shared memory (4KB) (INSTANCE_MEMORY) = AUTOMATIC(10313) AUTOMATIC(10313)

instance_memory參數只是設置了實例共享內存的限制。它並沒有說出當前使用了多少內存。要查明一個實例的內存使用情況,可以使用 DB2 內存跟蹤器工具 db2mtrk。例如,

  • db2start
  • db2mtrk -i -v
  • Memory for instance
  • FCMBP Heap is of size 17432576 bytes
  • Database Monitor Heap is of size 180224 bytes
  • Other Memory is of size 3686400 bytes
  • Total: 21299200 bytes

上面的例子表明,雖然預留給實例共享內存集的內存有 42 MB,但在 db2mtrk運行時只用到了大約 21 MB。注意:在某些情況下,db2mtrk 顯示的大小會大於指定給配置參數的值。在這種情況下,賦予配置參數的值被作為一種軟限制,內存池實際使用的內存可能會增長,從而超出配置的大小。

數據庫共享內存

每個數據庫有一個數據庫共享內存集。數據庫共享內存是在數據庫被激活或者第一次被連接上的時候分配的。該內存集將在數據庫處於非激活狀態時釋放(如果數據庫先前是處於激活狀態)或者最後一個連接被斷開的時候釋放。這種內存用於數據庫級的任務,例如備份/恢復、鎖定和 SQL 的執行。

圖2展示了數據庫共享內存集內的各種內存池。括號中顯示了控制這些內存池大小的配置參數。

圖 2 - DB2 數據庫共享內存

DB2中內存的使用(1)(圖二)

完整的綠色方框意味著,在數據庫啟動的時候,該內存池是完全分配的,否則,就只分配部分的內存。例如,當一個數據庫第一次啟動時,不管 util_heap_sz的值是多少,只有大約 16 KB 的內存被分配給實用程序堆。當一個數據庫實用程序(例如備份、恢復、導出、導入和裝載)啟動時,才會按 util_heap_sz指定的大小分配全額的內存。

主緩沖池

數據庫緩沖池通常是數據庫共享內存中最大的一塊內存。DB2 在其中操縱所有常規數據和索引數據。一個數據庫必須至少有一個緩沖池,並且可以有多個緩沖池,這要視工作負載的特征、數據庫中使用的數據庫頁面大小等因素而定。例如,頁面大小為 8KB 的表空間只能使用頁面大小為 8KB 的緩沖池。

可以通過 CREATE BUFFERPOOL 語句中的 EXTENDED STORAGE 選項“擴展”緩沖池。擴展的存儲(ESTORE)充當的是從緩沖池中被逐出的頁的輔助緩存,這樣可以減少 I/O。ESTORE 的大小由 num_estore_segs 和 estore_seg_sz 這兩個數據庫配置參數來控制。如果使用 ESTORE,那麼就要從數據庫共享內存中拿出一定的內存,用於管理 ESTORE,這意味著用於其他內存池的內存將更少。

這時您可能要問,為什麼要這麼麻煩去使用 ESTORE?為什麼不分配一個更大的緩沖池呢?答案跟可尋址內存(而不是物理內存)的限制有關,我們在後面會加以討論。

隱藏的緩沖池

當數據庫啟動時,要分配 4 個頁寬分別為 4K、8K、16K 和 32K 的小型緩沖池。這些緩沖池是“隱藏”的,因為在系統編目中看不到它們(通過 SELECT * FROM SYSCAT.BUFFERPOOLS 顯示不出)。

如果主緩沖池配置得太大,則可能出現主緩沖池不適合可尋址內存空間的情況。(我們在後面會談到可尋址內存。)這意味著 DB2 無法啟動數據庫,因為一個數據庫至少必須有一個緩沖池。如果數據庫沒有啟動,那麼就不能連接到數據庫,也就不能更改緩沖池的大小。由於這個原因,DB2 預先分配了 4 個這樣的小型緩沖池。這樣,一旦主緩沖池無法啟動,DB2 還可以使用這些小型的緩沖池來啟動數據庫。(在此情況下,用戶將收到一條警告(SQLSTATE 01626))。這時,應該連接到數據庫,並減少主緩沖池的大小。

簡介

理解 DB2 如何使用內存,可以防止過度分配內存,並有助於對內存的使用進行調優,從而獲得更好的性能。

本文將向您傳授 DB2 內存使用的基礎,以及共享內存和私有內存的概念。這些內容同時適用於 32 位和 64 位的系統。雖然對於 64 位系統有一些限制,但是在未來的一段時間內還不大可能觸及這些限制。因此,我們將焦點放在影響 32 位系統的內存限制,並對之進行詳細的討論。

我們首先討論一般情況下 DB2 如何使用內存,接著討論內存管理如何隨著平台(AIX、Sun、HP、Linux 和 Windows)的不同而變化,以及它們對 DB2 的影響。最後,我們將給出一些實際生活中客戶處境/問題以及他們的解決方案的有意義的例子。本文的內容適用於 DB2 version 8。

DB2 內存結構概述

圖 1中說明了 DB2 內存結構。這種內存結構在所有平台上都是一致的。 注意:在多分區環境中,下面的圖適用於多分區實例中的每個分區。

圖 1 - DB2 內存結構

DB2中內存的使用(1)(圖一)

DB2 在 4 種不同的內存集(memory set)內拆分和管理內存。這 4 種內存集分別是:

  • 實例共享內存(instance shared memory)
  • 數據庫共享內存(database shared memory)
  • 應用程序組共享內存(application group shared memory)
  • 代理私有內存(agent private memory)

每種內存集由各種不同的內存池(亦稱堆)組成。圖 1 也給出了各內存池的名稱。例如, locklist是屬於數據庫共享內存集的一個內存池。 sortheap是屬於代理私有內存集的一個內存池。

我們將詳細討論每一種內存集。

實例共享內存

每個 DB2 實例都有一個實例共享內存。實例共享內存是在數據庫管理器啟動(db2start)時分配的,並隨著數據庫管理器的停止(db2stop)而釋放。這種內存集用於實例級的任務,例如監控、審計和節點間通信。下面的數據庫管理器配置(dbm cfg)參數控制著對實例共享內存以及其中個別內存池的限制:

  • 實例內存( instance_memory)。
  • 監視器堆( mon_heap_sz):用於監控。
  • Audit Buffer( audit_buf_sz):用於 db2audit 實用程序。
  • Fast Communication buffers ( fcm_num_buffers):用於分區之間的節點間通信。僅適用於分區的實例。

instance_memory參數指定為實例管理預留的內存數量。默認值是 AUTOMATIC。這意味著 DB2 將根據監視器堆、審計緩沖區和 FCM 緩沖區的大小計算當前配置所需的實例內存數量。此外,DB2 還將分配一些額外的內存,作為溢出緩沖區。每當某個堆超出了其配置的大小時,便可以使用溢出緩沖區來滿足實例共享內存區內任何堆的峰值需求。在這種情況下,個別堆的設置是 限制的,它們可以在內存使用的峰值期間進一步增長。

如果 instance_memory被設置為某一個數字,則采用 instance_memorymon_heap_szaudit_buf_szfcm_num_buffers的和之間的較大者。這時,對實例內存就施加了一個硬性的限制,而不是軟限制。當達到這個限制時,就會收到內存分配錯誤。出於這個原因,建議將 instance_memory的設置保留為 AUTOMATIC

如果 instance_memory被設為 AUTOMATIC,則可以使用下面的命令來確定它的值:

  • db2 attach to instance_name(其中 instance_name是實例的名稱)
  • db2 get dbm cfg show detail

下面的輸出表明有 42 MB 的內存被預留給實例共享內存集(10313 頁 * 4096 字節/頁):

  • Size of instance shared memory (4KB) (INSTANCE_MEMORY) = AUTOMATIC(10313) AUTOMATIC(10313)

instance_memory參數只是設置了實例共享內存的限制。它並沒有說出當前使用了多少內存。要查明一個實例的內存使用情況,可以使用 DB2 內存跟蹤器工具 db2mtrk。例如,

  • db2start
  • db2mtrk -i -v
  • Memory for instance
  • FCMBP Heap is of size 17432576 bytes
  • Database Monitor Heap is of size 180224 bytes
  • Other Memory is of size 3686400 bytes
  • Total: 21299200 bytes

上面的例子表明,雖然預留給實例共享內存集的內存有 42 MB,但在 db2mtrk運行時只用到了大約 21 MB。注意:在某些情況下,db2mtrk 顯示的大小會大於指定給配置參數的值。在這種情況下,賦予配置參數的值被作為一種軟限制,內存池實際使用的內存可能會增長,從而超出配置的大小。

數據庫共享內存

每個數據庫有一個數據庫共享內存集。數據庫共享內存是在數據庫被激活或者第一次被連接上的時候分配的。該內存集將在數據庫處於非激活狀態時釋放(如果數據庫先前是處於激活狀態)或者最後一個連接被斷開的時候釋放。這種內存用於數據庫級的任務,例如備份/恢復、鎖定和 SQL 的執行。

圖2展示了數據庫共享內存集內的各種內存池。括號中顯示了控制這些內存池大小的配置參數。

圖 2 - DB2 數據庫共享內存

DB2中內存的使用(1)(圖二)

完整的綠色方框意味著,在數據庫啟動的時候,該內存池是完全分配的,否則,就只分配部分的內存。例如,當一個數據庫第一次啟動時,不管 util_heap_sz的值是多少,只有大約 16 KB 的內存被分配給實用程序堆。當一個數據庫實用程序(例如備份、恢復、導出、導入和裝載)啟動時,才會按 util_heap_sz指定的大小分配全額的內存。

主緩沖池

數據庫緩沖池通常是數據庫共享內存中最大的一塊內存。DB2 在其中操縱所有常規數據和索引數據。一個數據庫必須至少有一個緩沖池,並且可以有多個緩沖池,這要視工作負載的特征、數據庫中使用的數據庫頁面大小等因素而定。例如,頁面大小為 8KB 的表空間只能使用頁面大小為 8KB 的緩沖池。

可以通過 CREATE BUFFERPOOL 語句中的 EXTENDED STORAGE 選項“擴展”緩沖池。擴展的存儲(ESTORE)充當的是從緩沖池中被逐出的頁的輔助緩存,這樣可以減少 I/O。ESTORE 的大小由 num_estore_segs 和 estore_seg_sz 這兩個數據庫配置參數來控制。如果使用 ESTORE,那麼就要從數據庫共享內存中拿出一定的內存,用於管理 ESTORE,這意味著用於其他內存池的內存將更少。

這時您可能要問,為什麼要這麼麻煩去使用 ESTORE?為什麼不分配一個更大的緩沖池呢?答案跟可尋址內存(而不是物理內存)的限制有關,我們在後面會加以討論。

隱藏的緩沖池

當數據庫啟動時,要分配 4 個頁寬分別為 4K、8K、16K 和 32K 的小型緩沖池。這些緩沖池是“隱藏”的,因為在系統編目中看不到它們(通過 SELECT * FROM SYSCAT.BUFFERPOOLS 顯示不出)。

如果主緩沖池配置得太大,則可能出現主緩沖池不適合可尋址內存空間的情況。(我們在後面會談到可尋址內存。)這意味著 DB2 無法啟動數據庫,因為一個數據庫至少必須有一個緩沖池。如果數據庫沒有啟動,那麼就不能連接到數據庫,也就不能更改緩沖池的大小。由於這個原因,DB2 預先分配了 4 個這樣的小型緩沖池。這樣,一旦主緩沖池無法啟動,DB2 還可以使用這些小型的緩沖池來啟動數據庫。(在此情況下,用戶將收到一條警告(SQLSTATE 01626))。這時,應該連接到數據庫,並減少主緩沖池的大小。

1. 啟動實例(db2inst1):

db2start

2. 停止實例(db2inst1):

db2stop

3. 列出所有實例(db2inst1)

db2ilist

5.列出當前實例:

db2 get instance

4. 察看示例配置文件:

db2 get dbm cfg|more

5. 更新數據庫管理器參數信息:

db2 update dbm cfg using para_name para_value

6. 創建數據庫:

db2 create db test

7. 察看數據庫配置參數信息

db2 get db cfg for test|more

8. 更新數據庫參數配置信息

db2 update db cfg for test using para_name para_value

10.刪除數據庫:

db2 drop db test

11.連接數據庫

db2 connect to test

12.列出所有表空間的詳細信息。

db2 list tablespaces show detail

13.查詢數據:

db2 select * from tb1

14.數據:

db2 delete from tb1 where id=1

15.創建索引:

db2 create index idx1 on tb1(id);

16.創建視圖:

db2 create view vIEw1 as select id from tb1

17.查詢視圖:

db2 select * from vIEw1

18.節點編目

db2 catalog tcp node node_name remote server_ip server server_port

19.察看端口號

db2 get dbm cfg|grep SVCENAME

20.測試節點的附接

db2 attach to node_name

21.察看本地節點

db2 list node direcotry

22.節點反編目

db2 uncatalog node node_name

23.數據庫編目

db2 catalog db db_name as db_alias at node node_name

24.察看數據庫的編目

db2 list db directory

25.連接數據庫

db2 connect to db_alias user user_name using user_passWord

26.數據庫反編目

db2 uncatalog db db_alias

27.導出數據

db2 export to myfile of ixf messages msg select * from tb1

28.導入數據

db2 import from myfile of ixf messages msg replace into tb1

29.導出數據庫的所有表數據

db2move test export

30.生成數據庫的定義

db2look -d db_alias -a -e -m -l -x -f -o db2look.sql

31.創建數據庫

db2 create db test1

32.生成定義

db2 -tvf db2look.sql

33.導入數據庫所有的數據

db2move db_alias import

34.重組檢查

db2 reorgchk

35.重組表tb1

db2 reorg table tb1

36.更新統計信息

db2 runstats on table tb1

37.備份數據庫test

db2 backup db test

38.恢復數據庫test

db2 restore db test

399\.列出容器的信息

db2 list tablespace containers for tbs_id show detail

40.創建表:

db2 ceate table tb1(id integer not null,name char(10))

41.列出所有表

db2 list tables

42.插入數據:

db2 insert into tb1 values(1,’sam’);

db2 insert into tb2 values(2,’smitty’);

安裝DB2 9數據管理軟件大致有4種方式:“DB2安裝精靈,db2_install安裝腳本,描述配置文件式安裝,純手動安裝”等。以下分別介紹:
DB2安裝精靈

在Linux,Unix,Windows操作系統環境下的圖形界面向導式安裝方式,對初次安裝DB2 9的用戶很實用。安裝精靈提供容易使用的安裝界面,能簡化安裝後的數據庫性能調整和優化任務等操作。安裝精靈還可以用來簡單地生成數據庫實例和描述安裝配置文件,在Unix或Linux環境下,安裝精靈的運行需要依賴x服務器軟件的支持。

db2_install安裝腳本

這種腳本安裝方式只可以在Linux或Unix平台環境下才可以使用,Windows平台不支持腳本安裝方式。該種方式對安裝過程的控制粒度更細致,但這種安裝方式無法創建數據庫用戶和組,無法創建數據庫實例,或進行安裝後的配置。

描述配置文件式安裝

描述配置文件是一個文本格式的文件,其中包含了DB2 9安裝需要的步驟和配置的一些列設定值,DB2 9安裝程序將讀取描述配置文件中的各項預設安裝值進行安裝。有以下一些方法來生成安裝描述配置文件:

1.在Windows平台下可以用描述文件生成器

2.使用DB2安裝精靈來生成

3.對產品包中提供的樣例文件進行修改後得到
這種安裝方式有利於進行DB2 客戶端的分布式安裝,例如,你可以先安裝好一個DB2 客戶端,對它進行充分配置後,將結果生成一個描述配置文件,然後對類似的客戶端進行安裝復制。還可以使用db2cfexp命令來輸出DB2客戶端軟件和服務器端軟件的安裝配置輪廓文件。

純手動安裝

此種安裝方式只建議高級專家使用,需要安裝者對將近970多個安裝子包進行解包和安裝部件提取工作,復雜性,不言而喻,不推薦初級用戶使用。


  關於DB2 8.1認證考試大綱

DB2 UDB V8.1 認證考試目標
DB2 Family Fundamentals
考試 700 的目標
1、規劃 15% (8題)
· 了解 DB2 UDB 產品(客戶機和服務器等)
· 了解 DB2 工具
· 了解數據倉庫(Datawarehouse)和 OLAP 概念
· 了解非關系型數據概念(擴展器等)
2、安全性 9% (5題)
· 了解如何限制數據訪問
· 了解不同特權
3、訪問 DB2 UDB 數據 15% (8題)
· 能夠確定和定位 DB2 UDB 服務器
· 能夠訪問和操作 DB2 UDB 對象
· 能夠創建基本的 DB2 UDB 對象
4、使用 DB2 UDB 數據 31% (17題)
· 了解事務
· 給出一個 DDL SQL 語句,了解如何確定其結果
· 給出一個 DML SQL 語句,了解如何確定其結果
· 給出一個 DCL SQL 語句,了解如何確定其結果
· 能夠使用 SQL 從多個表選擇(SELECT)數據
· 能夠使用 SQL 對數據進行排序(SORT)或分組(GROUP)
· 能夠使用 SQL 更新(UPDATE)、刪除(DELETE)或插入(INSERT)數據
· 能夠調用過程
5、使用 DB2 UDB 對象 19% (10題)
· 能夠演示 DB2 UDB 數據類型的用法
· 在給定情況下,能夠創建表
· 了解如何確定何時應該使用引用完整性
· 了解如何確定數據約束的方法
· 了解如何確定表、視圖或索引的特征
6、數據並發性 11% (6題)
· 了解如何確定影響鎖定的因素
· 能夠列出可以獲得鎖的對象
· 了解如何確定 DB2 UDB 鎖的特征
· 在給定情況下,了解如何確定應該使用的隔離級別

DB2 UDB V8.1 for Linux, UNIX, and Windows Database Administration
考試 701 的目標
1、DB2 服務器管理 19% (13題)
· 能夠配置/管理 DB2 實例(如作用域)
· 掌握 DB2 認證
· 掌握 DB2 授權
· 能夠設置用戶和/或組權限
· 掌握 DB2 Force 命令的用法
· 能夠配置客戶機/服務器連通性
· 能夠調度作業
· 能夠使用 Discovery 配置客戶機服務器連通性
· 能夠熟練解釋 Notify 日志的內容
2、數據放置 17% (12題)
· 能夠創建數據庫
· 能夠熟練論述模式的使用
· 能夠熟練論述各種表空間的狀態
· 能夠創建和操作各種 DB2 對象
· 能夠創建 SMS 表空間,並論述其特征
· 能夠創建 DMS 表空間,並論述其特征
3、數據庫訪問 17% (12題)
· 能夠使用 GUI 工具創建 DB2 任務
· 掌握索引的創建和管理
· 能夠創建對表的約束(例如 RI、Informational 和 Unique)
· 能夠對表創建視圖
· 能夠熟練檢查 System Catalog 表的內容
· 能夠使用 GUI 工具訪問 DB 對象
· 掌握如何增強數據唯一性的知識
4、監控 DB2 活動 16% (11題)
· 能夠獲取/修改數據庫管理器配置信息
· 能夠獲取/修改數據庫配置信息
· 能夠捕捉 Explain/Visual Explain 信息
· 能夠熟練分析 Explain/Visual Explain 信息(sortheap、buffpage 和 degree)
· 能夠確定 DB2 控制器(DB2 Governor)和查詢巡視器(Query Patroller)的功能
· 能夠獲取和修改 DB2 注冊表變量
· 能夠捕獲快照
· 能夠創建和激活事件監控程序
· 能夠識別健康中心(Health Center)的輸出
5、DB2 實用程序 17% (12題)
· 能夠使用 EXPORT 實用程序從表抽取數據
· 能夠使用 IMPORT 實用程序將數據插入表
· 能夠使用 LOAD 實用程序將數據插入表
· 能夠確定何時使用 IMPORT 和 LOAD
· 能夠使用 REORG、REORGCHK、REBIND 和 RUNSTATS 實用程序
· 能夠使用 DB2Move 和 DB2Look
· 掌握 DB2 顧問程序(DB2 Advisor)的功能
· 能夠使用 DB2 控制中心(DB2 Control Center)
6、備份和恢復 14% (10題)
· 能夠執行數據庫級別和表空間級別的備份和恢復(BACKUP 和 RESTORE)
· 能夠確定和解釋索引重建過程中的問題
· 掌握數據庫日志記錄
· 掌握崩潰(Crash)恢復
· 掌握版本(Version)恢復
· 掌握前滾(Roll Forward)恢復

DB2 UDB V8.1 Family Application Development
考試 703 的目標
數據庫對象和編程方法 13%
· 了解 DB2 對象的命名約定(別名和視圖等)
· 了解通過應用程序訪問數據所需的權限
· 了解復雜的數據庫對象
· 了解如何確定動態嵌入式 SQL 和靜態嵌入式 SQL 之間的區別
· 能夠熟練確定何時使用 CLI/ODBC
· 能夠熟練確定何時使用 JDBC 和 SQLJ
· 能夠確定何時使用 SQL 例程和函數
· 能確定何時使用 OLEDB
數據操作 26%
· 能夠跨多個表查詢數據庫
· 能夠跨多個數據庫(聯邦數據庫)查詢表
· 了解如何更改數據
· 能夠使用 DB2 SQL 函數
· 能夠使用公共表表達式
· 了解如何確定何時在 SQL 程序中使用游標
· 了解如何確定游標的類型
· 了解如何確定游標的范圍
· 能夠操作游標
· 能夠管理工作單元(事務管理)
嵌入式 SQL 編程 11%
· 了解創建嵌入式 SQL 編程應用程序所需的步驟以及產生的輸出
· 了解如何確定何時使用宿主變量(begin-declare)
· 能夠熟練聲明宿主變量
· 能夠在查詢中熟練使用宿主變量
· 能夠解釋/分析 SQLCA 內容
· 了解常見錯誤、預編譯和綁定數據庫程序
· 能夠在嵌入式 SQL 編程應用程序內連接到數據庫
ODBC/CLI 編程 13%
· 了解不同的句柄類型
· 了解如何配置 DB2 ODBC 驅動程序
· 了解如何確定問題(診斷記錄)
· 了解調用 ODBC/CLI 函數的正確順序
· 了解各種 CLI 游標類型並知道何時使用它們
· 能夠在 ODBC/CLI 編程應用程序內連接到數據庫
Java 編程 13%
· 了解各種 JDBC 對象
· 了解 SQLJ 和 JDBC 之間的差異
· 了解如何確定問題(JDBC 跟蹤、SQL 異常和 JDBC 錯誤日志)
· 能夠熟練執行構建 SQLJ 應用程序的步驟
· 能夠跨多個數據庫管理事務(JTA)
· 能夠在 Java 應用程序內連接到數據庫
· 能夠確定應當使用哪種連接類型連接到數據庫
高級編程 16%
· 在程序內利用動態和靜態 SQL
· 能夠在程序內熟練地強制轉換 UDT
· 了解如何確定何時使用復合 SQL(Compound SQL)
· 了解在應用程序內的並發性考慮事項
· 了解分布式工作單元的概念
· 了解如何使用參數標記
· 能確定使用 Unicode 編程的方法
· 使用性能增強特性(緩沖的插入)
用戶定義的例程(User Defined Routine)8%
· 了解如何使用 UDF
· 了解何時使用存儲過程
· 能夠熟練使用 DB2 開發中心(DB2 Development Center)
· 了解使用 DB2 開發中心的編程語言

DB2 UDB V8.1 for Linux, UNIX and Windows Advanced Database Administration
考試 704 的目標
高級管理 32%
· 能夠設計表空間
· 能夠創建表空間
· 能夠管理表空間
· 能夠設計緩沖池
· 能夠創建緩沖池
· 能夠管理緩沖池
· 能夠利用操作內並行性(intra-parallelism)
· 能夠利用操作間並行性(inter-parallelism)
· 能夠設計和配置聯邦數據庫訪問
· 能夠管理分布式工作單元
高可用性 19%
· 能夠開發日志記錄策略
· 能夠使用高級備份功能部件
· 能夠使用高級恢復功能部件
· 能夠實現備用數據庫(日志交付、復制、故障轉移、故障監控程序)
性能和可伸縮性 37%
· 確定和使用影響數據庫系統性能的配置參數
· 確定和使用影響數據庫系統性能的 DB2 注冊表變量
· 了解關於查詢優化器概念
· 能夠管理和調優內存和 I/O
· 能夠分析性能問題
· 能夠管理大量用戶和連接
· 能夠為提高性能對大量數據進行分區
· 能夠管理數據庫中分區的數量
· 能夠創建和管理多維群集表
· 能夠確定更為適當的索引
聯網和安全性 12%
· 能夠在多台服務器上配置分區數據庫
· 能夠管理與主機系統的連接
· 能夠確定和解決連接問題
· 了解外部認證機制
· 能夠實現數據加密

  大家在應用DB2的時候可能會遇到一些看似簡單的問題,特別對新手來說,我在此簡單的總結一下,發布給大家,希望對大家能有所幫助,同時也歡迎大家一起探討,共同發展,共同進步!
以下主要以DB27.X為基礎的.以下的字符為小寫.
  
  本文對DB2高手來說是不用看的.
  
  DB2函數
  135.AVG()
  返回一組數值的平均值.
  SELECTAVG(SALARY)FROMBSEMPMS;
  
  136.CORR(),CORRELATION()
  返回一對數值的關系系數.
  SELECTCORRELATION(SALARY,BONUS)FROMBSEMPMS;
  
  137.COUNT()
  返回一組行或值的個數.
  SELECTCOUNT(*)FROMBSEMPMS;
  
  138.COVAR(),COVARIANCE()
  返回一對數值的協方差.
  SELECTCOVAR(SALARY,BONUS)FROMBSEMPMS;
  
  139.MAX()
  返回一組數值中的最大值.
  SELECTMAX(SALARY)FROMBSEMPMS;

  140.MIN()
  返回一組數值中的最小值.
  SELECTMIN(SALARY)FROMBSEMPMS;
  
  141.STDDEV()
  返回一組數值的標准偏差.
  SELECTSTDDEV(SALARY)FROMBSEMPMS;
  
  142.SUM()
  返回一組數據的和.
  SELECTSUM(SALARY)FROMBSEMPMS;
  
  143.VAR(),VARIANCE()
  返回一組數值的方差.
  SELECTVARIANCE(SALARY)FROMBSEMPMS;
  
  144.ABS(),ABSVAL()
  返回參數的絕對值.
  SELECTABS(-3.4)FROMBSEMPMS;
  
  145.ACOS()
  返回參數的反余弦值.
  SELECTACOS(0.9)FROMBSEMPMS;
  
  146.ASCII()
  返回整數參數最左邊的字符的ASCII碼.
  SELECTASCII('R')FROMBSEMPMS;
  
  147.ASIN()
  返回用弧度表示的角度的參數的反正弦函數.
  SELECTASIN(0.9)FROMBSEMPMS;
  
  148.ATAN()
  返回參數的反正切值,該參數用弧度表示的角度的參數.
  SELECTATAN(0.9)FROMBSEMPMS;
  
  149.ATAN2()
  返回用弧度表示的角度的X和Y坐標的反正切值.
  SELECTATAN2(0.5,0.9)FROMBSEMPMS;
  
  150.BIGINT()
  返回整型常量中的數字或字符串的64位整數表示.
  SELECTBIGINT(EMP_NO)FROMBSEMPMS;
  
  151.CEILING()ORCEIL()
  返回比參數大或等於參數的最小的整數值.
  SELECTCEILING(3.56)FROMBSEMPMS;
  SELECTCEIL(4.67)FROMBSEMPMS;
  
  152.CHAR()
  返回日期時間型,字符串,整數,十進制或雙精度浮點數的字符串表示.
  SELECTCHAR(SALARY,',')FROMBSEMPMS;
  
  153.CHR()
  返回具有由參數指定的ASCII碼的字符.
  SELECTCHAR(167)FROMBSEMPMS;
  
     大家在應用DB2的時候可能會遇到一些看似簡單的問題,特別對新手來說,我在此簡單的總結一下,發布給大家,希望對大家能有所幫助,同時也歡迎大家一起探討,共同發展,共同進步!
  以下主要以DB27.X為基礎的.以下的字符為小寫.

  本文對DB2高手來說是不用看的.
  所有字符為小寫.

  51.安裝DB2默認的事例名稱是?
  在Windows或OS/2中默認的是DB2
  在Linux或UNIX環境下默認的是DB2INST1
  
  52.安裝後的默認帳戶是?
  在Windows或OS/2中默認的是DB2ADMIN
  在Linux或UNIX環境下默認的是DB2AS

  53.事例的類型有哪些?
  CLIENT(客戶)
  STANDALONE(獨立的)
  SATELLITE(衛星)
  EEDB2
  EEE
  
  54.如何創建事例?
  DB2ICRTINSTNAME<...PARAMETERS>
  
  55.如何列出系統上的所有可用事例?
  DB2ILIST
  
  56.如何知道當前對話用的是哪個事例?
  GETINSTANCE
  
  57.如何更新事例的配置?
  DB2IUPDT
  
  58.如何刪除事例?
  DB2IDROPINSTANCE_NAME
  具體步驟如下:
  停止事例上所有應用程序
  在所有打開的命令行上執行DB2TERMINATE
  運行DB2STOP
  備份DB2INSTPROF注冊變量指出的事例目錄
  退出事例所有登陸者
  使用DB2IDROP
  也可以刪除ID
  
  59.如何列出本地系統上有許可信息的所有產品?
  DB2LICM-L
  
  60.如何增加一產品許可?
  DB2LICM-AFILENAME
  
  61.如何刪除一個產品的許可?
  DB2LICM-RPRODUCTPASSWord
  
  62.如何更新已購買的許可數量?
  DB2LICM-U
  
  63.如何強制只使用已經購買的數量?
  DB2LICM-EHARD







  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved