顯示具有 DB2 標籤的文章。 顯示所有文章
顯示具有 DB2 標籤的文章。 顯示所有文章

2014/6/6

SQL性能小測試得出的驚人結果:60%失敗

這篇文章放了將近2個月才仔細閱讀
結果:我勉強算答對一題
保留起來。以後隨時複習

=============================================================

http://blog.jobbole.com/60800/

本文由 伯樂在線 - sunbiaobiao 翻譯自 MarkusWinand。歡迎加入技術翻譯小組。轉載請參見文章末尾處的要求。


2011年,我開展了「3分鐘測試你對SQL性能知道多少?」的測試活動。其中包含五個問題,它們是這樣的:每個問題有一個query/index查詢,問你這樣是否正確使用了索引。至今, 這個測試已經成了 Use The Index, Luke網站上的一個熱點。這個測試已經被回答了28,000次。
提醒一下:也許你不想被我劇透,你可以提前自己測試一下自己。
儘管這個測試是為了教育,我很好奇自己是否可以從中找到一些規律,我認為可以的。當你看這些結果時,要記住幾點,第一,這些測試因為很出人意料才惹 人眼球,也就是說,有的測試看著性能很高,其實性能不高。有的反之。只有一個問題答案符合你的第一印象。很有意思的是,這個測試並不知道參與者是誰,所有 人都可以參與,為了獲得一個好的分數,你也可以再來一遍。要曉得這個測試不是為了對索引進行科學研究。然而,我認為結果仍可以給人一些啟示。
下面我對每個問題展示兩個不同的統計圖。第一,每個問題平均沒正確回答多少次。第二,對於MySQL, Oracle, PostgreSQL 和 SQL Server統計數據有什麼不同。也就是說,是否MySQL 使用者會比PostgreSQL 使用者更懂索引呢?我很幸運獲得這樣的統計數據,原因是不同的數據庫提供商有自己獨特的語法定義。像MySQL和PostgreSQL 中的 LIMIT  到了SQL Server中就成了 TOP。因此參與者開始時要選擇一種數據庫,問題是針對所選數據庫的。
問題一:WHERE語句中的函數
從性能上來看,下面的SQL語句是好的實踐嗎?
查詢出所有2012年的行:
1
2
3
4
5
CREATE INDEX tbl_idx ON tbl (date_column);
 
SELECT text, date_column
  FROM tbl
 WHERE TO_CHAR(date_column, 'YYYY') = '2012';
這個例子 SQL語句使用了Oracle和PostgreSQL  的特有函數,在MYSQL中這個問題就使用YEAR(date_column),在SQL SERVER中則為datepart(yyyy, date_column)。當然我可以使用EXTRACT(YEAR date_column),但我覺得還是使用通用一點的語法好一點。
參與者有兩個選項:
  •  好的實踐 ,沒有大的性能改進可以採用了
  •  壞的實踐,有大的性能改進可以採用
答案是「壞實踐」,原因是雖然在date_column上有索引,但 是在date_column字段上加了函數以後,索引就失效了。你如果不信,你可以看看一些可以證明我的結論的腳本和最後的解釋說明。詳細的解釋都在 Use The Index, Luke網站的相關頁面上。
如果你不知道在字段上加函數時怎麼吧索引的功能給抹殺了,很多人都和你一樣。只有2/3的人給出了正確答案。算上有些人選了兩次,有些人是蒙的。這樣說來差不多只有一半的人答對,無疑是很少的。我用下面這張圖強調一下
q3_tofefetal_20140212
這是我平時工作中最常見的一個問題,當你在VARCHAR 類型的字段上使用UPPERTRIM等函數時同樣會碰到這個問題。請記住,當你對WHERE語句中使用的字段加上函數的時候,它的索引功能就失去了作用。
儘管這個結果很令人失望——只比隨便碰對的概率高17%,但這都沒讓我感到驚奇。讓我驚奇的是在不同數據庫使用者中結果的不同。
          q1_bydb_20140212
