SELECT(執行 IBM Spectrum Protect 資料庫的 SQL 查詢)

使用 SELECT 指令可以建立及格式化 IBM Spectrum® Protect 資料庫的自訂查詢。

IBM Spectrum ProtectDb2® 程式提供 SQL 介面。 如需適用於 SQL 查詢之限制及準則的相關資訊,請參閱 DB2 產品說明文件。

為了協助您尋找可用的資訊,IBM Spectrum Protect 提供了兩個系統型錄表:
SYSCAT.TABLES
內含可用 SELECT 指令來查詢之所有表格的相關資訊。
SYSCAT.COLUMNS
說明各表格中的直欄。
您可以發出 SELECT 指令來查詢這些表格,以判斷所需資訊的位置。

使用注意事項

您不能從伺服器主控台發出 SELECT 指令。

因為 SELECT 指令無法鎖定和解除鎖定記錄,所以記錄的競用可能會造成伺服器錯誤發出訊息 ANR2034E: SELECT: 使用此準則找不到相符項。請檢查您的選項準則,如果您認為是正確的,請重試指令。

如果要停止處理已開始執行的 SELECT 指令,請取消發出指令的管理級階段作業。 請從伺服器主控台或管理級階段作業來取消階段作業。

暫存表格空間是用來處理 DB2 內的 SQL 查詢。 暫存空間不足會導致 SQL 查詢失敗。

如果要將輸出匯出至以逗點區隔的檔案,然後匯入試算表中,請在 dsmadmc 指令上使用 -comma 和 > 指令行選項。

專用權類別

任何管理者均可以發出此指令。

語法

如需 SELECT 陳述式語法與準則,請搜尋 Db2 產品資訊

重要: 適合時間戳記 Select 陳述式的語法是:

SELECT * FROM SUMMARY WHERE ACTIVTY='EXPIRATION' AND START_TIME >'2009-05-10 00:00:00' AND START_TIME <'2009-05-11 23:23:23'

範例清單

SELECT 指令可用來自訂多種查詢。 為使您擁有這個指令之函數的概念,本節中包括許多範例。 不過,仍有更多的可能性。 只會顯示較複雜指令的查詢輸出以說明格式化。

下列清單彙總 SELECT 指令:
  • 列出由外部 LDAP 目錄伺服器來鑑別的管理者使用者 ID
  • 列出可用的表格
  • 列出伺服器目前無法存取的用戶端節點和管理用戶端
  • 列出使用傳統階段作業安全的用戶端節點、管理用戶端及伺服器
  • 列出最近未指定正確密碼的用戶端節點和管理用戶端
  • 列出標準原則網域中與日常備份排程 DAILYBACKUP 無關聯的節點
  • 列出指定為核准管理者的管理者使用者 ID
  • 列出具有原則權限的管理者
  • 列出在維護活動日誌記錄的時段內已發出的類型 E (ERROR) 或 W (WARNING) 訊息
  • 列出管理者 JAKE 已定義或變更的管理排程
  • 列出相對的管理排程優先順序
  • 列出保存副本群組的保留期超過 365 天的管理類別
  • 列出每一個原則網域中的用戶端節點
  • 計算已自每一個節點保存多少檔案
  • 列出正在使用空間管理的用戶端
  • 判斷若將儲存區 TAPE 的收回臨界值變更為 50% 時能收回多少磁區
  • 若變更或刪除 STANDARD 原則網域中的 DAILY 管理類別,判斷每一個節點有多少備份檔會受到影響
  • 判斷所有作用中的用戶端階段作業已連接多久及其每秒有效傳輸量(位元組)
  • 判斷現行背景處理程序已執行多久,並判斷其每秒有效傳輸量(時間和檔案數)
  • 計算每一種平台類型的用戶端節點數
  • 計算每一個用戶端節點所具有的檔案空間數,並以遞增順序列出用戶端節點
  • 取得統計資訊,以計算在儲存區收回期間,空間會被收回的遠地磁區數
  • 取得 PVU 預估詳細記錄
  • 取得節點角色的相關資訊
  • 取得狀態的相關資訊
  • 識別任何物件代理程式

