2013-06-18

IBM DB2 管理

必要的授權角色

在 UNIX 上,執行此程序的使用者必須具有 root 專用權。而在 Windows 上,執行此程序的使用者必須具有 Administrators 群組的成員資格。還必須要有有效的使用者名稱和密碼,才能存取管理伺服器的必要資料庫。


開始之前

管理伺服器的資料庫必須使用 UTF8 編碼,才能處理非 ASCII 值 (例如中文字元)。

程序
這些程序會提供範例指令。實際指令和值也許會因您的環境而不同。

  1. 執行下列作業,讓 DB2 7.2 版能夠使用 IBM Tivoli Monitoring for Transaction Performance 所需的已更新 Java 功能:
    1. 停止 DB2 服務。
    2. 存取您的 DB2 安裝的 SQLLIB\java12 目錄。
    3. 執行程式,以更新 IBM DB2 7.2 版的 Java 功能:
      • 在 Windows 型環境中,執行 usejdbc2.bat 批次檔。
      • 在 UNIX 型環境中,執行 usejdbc2 Script。
    4. 重新啟動 DB2。
  2. 執行下列作業以建立資料庫:
    1. 在供管理伺服器使用的電腦上安裝 DB2 用戶端。
    2. 使用下列指令以建立資料庫:
      db2 "create database database_name"
      其中 database_name 是資料庫的名稱。
      範例:如果 db2Admin 是在管理伺服器上安裝 DB2 資料庫用戶端的 使用者名稱,您可以使用 db2Admin 來登入,並建立名為 itmtpDB 的資料庫 以支援管理儲存庫。
      db2 "create database itmtpDB"
      相關資訊:在與該用戶端關聯的「DB2 實例」下建立供管理伺服器使用的資料庫。 為了建立資料庫,您可以 DB2 實例的授權使用者來登入, 或以 DB2 用戶端以其身份而安裝的。安裝 DB2 用戶端的使用者能夠存取與用戶端有關聯的所有 DB2 實例。
    3. (僅限雙位元組字元環境):例如, 語言環境設為中文、韓文或日文的作業系統,需要雙位元組字集。如果您的作業系統啟用單位元組字集, 則不會自動接受雙位元組字集。您必須明確地啟用資料庫,以儲存含有雙位元組字元字串的監視資訊。下列建立資料庫的指令,會啟用雙位元組字集的儲存體:
      - DB2: CREATE DATABASE database_name USING CODESET UTF-8 TERRITORY US
  3. 執行下列作業,在 DB2 伺服器機器的作業系統上建立資料庫使用者。
    1. 直接在伺服器上,或從 DB2 用戶端中,建立資料庫使用者。
      相關資訊資料庫使用者一詞指的是管理伺服器用於存取支援管理儲存庫之 DB2 資料庫的系統使用者帳號。範例:如果 DB2 伺服器是安裝在 Windows 電腦上, 則您可以在該機器的 DOS 提示中輸入下列指令,建立管理伺服器可用於存取管理儲存庫的資料庫使用者帳戶。 此指令範例會建立一個名為 itmtp52 的使用者,其密碼為 TIMS。 (此密碼是第二個 itmtp52項目。)
      net user itmtp52 itmtp52 /add
  4. 執行下列作業,建立並實作緩衝池:
    註:
    DB2 的預設緩衝池和頁面大小,比使用管理儲存庫的應用程式所需的最佳效能還要小。 請使用大小至少為 250 的緩衝池。
    若要實作緩衝池,您必須中斷目前連接資料庫之所有應用程式的連線。
    1. 建立大型緩衝池,不使用作業系統分頁,將大小儘可能設為最大。
      相關資訊:例如,若要建立大小為 250、頁面大小為 32K 的緩衝池, 請在 DB2 中輸入下列指令:
      create bufferpool buffpool32k size 250 pagesize 32k
    2. 使用 APPLHEAPSZ 512 指令,更新 <database_name> 的資料庫配置。
    3. 輸入下列指令來檢視新緩衝池:
      select * from syscat.bufferpools
    4. 使用下列指令,列出目前連接至資料庫的所有應用程式:
      db2 list applications
      畫面會顯示類似以下的應用程式清單:
      Auth ID   Appl.  Appl.      Application ID            DB     #of
                Name   Handle                               Name  Agents
      --------  ----   ------  ---------------------------  ----  ------
      DB2INST1  java     14   *LOCAL.db2instl.000918161203  CSWA    1
      DB2INST1  java     15   *LOCAL.db2instl.000918161204  CSWA    1
    5. 關閉連接至資料庫的所有 連線,針對目前連接的每一個應用程 式,重複執行下列指令:
      db2 force application (applicationhandle)
      其中 applicationhandle 是列在應用程式清單之 Appl. Handle 直欄中的應用程式處理號碼 (請參閱步驟 4d)。
    6. 以下列其中一種方式重新連接至資料庫:
      • 如果您是以 DB2 實例的授權使用者 (資料庫以其身份而建立) 登入,請輸入類似下列的指令:
        db2 "connect to databasename"
        其中 databasename 是要供管理伺服器使用之資料庫的名稱。
        --或--
      • 如果您不是以 DB2 實例的授權使用者 (資料庫以其身份而建立) 登入,請輸入類似下列的指令:
        db2 "connect to databasename user InstUser using InstUserPasswd"
        其中:
        • databasename 是要供管理伺服器使用之資料庫的名稱。
        • InstUser 和 InstUserPasswd 是 DB2 實例之授權使用者(資料庫以其身份而建立) 的使用者 ID 和密碼。
        顯示的資訊與下面的類似:
        $db2 connect to cswa
        
        Database Connection Information
        Database server      = DB2/6000 7.1.0
        SQL authorization ID = DB2INST1
        Local database alias = CSWA
  5. 執行下列作業,建立表格空間:
    註:
    下列範例程序會建立一個新的表格空間,並將其與大小為 250、頁面大小為 32K 的緩衝池產生關聯。 您必須先建立好使用者表格空間,然後才能建立系統暫存表格空間。
    注意下列表格空間預估一個月的作業資料。不過,空間需求會視您的環境及您對產品的配置方式而有差異。
    1. 使用下列指令,捨棄預設的使用者表格空間 (userspace1):
      drop tablespace userspace1
    2. 輸入類似下列範例的指令,重建預設使用者表格空間:
      create tablespace userspace1 pagesize 32 k managed by system
      using ('/data2/tablespace1' 250)
      bufferpool bp32k
    3. 若要建立系統暫存表格空間,請輸入類似下列範例的指令:
      create temporary tablespace tempspace pagesize 32 k managed by system
      using ('/data2/temp32k')
      bufferpool bp32k
    4. 若要檢視變更,輸入下列指令:
      db2 list tablespaces show detail
  6. 使用下列指令,將許可權授與資料庫使用者 (管理伺服器用於存取資料庫的使用者帳戶):
    註:
    資料庫使用者必須有建立和編輯表格的權限。
    db2 "grant dbadm on database to user user"
    db2 "grant use of tablespace tablespace to user user"
    其中:
    • user 是資料庫使用者的使用者 ID
    • tablespace 是要為管理伺服器建立的表格空間名稱。
    相關資訊:這些指令會授與資料庫及表格空間的 DBADM 權限。 若要發出這些指令,您必須以獲得「DB2 實例」授權,並且用來建立資料庫的使用者登入。
    範例:若要建立資料庫使用者 itmtp52 以供管理伺服器使用 (如步驟 3 下的範例),並建立表格空間 userspace1 (如步驟 5 下的範例), 請使用下列指令,授與使用資料庫及表格空間的權限。
    db2 "grant dbadm on database to user itmtp52"
    db2 "grant use of tablespace userspace1 to user itmtp52"
  7. 選用) 您可以使用下列程序, 驗證 DB2 資料庫配置是否已最佳化。
    註:
    此範例程序會增加日誌優先項目的數目,然後開啟日誌保存功能,將配合 IBM Tivoli Monitoring for Transaction Performance 應用程式使用的資料庫配置最佳化。
    1. 輸入類似下列指令,以列出資料庫配置資訊:
      db2 "get db cfg for databasename"
    2. 輸入類似下列範例的指令,增加主要日誌的數量:
      db2 "update db cfg for databasename using logprimary number"
    3. 輸入類似下列指令,以開啟日誌保留功能:
      db2 "update db cfg for databasename using logretain on"
    4. 列出目前連接至資料庫的所有應用程式。請使用下列指令:
      db2 list applications
      畫面會顯示類似以下的應用程式清單:
      Auth ID   Appl.  Appl.      Application ID            DB     #of
                Name   Handle                               Name  Agents
      --------  ----   ------  ---------------------------  ----  ------
      DB2INST1  java     14   *LOCAL.db2instl.000918161203  CSWA    1
      DB2INST1  java     15   *LOCAL.db2instl.000918161204  CSWA    1
    5. 關閉所有到資料庫的連線。為目前已連接的每一個應用程式重複下列指令:
      db2 force application (applicationhandle)
      其中 applicationhandle 是列在應用程式清單之 Appl. Handle 直欄中的應用程式處理號碼 (請參閱步驟 7d)。
    6. 製作離線備份並套用 db 日誌到捲動轉遞。輸入與下列相類似的指令:
      db2 "backup db databasename to backupdirectory"
    7. 重複步驟 7d
  8. 執行下列作業,設定 DB2 用戶端連線:
    註:
    若 DB2 RDBMS 是安裝在與用戶端 (管理伺服器) 不同的機器上,您必須在用戶端機器上安 裝 DB2 Client Application Enabler,並設定至資料庫的連線。
    相關資訊:安裝及配置 DB2 Client Application Enabler 時,請遵循這些指引:
    • 請確定在系統上沒有安裝「DB2 用戶端應用程式啟用程式」(不論是完整或部份安裝)。若安裝已存在,請將它解除安裝。
    • 自訂選項以選取 Java Database Connectivity (JDBC)。JDBC 驅動程式被安裝成部份的「DB2 用戶端應用程式啟動程式」安裝環境。
    • 確定在選取的起始目錄中,有大約 2 MB 的可用空間以容納「DB2 用戶端應用程式啟用程式」。
    • (僅限 UNIX 型系統) 執行 db2profile 檔案 (適用於 Korn 或 Bourne Shell) 或 db2cshrc 檔案 (適用於 C Shell),以便能夠執行 DB2 指令及公用程式,例如 catalog 及 connect
      db2profile 和 db2cshrc 檔案位於 DB2 實例擁有者的起始目錄,該目錄在 sqllib 子目錄下面。 從每個需要使用 DB2 環境和工具的帳戶的 .profile 或 .cshrc 檔案取得適當檔案。
    • (僅限 AIX) 若要驗證 RDBMS 和 DB2 用戶端的設定,請確認下列環境變數已正確設定。(若您已取得 db2profile 或 db2cshrc 檔案,那麼這些變數是正確的。)
      • DB2DIR 必須指向到「DB2 用戶端應用程式啟動程式」安裝的目錄。
      • DB2INSTANCE 必須設為資料庫實例名稱。這會在資料庫安裝時設定。
    「DB2 用戶端應用程式啟動程式」安裝之後,必須設定到 RDBMS 伺服器和到資料庫的連通性。設定連通性的 DB2 指令是從用戶端系統所發出。即使 DB2 是在掌管管理伺服器的電腦上執行,您也必須執行這些指令。
    • 下列範例指令會將用戶端連接到稱為 ghost 的 RDBMS 伺服器,其具有節點名稱或別名 ims_db2 並使用埠 50000:
      db2 "catalog tcpip node ims_db2 remote ghost server 50000"
    • 下列範例指令會將用戶端連接到稱為 timsdev 的資料庫 (別名為 ims_dev), 此資料庫位於節點名稱或別名為 ims_db2 的伺服器上:
      db2 "catalog database timsdev as ims_dev at node ims_db2"
  9. 執行下列作業,提供額外共用記憶體區段供 AIX 上的 DB2 連線使用:
    註:
    根據預設值,AIX 並不允許 32 位元應用程式,在執行每個處理程序時,連接至超過 11 個的共用記憶體區段,而這其中本端 DB2 連線最多只能使用 10 個。請使用 EXTSHM (延伸共用記憶體) 功能,確保有足夠數量的共用記憶體區段可供 DB2 連線使用。EXTSHM 功能在 DB 7.2 版 (安裝 DB2 UDB 7.1 版 Fix Pack 3 的結果) 或更新版本的 DB2 裡都能使用。若您未提供足夠的共用記憶體區段數量,可能會看到下列錯誤訊息:
    SQL1224N  無法啟動一個資料庫代理站來為這個要求服務,
    或由於資料庫系統關閉或強制命令而導致資料庫代理站
    終止。SQLSTATE=55032
  10. 啟用 EXTSHM,指令如下:
    • 在 DB2 用戶端階段作業中:export EXTSHM=ON
    • 啟動 DB2 UDB 伺服器時:
      export EXTSHM=ON
      db2set DB2ENVLIST=EXTSHM
      db2start
    • 在 DB2 UDB EEE 上:
      EXTSHM=ON
      export EXTSHM
      您也要將這幾行新增到 sqllib/db2profile