實施上 MYSQL使用者只得到了55%的分數——就像純粹蒙一樣低。PostgreSQL 使用者卻獲得了83%的分數。
也許產生這個結果的原因是MYSQL不支持function-based indexes而Oracle 和 PostgreSQL支持。Function-based 索引允許你使用索引表達式像TO_CHAR(date_column, 『YYYY'),雖然對這個測試來說,這樣做不是推薦的解決方案。但僅僅是這個特性的存在讓Oracle 和 PostgreSQL使用者對這個問題更有意識。SQL Server提供了類似的特性,雖然不能直接使用索引表達式,但是你可以創建所謂的computed column,這個列是可以被索引的。
雖然以上可以解釋為什麼MySQL 使用者的效率比較低,但這不是藉口。不管支持function-based indexes與否,那個 query/index句子總之效率很低。很有效果的改進是不在索引字段上使用函數:
1
2
3
4
SELECT text, date_column
  FROM tbl
 WHERE date_column >= TO_DATE('2012-01-01', 'YYYY-MM-DD')
   AND date_column <  TO_DATE('2013-01-01', 'YYYY-MM-DD');
索引字段不必改變。這種解決方案很靈活,因為它支持廣泛的類型——星期或月份。這是我推薦的解決方案。
我很好奇,我想知道那些正確回答問題的人怎麼在function-based索引上考慮復合索引。我最好把這種回答認為是正確了一半。
問題二:索引過之後的TOP-N查詢
從性能上來看是好的實踐還是壞的實踐?
按時間遠近排行:
1
2
3
4
5
6
7
CREATE INDEX tbl_idx ON tbl (a, date_column);
 
SELECT id, a, date_column
  FROM tbl
 WHERE a = ?
 ORDER BY date_column DESC
 LIMIT 1;
注意,那個問號是個佔位符。因為我經常推薦開發者使用綁定變量。
參與者有兩個選項:
  •  好的實踐 ,沒有大的性能改進可以採用了
  •  壞的實踐,有大的性能改進可以採用
這個問題看著有性能危險,但其實不是。一般看來order by一定會對數據排序,然而這個索引,使你沒有沒有必要對整個數據集排序,所以它就像查詢唯一索引鍵一樣快。
正確率接近與 「隨便蒙」 ,我認為人們對這個問題基本上沒有概念。
             q2_total_20140212
這個結果讓人難以接受,  我看到人們平時建立緩存表,恰恰為了避免我們介紹這種查詢,經常被計劃任務填滿。有趣的是這種日常任務經常引起性能問題,因為它需要在很小的時間間隔內確認緩存表中是否存在新的數據。然而,正確的索引應該是你的第一選擇。
q2_bydb_20140212
這裡,我要提一下Oracle 數據庫使用者要特別注意一下這個技巧。到12c 版本的Oracle數據庫仍然沒有提供像LIMIT or TOP等便利的語法糖。你可以使用ROWNUM的偽式的數據列。
1
2
3
4
5
6
7
8
SELECT *
  FROM (
        SELECT id, date_column
          FROM tbl
         WHERE a = :a
         ORDER BY date_column DESC
       )
 WHERE rownum <= 1;
這個多餘的複雜度讓Oracle使用者得到了錯誤的結果,比「隨便蒙」對的概率還低。 
對於這個問題回饋的另一個爭論是如果包含ID列將允許 index-only scan, 儘管這是正確的,但我不認為不這樣做就是一個「壞實踐」。因為查詢的只有一行。index-only scan可以避免單表訪問,很多情況下你可以使用它提高性能,但一般情況下我認為這是一種過早優化,這是只是我的觀點。但這個爭論可以讓我們看到 PostgreSQL 使用者獲得最好的分數。PostgreSQL直到9.2版本才有index-only scans。在2012年九月才發佈這個特性。因此PostgreSQL 沒有掉入認為只有index-only scan才能提高性能的陷阱。
問題三:索引列的順序
從性能上來看是好的實踐還是壞的實踐
兩個查詢語句:
1
2
3
4
5
6
7
8
9
10
CREATE INDEX tbl_idx ON tbl (a, b);
 
SELECT id, a, b
  FROM tbl
 WHERE a = ?
   AND b = ?;
 
SELECT id, a, b
  FROM tbl
 WHERE b = ?;
參與者有兩個選項:
  •  好的實踐 ,沒有大的性能改進可以採用了
  •  壞的實踐,有大的性能改進可以採用
答案是壞實踐,因為第二個查詢語句沒有正確地使用索引。把索引列的順序改為(b, a)可以使兩個查詢語句都能使用索引從而獲得很高的性能。在b上再加一個索引,從而無緣無故的帶來了很大的性能開銷。不幸地是我看到很多人都這麼做。
結果是令人失望的,但是我已經猜到了。比「隨便蒙」只高12.5% 。
q3_tofefetal_20140212
這也是一個我每天都遇到的問題,人們就是不知道復合索引是怎麼工作的。
q2_bydb_20140212
不同數據庫的使用者的回答很接近,可能是因為(不同數據庫)沒有很大語法區別和的特性影響回答的結果。Oracle的不為人知的Skip Scan特性有很小的影響。通常來講index-only  scan 的意識可能有影響,但這次它的影響是讓參與者更有可能回答對問題。
總之,統計表明,一些數據庫的使用者比另一下更瞭解索引。有趣的是PostgreSQL 使用者第三次獲得最高分。
問題四:模糊查詢
從性能上來看是好的實踐還是壞的實踐?
查詢一個句子:
1
2
3
4
5
CREATE INDEX tbl_idx ON tbl (text);
 
SELECT id, text
  FROM tbl
 WHERE text LIKE '%TERM%';
我這次給出了不一樣的答案:
  • 銀彈 ,總是運行的很快
  • 噩夢,有性能危險
正確答案是噩夢因為匹配符中使用了前綴通配符,反之如果使用匹配符「TERM%」就會更有效率。大部分人都能回答對這個問題。我可以說大部分人還是知道LIKE 不是用來全文搜索的。
q4_total_20140212
這個與眾不同的結果各種數據庫使用者的正確率相差無幾。
q4_byergfewgfdb_20140212
這一次PostgreSQL 使用者不是那麼牛逼了。我們仔細審視一下PostgreSQL 面對的問題就知道為什麼了。
1
2
3
4
5
CREATE INDEX tbl_idx ON tbl (text varchar_pattern_ops);
 
SELECT id, text
  FROM tbl
 WHERE text LIKE '%TERM%';
注意我們對索引字段的補充修飾(varchar_pattern_ops),在PostgreSQL中這個操作符類使的索引對後綴通配符無效。我加 上這個是想知道人們是否意識到在模糊查詢是前綴通配符會帶來問題。沒有操作符類,它不工作有兩個原因:(1)前綴通配符;(2)沒有操作符類,我認為這是 顯然的。
問題五a  Index-only  scan
第五個問題有點棘手,因為在這個測試開始時,PostgresSQL不支持 index-only scans。 因此我稍微調整,兩組的這個問題不一樣。 MySQL, Oracle and SQL Server中是關於index-only  scan。另一個是針對PostgresSQL 使用者出的關於索引列的順序問題。我把結果都展示在這裡。先看關於index-only scans:的問題。
從第一個到第二個查詢性能會怎麼改變?
從一百萬行中選出一百行:
1
2
3
4
5
6
CREATE INDEX tab_idx ON tbl (a, date_column);
 
SELECT date_column, count(*)
  FROM tbl
 WHERE a = 123
 GROUP BY date_column;
從一百萬行中選出十行
1
2
3
4
5
SELECT date_column, count(*)
  FROM tbl
 WHERE a = 123
   AND b = 42
 GROUP BY date_column;
這個問題有點不同,因為我給了四個答案:
  • 查詢性能大體相同
  • 依賴數據的不同
  • 查詢會變很慢(影響>10%)
  • 查詢會變很快(影響>10%)
在我出這個測試的時候,我十分曉得五五分的答案沒有什麼意義,要在讓參與者快速抓住要點並回答和給出準確答案之間做權衡。
簡單來說,正確答案是查詢會變的很慢,因為原來的查詢使用了index-only scan,這個查詢只使用了索引中的數據就能給出答案而不需要到實際的表中獲取數據。第二個查詢需要檢查數據列B,而數據列B不在索引中,因此數據庫要花 費多餘的開銷到拿出候選的行來判斷是否符合條件,它要從表中取出100行,這正是第一個查詢中要返回的數據行數。因為有group by操作,估計要取出更多的數據行,會使查詢變的很慢。
因為有多個選項,總體分數明顯下降,掉到了比「隨便蒙」低39% or 14%。
q2_bydb_20140212
我會說有39%的參與者知道正確答案這個結論是錯誤的,它們雖然給出了正確答案,但是我估計有25% 的人是蒙的。
分開各種數據庫使用者後,結果更是無聊。
q5_by3db_20140212
但是,我們仍然要看一下人們是怎麼回答的:
q5_byanswer_20140212
我非常吃驚,「大體相同」 和 「依賴具體的數據」這兩個選項都獲得了25%的選擇——它們可能都是猜的。這是否表明一半的參與者只是在胡亂猜。還是因為這是最後一個問題,很多人都想快 點做完看看答案,恩,很有可能。然而正確答案「會變的很慢」獲得了38.8%的選擇,導致只有10.9%的人選擇「會變的很快」選項。
我的本意是把人誤導選擇「會變的很快」,因為後者數據量更少——只有使用了index-only scan的情況下會變得不同,但是我假設我得到這個結果是因為人們通常會認為很明顯的答案肯定是錯的。這樣的話,我想驗證多少人會知道index- only scan的本意根本沒有得到證明。
問題5b:索引列順序和範圍操作符
這個問題只是給PostgreSQL 使用者的。
從性能上來看是好的實踐還是壞的實踐?
查詢狀態的X並且不超過五年的實體。
1
2
3
4
5
6
7
8
CREATE INDEX tbl_idx ON tbl (date_column, state);
 
SELECT id, date_column, state
  FROM tbl
 WHERE date_column >= CURRENT_DATE - INTERVAL '5' YEAR
   AND state = 'X';
 
(365 rows)
數據分佈如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT count(*)
  FROM tbl
 WHERE date_column >= CURRENT_DATE - INTERVAL '5' YEAR;
 
 count
-------
  1826
 
SELECT count(*)
  FROM tbl
 WHERE state = 'X';
 
 count
-------
 10000
參與者有兩個選項:
  •  好的實踐 ,沒有大的性能改進可以採用了。
  •  壞的實踐,有大的性能改進可以採用。
正確答案是「壞實踐」,因為索引的數據列的順序不對。通常的索引列排序是規律是,如果等號運算符放在左邊就經常有很高的性能,過濾之後,再使用範圍操作符也很有效率。然而,如果範圍操作符放在左邊,就會喪失索引的好處,之後的的索引列也不能高效率的使用。
像以上沒有修改的查詢語句,我們要在索引中找出1826個實體(它們都符合date_column 列的過濾),然後對它們進行state 列過濾。如果過濾順序改變一下,數據庫就使得兩次過濾都很有效,直接把要過濾的行數限制在了365 行內。
人們是這樣回答的:
 q2_bydb_20140212
等一下,竟然比隨便猜猜的正確概率還低,人們不僅對次沒有意識,而且大多數人都有了錯誤的理解。然而我得承認這個」大多數「是有水分的。當我運行這個例子時,快的不只是一倍,竟然加速了70%。
總體分數:多少人通過了測試?
單獨看每個例子很有趣,但是那不能讓你知道有多少人答對了5個題目,下面的圖可以告訴你。
correct_answers_given
最後,我想把這張圖歸結為一個數字:到底多少人通過了測試?
考慮到只有五個問題,並且每個問題只有兩個選項,公平的說,我想答對三個不足以說明你通過了測試,答對五個又明顯要求過高。答對四個通過測試,我覺得這樣界定是很明智的。使用這個定義,38.2%通過了測試。多說一句,隨便猜通過的概率為12.5%。

原文鏈接: MarkusWinand   翻譯: 伯樂在線 - sunbiaobiao
譯文鏈接: http://blog.jobbole.com/60800/
[ 轉載必須在正文中標註並保留原文鏈接、譯文鏈接和譯者等信息。]

2008/6/16

db2 reorg

當數據庫裡某張表上有大量插入操作時,需要在表上做 RUNSTATS 命令保證數據庫掌握準確的統計信息。

當數據庫裡某張表中的記錄變化很大時(大量插入、刪除、更新操作),需要在表上做 REORG 和 RUNSTATS 一組維護操作來優化查詢的性能。有的表,可能初始化後從來都不會有數據量變化,就只需要做一次維護;有的表,一天之內的變化就很大,每天需要做多次維護。

注意,針對數據庫對象的大量操作,如反覆地刪除表,存儲過程,會引起系統表中數據的頻繁改變,在這種情況下,也要考慮對系統表進行REORG操作。

一個完整的 REORG 表的過程應該是由下面的步驟組成的:

RUNSTATS -> REORGCHK -> REORG -> RUNSTATS -> BIND 或 REBIND

0 執行下面命令前要先連接數據庫

1 RUNSTATS

由於在第二步中 REORGCHK 時可以對指定的表進行 RUNSTATS 操作(在 REORGCHK 時指定 UPDATE STATISTICS),所以第一步是可以省略的。如果知道哪些特點的表有數據變化,又可以只執行第一步而省略第二步。

如果表名為 DB2INST1.STAFF,表上有索引,可以執行下面的 RUNSTATS 操作:

db2 runstats on table db2inst1.staff with distribution and detailed indexes all

2 REORGCHK

REORGCHK是根據統計公式計算表是否需要重整。

對於每個表有3個統計公式,對索引有5個統計公式(版本8),如果公式計算結果該表需重整,在輸出的 REORG 字段中相應值為*,否則為-。

如果數據庫中數據量比較大,在生產系統上要考慮 REORGCHK 的執行時間可能較長,需安排在非交易時間執行。

可以分為對系統表和用戶表兩部分分別進行 REORGCHK:

1) 針對系統表進行REORGCHK