範例:列出向 IBM Spectrum Protect 伺服器進行鑑別的管理者使用者 ID

列出其密碼是由 IBM Spectrum Protect 伺服器來鑑別的所有管理者使用者 ID:
select admin_name from admins where 
authentication=local 

範例:列出可用的表格

列出可用來查詢 IBM Spectrum Protect 資料庫的表格。
select * from syscat.tables
      ABSCHEMA: SERVER1
       TABNAME: ACTLOG
   CREATE_TIME: 1999-05-01 07:39:06
      COLCOUNT: 10
INDEX_COLCOUNT: 1
  UNIQUE_INDEX: FALSE
       REMARKS: Server activity log
 
     TABSCHEMA: SERVER1
       TABNAME: ADMIN_SCHEDULES
   CREATE_TIME: 1995-05-01 07:39:06
      COLCOUNT: 14
INDEX_COLCOUNT: 1
  UNIQUE_INDEX: TRUE
       REMARKS: Administrative command schedules
 
     TABSCHEMA: SERVER1
       TABNAME: ADMINS
   CREATE_TIME: 1995-05-01 07:39:06
      COLCOUNT: 15
INDEX_COLCOUNT: 1
  UNIQUE_INDEX: TRUE
       REMARKS: Server administrators
 
     TABSCHEMA: SERVER1
       TABNAME: ARCHIVES
   CREATE_TIME: 1995-05-01 07:39:06
      COLCOUNT: 10
INDEX_COLCOUNT: 5
  UNIQUE_INDEX: FALSE
       REMARKS: Client archive files

範例:列出伺服器目前無法存取的用戶端節點和管理用戶端

select node_name from nodes where locked='YES'
 
select admin_name from admins where locked='YES'

範例:列出使用傳統階段作業安全用戶端節點、管理用戶端及伺服器

select node_name from nodes where session_security='Transitional'

select admin_name from admins where session_security='Transitional'

select server_name from servers where session_security='Transitional'

範例:列出最近未指定正確密碼的用戶端節點和管理用戶端

select node_name from nodes where invalid_pw_count <>0
 
select admin_name from admins where invalid_pw_count <>0

範例:列出標準原則網域中與日常備份排程 DAILYBACKUP 無關聯的節點

select node_name from nodes where domain_name='STANDARD' and
node_name not in (select node_name from associations
where domain_name='STANDARD' and schedule_name='DAILYBACKUP')

範例:列出具有原則權限的管理者

select admin_name from admins where 
upper(system_priv) <>'NO'
or upper(policy_priv) <>'NO'

範例:列出指定為核准管理者的管理者

select * from admins where cmd_approver='YES'

範例:列出在維護活動日誌記錄的時段內已發出的類型 E (ERROR) 或 W (WARNING) 訊息

select date_time,msgno,message from actlog
where severity='E' or severity='W'

範例:列出管理者 JAKE 已定義或變更的管理排程

select schedule_name from admin_schedules where chg_admin='JAKE'

範例:列出相對的管理排程優先順序

select schedule_name,priority from admin_schedules order
by priority

範例:列出保存副本群組的保留期超過 365 天的管理類別

select domain_name,set_name,class_name from ar_copygroups
where retver='NOLIMIT' or cast(retver as integer) >365

範例:列出指定超過五個備份版本的管理類別

select domain_name,set_name,class_name from bu_copygroups
where verexists ='NOLIMIT' or 
cast(verexists as integer)>5

範例:列出正在使用用戶端選項集 SECURE 的用戶端節點

select node_name from nodes where option_set='SECURE'

範例:列出每一個原則網域中的用戶端節點

select domain_name,num_nodes from domains

範例:計算已自每一個節點保存多少檔案

小心: 這個指令可能需要較長的時間才能完成。
select node_name,count(*) from archives 
group by node_name

範例:列出正在使用空間管理的用戶端

select node_name from auditocc where spacemg_mb <>0

範例:判斷若將儲存區 TAPE 的收回臨界值變更為 50% 時能收回多少磁區

select count(*) from volumes where stgpool_name='TAPE' 
and upper(status)='FULL' and pct_utilized < 50