db2 reorgchk update statistics on table system

使用 UPDATE STATISTICS 參數指定數據庫首先執行 RUNSTATS 命令。

2) 針對用戶表進行 REORGCHK

db2 reorgchk update statistics on table user

根據統計公式的計算結果(是否有 *),考慮是否必要對表進行 REORG。注意,某些小表的結果可能由於統計信息過少而不準確。

3 REORG TABLE

執行 REORG 可以考慮分為表上有索引和沒有索引兩種情況:

1) 如果表上有索引

如表名為 DB2INST1.STAFF,索引名為 DB2INST1.STAFF,

REORG 表:

db2 reorg table db2inst1.staff index db2inst1.istaff use tempspace1

建議 REORG 時可以使用USE參數指定數據重排時使用的臨時表空間。如果不指定, REORG 工作將會在表所在表空間中原地執行。

如果表上有多個索引,INDEX 參數值請使用最為重要的索引名。

REORG 索引:

db2 reorg indexes all for table db2inst1.staff

2) 如果表上沒有索引

如表名為DB2INST1.STAFF, SYSIBM.SYSTABLES

db2 reorg table db2inst1.staff use tempspace1

db2 reorg table sysibm.systables use tempspace1

4 RUNSTATS

參見步驟 1。

5 (可選) 上面命令完成後可以重複第二步,檢查 REORG 的結果,如果需要,可以再次執行 REORG 和 RUNSTATS 命令。

6 BIND 或 REBIND

RUNSTATS 命令運行後,應對數據庫中的 PACKAGE 進行重新聯編,簡單地,可以使用 db2rbind 命令來完成。

例如,如果數據庫名為 SAMPLE,執行:

db2rbind sample -l db2rbind.out

上述 DB2 命令詳細語法解釋需參考: 《Command Reference》

2008/5/28

在Linux上實現DB2雙機HA完整方案

轉貼自http://202.99.120.116:82/gate/big5/publish.it168.com/2006/0121/20060121002501.shtml

1. 摘要

  本文檔介紹在SuSE Linux Enterprise Server v8.0(SLES 8)上安裝配置DB2 UDB Enterprise Serverv8.2雙機互備的高可靠性方案的基本步驟。該方案配合採用SLES的卷管理器(LVM)和Veritas Cluster Server v2.2(VCS 2.2)作為HA實現組件。

2. 概述

 本文檔假定讀者已經理解雙機互備的HA方案的基本概念。

2.1. 雙機互備HA方案的基本步驟

  建立一個雙機互備方案的基本步驟是:

1. 確定基本參數(如IP地址、存儲空間,等等。本方案的參數均為示範參數,讀者需要根據實際環境替換)
2. 配置共用存儲(本方案不涉及共用存儲方案的配置)
3. 在兩台節點上分別安裝應用(在本方案中是 DB2 UDB)
4. 在一台節點上對應用作初始配置(在本方案中是在共用存儲上建立 DB2 數據庫)
5. 在另一台節點上引入共用存儲上的配置(在本方案中是對共用存儲上的數據庫做catalog操作)
6. 在兩台節點上分別手動測試應用
7. 配置HA Cluster管理軟體(在本方案中是VCS)
8. 測試HA Cluster管理軟體可以成功接管資源


2.2. 假設

  本文檔假定採用以下示例環境,SLES與VCS已在節點上正確安裝,SLES的共用存儲已經正確連接,VCS的心跳連接已經正確配置。

2.2.1. 存儲

  各節點上需要足夠的本地磁片空間,來安裝 DB2 UDB的可執行代碼及實例。

  本方案需要足夠的共用存儲空間,來放置數據庫數據。

  假定共用存儲上分配給 DB2 數 據庫的卷組名為/dev/datavg1,邏輯卷名為/dev/datavg1/db2lv1(使用SLES的LVM服務),在兩個節點上的挂接點名為 /home/db2data,且已正確格式化為合適的文件系統(Veritas工程師指出在SLES 8上VCS 2.2不支援ext3文件系統,建議格式化時指定ext2,在SLES 9和VCS 4.1上不存在這個問題)。注意這個挂接點要在fstab文件中配置為啟動時不自動挂接。

  數據庫其他表空間可以建立在共用存儲的其他卷上,如果是文件系統,同樣要配置為不自動挂接。本文檔暫不討論。

2.2.2. 節點

  本HA方案採用兩個伺服器節點做主從互備,以下分別稱為Active節點和Passive節點。這兩個節點具有相同的硬體和作業系統配置。

2.2.3. 網路

  對外的IP網路。假定該方案中 DB2 UDB對外提供服務使用的浮動IP(Floating IP)為192.168.10.110,Active節點的物理IP為192.168.10.11,Passive節點的物理IP為192.168.10.12。

 HA管理軟體需要一組內部IP來管理雙機間的心跳連接。心跳IP不在本文檔範圍內。

3. 配置步驟

3.1. DB2 UDB安裝、配置步驟

3.1.1. 建立用戶和組

  在兩台節點上分別在root下執行以下命令:
  groupadd –g 900 db2iadm1
  groupadd –g 901 db2fadm1
  groupadd –g 902 dasadm1
  useradd –g db2iadm1 –u 800 –d /home/db2inst1 –s /bin/bash db2inst1
  useradd –g db2fadm1 –u 801 –d /home/db2fenc1 –s /bin/bash db2fenc1
  useradd –g dasadm1 –u 802 –d /home/dasusr1 –s /bin/bash dasusr1
  組ID和用戶ID可以根據實際情況選擇,但務必保證在兩台節點上相同的用戶名/組名具有相同的ID。


3.1.2. 安裝 DB2 UDB產品代碼
  在兩台節點上分別在root用戶下執行以下命令:
  cd
  ./db2install –p DB2.ESE
  cd /opt/IBM/db2/V8.1/adm
  ./db2licm –a /db2/license/db2ese.lic


  其中,是DB2 UDB ESE安裝介質所在目錄。

3.1.3. 建立實例

  在兩台節點上分別在root用戶下執行以下命令:

  cd /opt/IBM/db2/V8.1/instance

  ./db2icrt –p 50000 –u db2fenc1 db2inst1

3.1.4. 建立DAS

  在兩台節點上分別在root用戶下執行以下命令:

  cd /opt/IBM/db2/V8.1/instance

  ./dascrt –u dasusr1

3.1.5. 建立數據庫

  在Active節點上在root用戶下執行以下命令:
  mount /dev/datavg1/db2lv1 /home/db2data
  su – db2inst1
  db2start
db2 create database on /home/db2data
  db2stop
  exit
  umount /home/db2data
  其中,是數據庫名。

3.1.6. Catalog數據庫
  在Passive節點上在root用戶下執行以下命令:
  mount /dev/datavg1/db2lv1 /home/db2data
  su – db2inst1
  db2start
  db2 catalog database on /home/db2data
  db2stop
  exit
  umount /home/db2data
 其中,是上一步驟建立的數據庫名

3.1.7. 檢驗DB2配置
  在Active節點上,在root用戶下執行以下命令:
  mount /dev/datavg1/db2lv1 /home/db2data
  su – db2inst1
  db2start
  db2 connect to
  db2 create table T (ID INTEGER)
 db2 connect reset
 db2stop
  exit
 umount /home/db2data
  檢驗上述命令均無出錯資訊。

  在Passive節點上,在root用戶下執行以下命令:
  mount /dev/datavg1/db2lv1 /home/db2data
  su – db2inst1
  db2start
  db2 connect to
  db2 drop table T
  db2 connect reset
  db2stop
  exit
  umount /home/db2data
  檢驗上述命令均無出錯資訊。