範例:若變更或刪除 STANDARD 原則網域中的 DAILY 管理類別,判斷每一個節點有多少備份檔會受到影響

註: 這個指令需要較多的時間和資源來完成。
select node_name, count(*) as "Files" from backups
where class_name='DAILY' and node_name in
(select node_name from nodes where domain_name='STANDARD')
group by node_name

範例:判斷所有作用中的用戶端階段作業已連接多久及其每秒有效傳輸量(位元組)

select session_id as "Session",
client_name as "Client",
state as "State",
current_timestamp-start_time as "Elapsed Time",
(cast(bytes_sent as decimal(18,0)) /
cast(second(current_timestamp-start_time) as decimal(18,0)))
as "Bytes sent/second",
(cast(bytes_received as decimal(18,0)) /
cast(second(current_timestamp-start_time) as decimal(18,0)))
as "Bytes received/second"
from sessions
                 Session: 24
                  Client: ALBERT
                   State: Run
            Elapsed Time: 0 01:14:05.000000
       Bytes sent/second: 564321.9302768451
   Bytes received/second: 0.0026748857944
 
                 Session: 26
                  Client: MILTON
                   State: Run
            Elapsed Time: 0 00:06:13.000000
       Bytes sent/second: 1638.5284210992221
   Bytes received/second: 675821.6888561849

範例:判斷現行背景處理程序已執行多久,並判斷其每秒有效傳輸量(時間和檔案數)

註: 「過期」不報告所處理的位元組數。
select process_num as "Number",
process,
current_timestamp-start_time as "Elapsed Time",
(cast(files_processed as decimal(18,0)) /
cast(second(current_timestamp-start_time) as decimal(18,0)))
as "Files/second",
(cast(bytes_processed as decimal(18,0)) /
cast(second(current_timestamp-start_time) as decimal(18,0)))
as "Bytes/second"
from processes
          Number: 1
         PROCESS: Expiration
    Elapsed Time: 0 00:24:36.000000
    Files/second: 6.3216755870092
    Bytes/second: 0.0000000000000
 

範例:計算每一種平台類型的用戶端節點數

select platform_name,count(*) as "Number of Nodes" 
from nodes group by platform_name
PLATFORM_NAME     Number of Nodes
-------------     ---------------
                                   
  AIX                   6
  SunOS                27
  Win32                14
  Linux                20
 

範例:計算每一個用戶端節點所具有的檔案空間數,並以遞增次序列出用戶端節點

select node_name, count(*) as "number of filespaces" 
from filespaces group by node_name order by 2
NODE_NAME              number of filespaces
------------------     --------------------
    ALBERT                    2
    MILTON                    2
    BARNEY                    3
    SEBASTIAN                 3
    MAILHOST                  4
    FALCON                    4
    WILBER                    4
    NEWTON                    4
    JEREMY                    4
    WATSON                    5
    RUSSELL                   5
 

範例:取得統計資訊,以計算在儲存區收回期間會收回空間的離站磁區數

select * from summary where activity='OFFSITE RECLAMATION'
           START_TIME: 2004-06-16 13:47:31.000000
             END_TIME: 2004-06-16 13:47:34.000000
             ACTIVITY: OFFSITE RECLAMATION
               NUMBER: 4
               ENTITY: COPYPOOL
             COMMMETH:
              ADDRESS:
        SCHEDULE_NAME:
             EXAMINED: 170
             AFFECTED: 170
               FAILED: 0
                BYTES: 17821251
                 IDLE: 0
               MEDIAW: 0
            PROCESSES: 2
           SUCCESSFUL: YES
          VOLUME_NAME:
           DRIVE_NAME:
         LIBRARY_NAME:
             LAST_USE:
            COMM_WAIT:
     NUM_OFFSITE_VOLS: 2

範例:識別哪些儲存區包含已由用戶端刪除重複資料的資料

select stgpool_name,has_client_dedup_data from stgpools
STGPOOL_NAME                HAS_CLIENT_DEDUP_DATA
--------------------        --------------------
ADPOOL                      NO
ARCHIVEPOOL                 NO
BACKUPPOOL                  NO
COPYDEDUP                   NO
COPYNODEDUP                 NO
FILEPOOL                    YES
FILEPOOL2                   NO
LANFREEFILEPOOL             YES
SPACEMGPOOL                 NO