3.2. VCS配置
 在VCS中,建立DB2資 源組,在組中配置浮動IP、Application等資源,將Application的啟動、停止等命令腳本配置為db2start、db2stop、 db2admin start和db2admin stop,將Application的監視命令腳本配置為ps命令,監視db2sysc和db2dasrrm進程。

DB2上機操作指令指南

轉載自http://www.wgjz.com/database/other/20070515/89348.html

DB2上機操作指令指南


3.列出所有實例(db2inst1)

db2ilist

5.列出當前實例:

db2getinstance

4.察看示例配置文件:

db2getdbmcfg|more

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

db2updatedbmcfgusingpara_namepara_value

6.創建數據庫:

db2createdbtest

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

db2getdbcfgfortest|more

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

db2updatedbcfgfortestusingpara_namepara_value

10.刪除數據庫:

db2dropdbtest

11.連接數據庫

db2connecttotest

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

db2listtablespacesshowdetail

13.查詢數據:

db2select*fromtb1

14.數據:

db2deletefromtb1whereid=1

15.創建索引:

db2createindexidx1ontb1(id);

16.創建視圖:

db2createviewview1asselectidfromtb1

17.查詢視圖:

db2select*fromview1

18.節點編目

db2catalogtcpnodenode_nameremoteserver_ipserverserver_port

19.察看端口號

db2getdbmcfg|grepSVCENAME

20.測試節點的附接

db2attachtonode_name

21.察看本地節點

db2listnodedirecotry

22.節點反編目

db2uncatalognodenode_name

23.數據庫編目

db2catalogdbdb_nameasdb_aliasatnodenode_name

24.察看數據庫的編目

db2listdbdirectory

25.連接數據庫

db2connecttodb_aliasuseruser_nameusinguser_password

26.數據庫反編目

db2uncatalogdbdb_alias

27.導出數據

db2exporttomyfileofixfmessagesmsgselect*fromtb1

28.導入數據

db2importfrommyfileofixfmessagesmsgreplaceintotb1

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

db2movetestexport

30.生成數據庫的定義

db2look-ddb_alias-a-e-m-l-x-f-odb2look.sql

31.創建數據庫

db2createdbtest1

32.生成定義

db2-tvfdb2look.sql

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

db2movedb_aliasimport

34.重組檢查

db2reorgchk

35.重組表tb1

db2reorgtabletb1

36.更新統計信息

db2runstatsontabletb1

37.備份數據庫test

db2backupdbtest

38.恢複數據庫test

db2restoredbtest

399\.列出容器的信息

db2listtablespacecontainersfortbs_idshowdetail

40.創建表:

db2ceatetabletb1(idintegernotnull,namechar(10))

41.列出所有表

db2listtables

42.插入數據:

db2insertintotb1values(1,』sam');

db2insertintotb2values(2,』smitty');

學習筆記-DB2UDBV8.1管理學習筆記(一)

轉載自http://www.wgjz.com/database/other/20070515/89189.html

學習筆記-DB2UDBV8.1管理學習筆記(一)

目錄參考資源
在DB2中有關實例(Instance),數據庫(Database),表空間(TableSpace),容器(Container)等概念:

在一個操作系統中,DB2數據服務可以同時運行多個實例(有別於Oracle在一個系統內只能起一個實例),數據庫定義在實例中,一個實例可以包含多個數據庫。在同一個實例中的不同數據庫是完全獨立的,分別擁有自己獨立的系統編目表。

表 空間分為DMS方式和SMS(SystemmanegementSpace)方式,定義在數據庫中,一個數據庫中必須存在兩個系統基本的表空間,分別是系 統編目表空間(SysCatSpace)與系統臨時表空間(SysTempSpace)。在數據庫中創建的任何對象都以在系統編目表空間中增加記錄的方式 體現,對於臨時表空間,其佔用磁盤大小是根據使用情況動態伸縮的,即僅在需要時才分配磁盤空間,並在使用後進行回收。此外,若用戶需要創建表,則需要創建 用戶表空間(UserSpace),若需要使用臨時表,則需要創建用戶臨時表空間(UserTempSpace)。

DMS與SMS類型在表空間建立時指定,建好後不能轉換。對於DMS方式,一個表空間對應了一個或多個容器(Container),容器指定了數據的物理存儲位置。對於SMS方式,只能夠指定一個目錄,不能夠增加。

容 器分為三種類型,前兩種是文件與設備,用於DMS方式的表空間;還有一種是目錄,用於SMS方式的表空間,此種方式不需要人工管理數據存儲文件,DB2可 根據情況在目錄中自動增加存儲文件,只要磁盤空間允許。實質上,表空間是數據存儲的邏輯位置定義,容器則是數據存儲的物理位置定義。


影 響一個數據庫的性能主要有以下因素:磁盤(Disk),內存(Memory),處理器(CPU),網絡(Network)。其中以磁盤最為顯著,90%的 性能瓶頸可能來自於磁盤的IO競爭;其次是內存,一方面是指物理內存的總量要滿足需求,另一方面是指與內存相關的配置參數應正確配置;當然處理器的性能也 很重要,多路CPU會對哪些依賴計算能力的複雜SQL查詢起到顯著的效果;網絡不屬於主要因素,屬於客觀的環境因素,是指過慢的網速會對數據的傳輸造成影 響。以下列出一些對於提高數據庫性能有效的方法:

對於運行數據庫服務的服務器可以儘可能的配置多塊物理磁盤,每塊的容量不必太大,這樣可以有效的分擔數據存儲與讀取操作過程的磁盤IO競爭。即採用多塊小容量的磁盤在性能上要優於僅採用一塊大容量的磁盤。

如果條件允許,儘量使數據存儲服務與操作系統分別運行在物理分開的磁盤上。

採用DMS(DatabaseManagementSpace)管理方式的表空間。

在物理不同的磁盤上創建多個表空間。然後可以將數據和索引分別存放在不同的表空間,這樣可以顯著的提高性能。還可以把一個使用頻繁的大表縱向拆成多個小表,分別存放在不同的表空間中,然後用一個視圖進行聯合。

DB2服務器可以管理裸設備,即除系統以及DB2服務運行磁盤以外,為DB2數據存放單獨準備磁盤,可以是多塊,分區後不需要格式化,創建裸設備後直接交給DB2進行管理,用於存儲數據。

系統的臨時表空間對數據庫性能影響很大,當由管理的物理內存不能滿足數據庫操作的需要時,DB2便會把臨時數據寫到磁盤上,這時便用到了系統臨時表空間,並且這種情況會經常發生。

儘量在磁盤靠近最內層磁道的位置安放數據,因為此處磁盤的訪問速度較快。


DB2的參數配置分為兩個級別,一個是實例級別,另一個是數據庫級別。對數據服務性能影響較大的參數主要在數據庫級別配置。以下是三個比較重要的內存配置參數:

bufferpage:由同一個數據庫中的所有對象共享。

sortheap:用於排序的內存交換區,非共享,不宜設置太大,否則,很容易引起內存耗盡,因為每一個事務都會申請獨立的內存用於排序。

locklist: 共享內存,用於記錄數據服務運行中建立的鎖。建議設置20Mb左右,需要時根據實際情況進行調整。DB2默認使用行級鎖,如果設置太小,當鎖的記錄太多 時,則會導致內存不足,此時DB2會把多個行鎖升級為一個表鎖,這樣就會大大降低應用程序的並發性能。如果設置太大,則多分配的內存很少會被用到,導致浪 費。

其他的一些配置參數:

numdb:同時可以啟動的實例數目


DB2的常用命令:

db2ilist列出當前系統中定義的DB2實例
daslist列出系統中的DAS
db2listdatabasedirectory列出當前實例中定義的數據庫
db2listtablespaces列出當前數據庫中定義的表空間
db2listtabses[forall]列出當前數據庫中的表
db2listactivedb列出活動的數據庫

db2getdbmconfig
getdbcfgfordatabasename
db2updatedbcfgfordatabasenameusingbufferpage600M
db2alterbufferpoolIABMDEFAULTBPsize=1
db2listapplicationsshowdetail

以上命令可以在後面加"showdetail"參數,顯示詳細信息。


DB2數據存儲的頁大小只能在表空間級別統一指定(區別於Oracle,可以定義在表級別),並且建好後不能修改。

可以手工建立一個頁大小為4K的DMS用戶臨時表空間,然後把系統默認的SMS系統臨時表空間刪除。為滿足應用需求,一般還應再建立一個頁大小在8K以上的用戶臨時表空間。

DB2UDBV8.1對RedHatLinux9的支持不好,默認情況下無法啟動GUI安裝程序(可以通過設置環境LD_ASSUME_KERNEL=2.2.5解決),並且不會安裝Sample數據庫,控制中心也無法正常啟動。


當使用COUNT()函數時,如果表中的記錄數>2147483647行,則函數可能返回錯誤的結果,這時可以使用返回類型為DECIMAL(31,0)的COUNT_BIG()函數。

DISTINCT關鍵字可以用在COUNT()函數中,如:SELECTCOUNT(DISTINCTid)FROMTABLE,這代表將不對id列的重複值進行計數。

ORDERBY子句後面如果寫了多個列名,需要分別指定升序或是降序。

可以在load大量數據時,暫時關閉表的日誌選項。使用:ALTERTABLE...ACTIVATENOTLOGGEDINITIALLY

DB2的幾個特殊寄存器:CURRENTDATE,CURRENTTIME,CURRENTTIMESTAMP,USER(用戶ID).

有關日期的操作:CURRENTTIMESTAMP+2DAYS(orHOURS,SECONDS,MONTHS,YEARS,etc.)

case語句的使用:casewhen條件一then動作一else動作二end;可以欠套使用。

在視圖的創建語句中無法使用orderby子句與fetchnrows子句。但對於orderby可以用如下方法替代實現,不過會影響效率。
createviewv_name1(c1,c2,c3)as
select*from(
selectcolumn1,column2,column3
fromt1
orderbycolumn1)ast1;



參考資源
學習筆記-DB2UDBV8.1管理學習筆記(二)
學習筆記-DB2UDBV8.1管理學習筆記(三)
IBMDB2開發者園地
http://www-900.ibm.com/developerWorks/cn/dmdd/certify/index.shtml
IBMDB2信息中心
http://publib.boulder.ibm.com/infocenter/db2help/index.jsp
dbforums論壇
http://dbforums.com/
《DB2UDBv8.1forLinux,UNIX,Windows數據庫管理》GeorgeBaklarz,BillWong合著,機械工業出版社出版
《DB2數據庫管理與應用教程》莊濟誠著,清華大學出版社出版

DB2系統命令與配置參數大全

DB2系統命令與配置參數大全
2008年2月18日 作者:熔 岩 『白白網』 本文已被瀏覽 316 次
轉貼自http://www.szele.net/article_view.asp?id=1652

DB2 系統命令
dasauto - 自動啟動 DB2 管理服務器
dascrt - 創建 DB2 管理服務器
dasdrop - 除去 DB2 管理服務器
dasmigr - 遷移 DB2 管理服務器
dasupdt - 更新 DB2 管理服務器
db2_deinstall - 卸載 DB2 產品或功能部件
db2_install - 安裝 DB2 產品
db2admin - DB2 管理服務器
db2adutl - 管理 TSM 內的 DB2 對象
db2advis - DB2 設計顧問程序
db2audit - 審計設施管理員工具
db2batch - 基準程序工具
db2bfd - 綁定文件描述工具
db2ca - 啟動「配置助手」
db2cap - CLI/ODBC 靜態程序包綁定工具
db2cat - 系統目錄分析
db2cc - 啟動控制中心
db2cfexp - 連接配置導出工具
db2cfimp - 連接配置導入工具
db2chglibpath - 修改嵌入的運行時庫搜索路徑
db2chgpath - 更改嵌入的運行時路徑
db2ckbkp - 檢查備份
db2ckmig - 數據庫預遷移工具
db2ckrst - 檢查增量復原映像序列
db2cli - DB2 交互式 CLI
db2cmd - 打開 DB2 命令窗口
db2dart - 數據庫分析和報告工具
db2daslevel - 顯示 DAS 級別
db2dclgn - 聲明生成器
db2diag - db2diag.log 分析工具
db2drdat - DRDA 跟蹤
db2drvmp - DB2 數據庫驅動器映射
db2empfa - 啟用多頁文件分配
db2envar.bat - 設置當前命令窗口的環境
db2eva - 事件分析器
db2evmon - 事件監視器生產率工具
db2evtbl - 生成事件監視器目標表定義
db2exfmt - 說明表格式
db2exmig - 遷移說明表命令
db2expln - SQL 和 XQuery 說明
db2extsec - 設置 DB2 對象的許可權
db2flsn - 查找日誌序號
db2fm - DB2 故障監視器
db2fs - 第一步
db2gcf - 控制 DB2 實例
db2gov - DB2 控制器
db2govlg - DB2 控制器日誌查詢
db2gpmap - 獲取分佈圖
db2hc - 啟動運行狀況中心
db2iauto - 自動啟動實例
db2iclus - Microsoft Cluster Server
db2icrt - 創建實例
db2idrop - 除去實例
db2ilist - 列示實例
db2imigr - 遷移實例
db2inidb - 初始化鏡像數據庫
db2inspf - 格式化檢查結果
db2isetup - 啟動實例創建界面
db2iupdt - 更新實例
db2jdbcbind - DB2 JDBC 程序包綁定程序
db2ldcfg - 配置 LDAP 環境
db2level - 顯示 DB2 服務級別
db2licm - 許可證管理工具
db2listvolumes - 顯示所有磁盤捲的 GUID
db2logsforrfwd - 列示前滾恢復所需的日誌
db2look - DB2 統計信息和 DDL 抽取工具
db2ls - 列出已安裝的 DB2 產品和功能部件
db2move - 數據庫移動工具
db2mqlsn - MQ 偵聽器
db2mscs - 設置 Windows 故障轉移實用程序
db2mtrk - 內存跟蹤程序
db2nchg - 更改數據庫分區服務器配置
db2ncrt - 將數據庫分區服務器添加至實例
db2ndrop - 從實例中刪除數據庫分區服務器
db2osconf - 內核參數值的實用程序
db2pd - 監視 DB2 數據庫並對它進行故障診斷
db2pdcfg - 為問題確定行為配置 DB2 數據庫
db2perfc - 復位數據庫性能值
db2perfi - 性能計數器註冊實用程序
db2perfr - 性能監視器註冊工具
db2rbind - 重新綁定所有程序包
db2relocatedb - 重定位數據庫
db2rfpen - 復位前滾暫掛狀態
db2rspgn - 響應文件生成器
db2sampl - 創建樣本數據庫
db2set - DB2 概要文件註冊表
db2setup - 安裝 DB2
db2sql92 - 符合 SQL92 的 SQL 語句處理器
db2sqljbind - SQLJ 概要文件綁定程序
db2sqljcustomize - SQLJ 概要文件定製程序
db2sqljprint - SQLJ 概要文件打印程序
db2start - 啟動 DB2
db2stop - 停止 DB2
db2support - 問題分析和環境收集工具
db2swtch - 切換缺省 DB2 副本
db2sync - 啟動 DB2 同步器
db2systray - 啟動 DB2 系統任務欄
db2tapemgr - 管理磁帶上的日誌文件
db2tbst - 獲取表空間狀態
db2trc - 跟蹤
db2uiddl - 準備轉換為 V5 語義的唯一索引轉換
db2undgp - 撤銷執行特權
db2unins - 卸載 DB2 數據庫產品
db2untag - 釋放容器標記
db2updv9 - 將數據庫更新為版本 9 當前級別
db2xdbmig - 遷移 XSR 對象
db2xprt - 格式化陷阱文件
disable_MQFunctions - 禁用 WebSphere MQ 函數
doce_deinstall - 卸載 DB2 信息中心
doce_install - 安裝 DB2 信息中心
enable_MQFunctions - 啟用 WebSphere MQ 函數
installFixPack - 更新已安裝的 DB2 產品
setup - 安裝 DB2
sqlj - SQLJ 轉換程序

DB2 數據庫管理器配置參數
agent_stack_sz - 代理程序堆棧大小
agentpri - 代理程序的優先級
aslheapsz - 應用程序支持層堆大小
audit_buf_sz - 審計緩衝區大小
authentication - 認證類型
catalog_noauth - 允許進行編目,無需權限
clnt_krb_plugin - 客戶機 Kerberos 插件
clnt_pw_plugin - 客戶機用戶標識密碼插件
comm_bandwidth - 通信帶寬
conn_elapse - 連接耗用時間
cpuspeed - CPU 速度
dft_account_str - 缺省對方付費帳戶
dft_monswitches - 缺省數據庫系統監視器開關
dftdbpath - 缺省數據庫路徑
diaglevel - 診斷錯誤捕獲級別
diagpath - 診斷數據目錄路徑
dir_cache - 目錄高速緩存支持
discover - 發現方式
discover_inst - 發現服務器實例
fcm_num_buffers - FCM 緩衝區數目
fcm_num_channels - FCM 通道數配置參數
fed_noauth - 繞過聯合認證
federated - 聯合數據庫系統支持
fenced_pool - 最大受防護進程數
group_plugin - 組插件
health_mon - 運行狀況監視
indexrec - 索引重新創建時間
instance_memory - 實例內存
intra_parallel - 啟用分區內並行性
java_heap_sz - 最大 Java 解釋器堆大小
jdk_path - Java 軟件開發者工具箱安裝路徑
keepfenced - 保持受防護進程
local_gssplugin - 用於本地實例級別權限的 GSS API 插件
max_connections - 客戶機連接的最大數目
max_connretries - 節點連接重試次數
max_coordagents - 最大協調代理進程數
max_querydegree - 最大查詢並行度
max_time_diff - 節點間的最大時差
maxagents - 最大代理進程數
maxcagents - 並發代理進程的最大數目
maxtotfilop - 最大的已打開文件總數
mon_heap_sz - 數據庫系統監視器堆大小
nname - NetBIOS 工作站名稱
nodetype - 機器節點類型
notifylevel - 通知級別
num_initagents - 池中的代理進程的初始數目
num_initfenced - 受防護進程的初始數目
num_poolagents - 代理進程池大小
numdb - 包括主機和 iSeries 數據庫的同時活動的數據庫的最大數目
query_heap_sz - 查詢堆大小
release - 配置文件發行版級別
resync_interval - 事務再同步時間間隔
rqrioblk - 客戶機 I/O 塊大小
sheapthres - 排序堆閾值
spm_log_file_sz - 同步點管理器日誌文件大小
spm_log_path - 同步點管理器日誌文件路徑
spm_max_resync - 同步點管理器再同步代理進程限制
spm_name - 同步點管理器名稱
srvcon_auth - 服務器中的入局連接的認證類型
srvcon_gssplugin_list - 服務器中的入局連接的 GSS API 插件的列表
srvcon_pw_plugin - 服務器中的入局連接的用戶標識密碼插件
srv_plugin_mode - 服務器插件方式
start_stop_time - 啟動和停止超時
svcename - TCP/IP 服務名稱
sysadm_group - 系統管理權限組名
sysctrl_group - 系統控制權限組名
sysmaint_group - 系統維護權限組名
sysmon_group - 系統監視權限組名
tm_database - 事務管理器數據庫名稱
tp_mon_name - 事務處理器監視器名稱
trust_allclnts - 信賴所有客戶機
trust_clntauth - 可信的客戶機認證
util_impact_lim - 實例影響策略

DB2 數據庫系統配置參數
alt_collate - 備用整理順序
app_ctl_heap_sz - 應用程序控制堆大小
appgroup_mem_sz - 應用程序組內存集的最大大小
applheapsz - 應用程序堆大小
archretrydelay - 發生錯誤時的歸檔重試延遲
autonomic_switches - 自動維護開關
autorestart - 啟用自動重新啟動
avg_appls - 活動應用程序的平均數目
backup_pending - 備份暫掛指示符
blk_log_dsk_ful - 日誌磁盤已滿時掛起
catalogcache_sz - 目錄高速緩存大小
chngpgs_thresh - 已更改的頁閾值
codepage - 數據庫的代碼頁
codeset - 數據庫的代碼集
collate_info - 整理信息
country/region - 數據庫地域代碼
database_consistent - 數據庫是一致的
database_level - 數據庫發行版級別
database_memory - 數據庫共享內存大小
db_mem_thresh - 數據庫內存閾值配置參數
dbheap - 數據庫堆
dft_degree - 缺省度
dft_extent_sz - 表空間的缺省擴展數據塊大小
dft_loadrec_ses - 裝入恢復會話的缺省數目
dft_mttb_types - 對於優化配置參數缺省保留的表類型
dft_prefetch_sz - 缺省預取大小
dft_queryopt - 缺省查詢優化類
dft_refresh_age - 缺省刷新壽命
dft_sqlmathwarn - 出現算術異常時繼續
discover_db - 發現數據庫
dlchktime - 檢查死鎖的時間間隔
dyn_query_mgmt - 動態 SQL 和 XQuery 查詢管理配置參數
failarchpath - 故障轉移日誌歸檔路徑
groupheap_ratio - 應用程序組堆的內存百分比
hadr_db_role - HADR 數據庫角色
hadr_local_host - HADR 本地主機名
hadr_local_svc - HADR 本地服務名稱
hadr_remote_host - HADR 遠程主機名
hadr_remote_inst - 遠程服務器的 HADR 實例名
hadr_remote_svc - HADR 遠程服務名稱
hadr_syncmode - 處於對等狀態的日誌寫的 HADR 同步方式
hadr_timeout - HADR 超時值
jdk_64_path - 64 位 Java 軟件開發者工具箱安裝路徑 DAS
locklist - 鎖定列表的最大存儲量
locktimeout - 鎖定超時
log_retain_status - 日誌保留狀態指示符
logarchmeth1 - 主日誌歸檔方法
logarchmeth2 - 輔助日誌歸檔方法
logarchopt1 - 主日誌歸檔選項
logarchopt2 - 輔助日誌歸檔選項
logbufsz - 日誌緩衝區大小
logfilsiz - 日誌文件的大小
loghead - 第一個活動日誌文件
logindexbuild - 已創建的日誌索引頁
logpath - 日誌文件的位置
logprimary - 主日誌文件數
logretain - 啟用日誌保留
logsecond - 輔助日誌文件數
max_log - 每個事務的最大日誌
maxappls - 活動應用程序的最大數目
maxfilop - 每個應用程序打開的數據庫文件的最大數目
maxlocks - 升級之前鎖定列表的最大百分比
min_dec_div_3 - 十進制除法,小數位為 3
mincommit - 針對組的落實數
mirrorlogpath - 鏡像日誌路徑
multipage_alloc - 已啟用的多頁文件分配
newlogpath - 更改數據庫日誌路徑
num_db_backups - 數據庫備份數目
num_freqvalues - 保留的高頻值數目
num_iocleaners - 異步頁清除程序的數目
num_ioservers - I/O 服務器數
num_log_span - 編號日誌範圍
num_quantiles - 列的分位數的數目
numarchretry - 發生錯誤時的重試次數
numsegs - SMS 容器的缺省數目
overflowlogpath - 溢出日誌路徑
pagesize - 數據庫缺省頁大小
pckcachesz - 程序包高速緩存大小
rec_his_retentn - 恢復歷史記錄保留期
restore_pending - 復原暫掛
restrict_access - 數據庫訪問權受限配置參數
rollfwd_pending - 前滾暫掛指示符
self_tuning_mem - 自調整內存配置參數
seqdetect - 順序檢測標誌
sheapthres_shr - 共享排序的排序堆閾值
softmax - 恢復範圍和軟檢查點時間間隔
sortheap - 排序堆大小
stat_heap_sz - 統計信息堆大小
stmtheap - 語句堆大小
territory - 數據庫地域
tpname - APPC 事務程序名
trackmod - 啟用跟蹤已修改的頁
tsm_mgmtclass - Tivoli Storage Manager 管理類
tsm_nodename - Tivoli Storage Manager 節點名
tsm_owner - Tivoli Storage Manager 所有者名稱
tsm_password - Tivoli Storage Manager 密碼
use_sna_auth - 使用 SNA 認證
user_exit_status - 用戶出口狀態指示符
userexit - 啟用用戶出口
util_heap_sz - 實用程序堆大小
vendoropt - 提供方選項

DB2 管理服務器(DAS)配置參數
authentication - 認證類型 DAS
contact_host - 聯繫人列表的位置
das_codepage - DAS 代碼頁
das_territory - DAS 地域
dasadm_group - DAS 管理權限組名
db2system - DB2 服務器系統的名稱
discover - DAS 發現方式
exec_exp_task - 執行到期的任務
jdk_path - Java 軟件開發者工具箱安裝路徑 DAS
sched_enable - 調度程序方式
sched_userid - 調度程序用戶標識
smtp_server - SMTP 服務器
toolscat_db - 工具目錄數據庫
toolscat_inst - 工具目錄數據庫實例
toolscat_schema - 工具目錄數據庫模式

手機QQ禁用NFC

一圖解千言萬語 應用程式權限:透過NFC起動