範例:判定物件儲存體的物件代理程式是否在伺服器上

tsm: SERVER1>select * from servers

       SERVER_NAME: SERVER1
          COMMMETH: TCPIP
        HL_ADDRESS: localhost
        LL_ADDRESS: 1500
       DESCRIPTION:
      ALLOWREPLACE: NO
         NODE_NAME:
      LASTACC_TIME: 2018-04-16 17:32:39.000000
            LOCKED: NO
       COMPRESSION: NO
        ARCHDELETE: YES
               URL:
         ORIG_DATE: 2018-04-16 17:32:39.000000
         REG_ADMIN: SERVER_CONSOLE
    LASTSESS_RECVD: 0
     LASTSESS_SENT: 0
LASTSESS_DURATION: 0.00000000000000E+000
LASTSESS_IDLEWAIT: 0.00000000000000E+000
LASTSESS_COMMWAIT: 0.00000000000000E+000
LASTSESS_MEDIAWAIT: 0.00000000000000E+000
  GRACE_DEL_PERIOD: 5
           PROFILE:
    SERVER_PWD_SET: No
SERVER_PSWET_TIME:
SERVER_INVALID_PWC:
    VVNODE_PWD_SET: No
     VV_PSWET_TIME:
    VV_INVALID_PWC:
  VALIDATEPROTOCOL: No
               SSL: No
  SESSION_SECURITY: Transitional
  TRANSPORT_METHOD: Unknown
    TRANSFERMETHOD: TCPIP
      OBJECT_AGENT: Yes 

範例:取得資料庫的相關資訊

select * from db

       DATABASE_NAME: TSMDB1
  TOT_FILE_SYSTEM_MB: 2048000
    USED_DB_SPACE_MB: 12576
       FREE_SPACE_MB: 1576871
         TOTAL_PAGES: 983044
        USABLE_PAGES: 982908
          USED_PAGES: 977736
          FREE_PAGES: 5172
      BUFF_HIT_RATIO: 96.2
      TOTAL_BUFF_REQ: 53967
       SORT_OVERFLOW: 0
     LOCK_ESCALATION: 0
       PKG_HIT_RATIO: 70.0
          LAST_REORG: 2010-07-15 17:32:55.000000
      FULL_DEV_CLASS: OUTFILE
     NUM_BACKUP_INCR: 0
    LAST_BACKUP_DATE: 2010-01-21 10:37:59.000000
    PHYSICAL_VOLUMES: 0
           PAGE_SIZE:
  NUM_BACKUP_STREAMS: 4 

範例:取得 PVU 預估詳細記錄。

為一個名稱為 ACCTSRECSRV 的節點產生 PVU 預估,供 IBM Spectrum Protect 增訂版產品使用。

select * from pvuestimate_details where node_name='ACCTSRECSRV'

           PRODUCT: PRODEE
      LICENSE_NAME: MGSYSLAN
         NODE_NAME: ACCTSRECSRV
         LAST_USED: 2008-01-20 16:12:24.000000
            TRYBUY: FALSE
       PROC_VENDOR: IBM
        PROC_BRAND: POWER5+ QCM 
         PROC_TYPE: 4
        PROC_MODEL: 
        PROC_COUNT: 2
              ROLE: SERVER
     ROLE_OVERRIDE: USEREPORTED
    ROLE_EFFECTIVE: SERVER
       VALUE_UNITS: 50
  VALUE_FROM_TABLE: YES
               PVU: 100
       SCAN_ERROR : NO
        API_CLIENT: NO
      PVU_AGNOSTIC: NO
        HYPERVISOR: VMWARE
              GUID: 01.2e.1c.80.e5.04- 
                     .11.da.aa.ab.00.-
                     15.58.0b.d9.47
           VERSION: 6
           RELEASE: 3
             LEVEL: 1
          VENDOR_D: IBM(R) 
           BRAND_D: POWER5(TM) QCM
            TYPE_D: Quad-core Module
           MODEL_D: All Existing
         PRODUCT_D: IBM Spectrum Protect Extended Edition

範例:取得角色及 PVU 相關資訊

下列範例顯示所選節點的部分結果,其中包括 PVU 相關資訊和角色資訊。 可能的角色為 CLIENT、SERVER 或 OTHER。 PVU 的計算僅用於定義為伺服器的節點。

select * from nodes
  ROLE: CLIENT
      ROLE_O: USEREPORTED
     PVENDOR: INTEL
      PBRAND: INTEL
       PTYPE: 4
      PMODEL:     
      PCOUNT: 1
  HYPERVISOR: 
        PAPI: NO
   SCANERROR: NO 

欄位說明

PRODUCT
將授權類型累積更新至 QUERY PVUESTIMATE 指令所呈現層次的產品。 可能值為 PRODEE、PROTBASIC、PRODDATARET、PRODMAIL、 PRODDB、PRODSYSB、PRODSPACE、PRODSAN、PRODERP 或空白。
LICENSE_NAME
指派給這個節點的授權。
NODE_NAME
節點名稱。
LAST_USED
所識別的節點根據此授權,前次連接到系統的日期和時間。
TRYBUY
指出是否在「試用版」模式之下執行。 可能的值為 true 或 false。
PROC_VENDOR
用戶端報告的處理器供應商名稱。
PROC_BRAND
用戶端報告的處理器品牌名稱。
PROC_TYPE
用戶端報告的處理器類型。 這個值也反映核心的數目。 範例值為:1=SINGLE CORE、2=DUO CORE 及 4=QUAD CORE。
PROC_MODEL
用戶端報告的處理器型號。
PROC_COUNT
處理器數量。
ROLE
節點角色。 可能的值為 CLIENT、SERVER 或 OTHER。
ROLE_OVERRIDE
置換 UPDATE NODE 指令所指定的值。
ROLE_EFFECTIVE
根據 ROLE 和 ROLE_OVERRIDE 欄位值的實際角色。
VALUE_UNITS
處理器已指派的處理器價值單位 (PVU)。
PVU
計算的 PVU 值。
PVU per node = number of processors per node * processor type * pvu value
其中 processor type 代表核心數目,而 pvu value 是在 IBM® PVU 表格中定義給處理器類型的值。
VALUE_FROM_TABLE
指出 PVU 是否根據 IBM PVU 表格而計算的旗標。 可能的值為 YES 或 NO。 如果為 NO,會對每一個定義為伺服器的節點套用 100 這個值。 如果未定義節點的角色,會採用伺服器的角色來進行 PVU 計算。
SCAN_ERROR
指出用戶端是否報告授權資訊的旗標。 可能的值為 YES 或 NO。
API_CLIENT
指出 API 應用程式的旗標。 可能的值為 YES 或 NO。
PVU_AGNOSTIC
指出用戶端版本/版次比 IBM Spectrum Protect 6.3 版更舊的旗標。 如果版本比 6.3 更舊,則不會產生有效的 PVU 度量。 可能的值為 YES 或 NO。
HYPERVISOR
用戶端所報告的虛擬機器軟體名稱。
GUID
節點所在電腦的「廣域唯一 ID (GUID)」。 GUID 是從節點表格取得。
VERSION
用戶端版本。
RELEASE
用戶端版次。
LEVEL
用戶端層次。
OBJECT_AGENT
指定伺服器是否為物件代理程式。
VENDOR_D
PVU 表格中的處理器供應商顯示值。
BRAND_D
PVU 表格中的處理器品牌顯示值。
TYPE_D
PVU 表格中的處理器類型顯示值。
MODEL_D
PVU 表格中的處理器型號顯示值。
PRODUCT_D
PVU 表格中的產品顯示值。 可能的值如下:
  • IBM Spectrum Protect
  • IBM Spectrum Protect Extended Edition
  • IBM Spectrum Protect for Data Retention
  • IBM Spectrum Protect for SAN
  • IBM Spectrum Protect for Space Management
  • IBM Spectrum Protect for Mail
  • IBM Spectrum Protect for Databases
  • IBM Spectrum Protect for Enterprise Resource Planning
  • IBM Spectrum Protect for System Backup and Recovery
  • 空白