久久无码高潮喷水抽搐,极品馒头泬19p,久久人人爽精品玩人妻av,精品国产成人国产在线视,精品视频一区二区三区在线观看

  • 紅軟基地:您身邊最放心的安全下載站!
您所在的位置:首頁 > 軟件 > 熱門軟件 > Informix11.5 for linux安裝wps

Informix11.5 for linux安裝wps

軟件類型:
國產(chǎn)軟件
軟件語言:
簡體中文
軟件大。
1 MB
軟件授權(quán):
免費軟件
軟件評級:
4
更新時間:
2014-09-24
應(yīng)用平臺:
WinXP, Win7, WinAll
同類推薦軟件
軟件簡介

Informix 數(shù)據(jù)庫目前最新的版本是 11.5,從 Informix 9、Informix 10 到 Informix 11.5,在數(shù)據(jù)庫性能、數(shù)據(jù)庫管理及應(yīng)用開發(fā)等方面都有了很大的提高,而且推出了很多非常有用的新特性。通過對這些特性的使用,可以大大提高數(shù)據(jù)庫性能、增強數(shù)據(jù)庫可管理性及應(yīng)用開發(fā)的靈活性。我們這里,給大家介紹其中的一些特性,希望對大家能有所幫助。qQz紅軟基地
數(shù)據(jù)庫管理方面的一些實用特性 qQz紅軟基地
使用可配置的頁面大小 qQz紅軟基地
我們知道,在 Informix 中,數(shù)據(jù)存儲的最基本的單位是頁,在 Informix 10 版本之前,數(shù)據(jù)頁面的大小是固定的,不能被改變,通常,在 sun、HP 等平臺上,數(shù)據(jù)頁的大小為 2K,AIX 及 windows 平臺,數(shù)據(jù)頁的大小為 4K 。從 Informix 10 版本開始,我們可以配置 Informix 數(shù)據(jù)庫頁面的大小,數(shù)據(jù)庫頁面的大小可以是 2K-16K 。通過提供可配置的頁面大小功能,可以給我們帶來很多好處:qQz紅軟基地
空間使用的效率會更高 qQz紅軟基地
從 Informix 10 開始,一個頁面可以達到 16K 的連續(xù)空間,可以更有效的使用數(shù)據(jù)空間。比如說,我們表中一行的數(shù)據(jù)大小為 1200 字節(jié),那么,當(dāng)使用 2K 大小頁面時,只能存放 1 行數(shù)據(jù),3 行數(shù)據(jù)需要 6K 大小空間;如果采用 4K 大小頁面,那么 3 行數(shù)據(jù)可以放在一個 4K 頁面上,空間會節(jié)省 %33 。那么,當(dāng)對 30 行數(shù)據(jù)而言,如果采用 2K 大小頁面時,需要占用 60k 大小空間,如果采用 4K 大小頁面時,只需要占用 40k 大小空間,如果采用 6k 大小頁面時,則僅需要占用 36k 大小空間 , 可以節(jié)省 40% 的空間。 支持更大的索引鍵值, 最大可以達到 3K 。 qQz紅軟基地
這樣,我們可以在一個索引頁面上放置更多的索引鍵,支持更大的鍵值,而不需要增加索引樹的層次。采用可配置頁面大小功能,可以顯著提高具有大量重復(fù)索引鍵值情況下的處理性能。 存取效率的提高 qQz紅軟基地
通過采用可配置頁面大小功能,可以降低數(shù)據(jù)頁和索引頁的 IO 操作次數(shù),提高存取效率。通過配置頁面大小,很長的記錄行可以只存放在單個頁面上,降低了讀取每條記錄的頁面數(shù)目;在以前的版本中,超長的記錄需要 remainders pages,采用大的頁面足夠用來存放整條記錄,略去了訪問 remainders pages 的時間;大的索引頁面可以存放更多的索引項,從而降低了索引的層數(shù),減少了在索引樹上遍歷的開銷;在決策支持應(yīng)用的環(huán)境中,使用大的頁面可以降低全表掃描的頁面的數(shù)目,提高運行效率。 我們可以在數(shù)據(jù)庫空間(dbspace)級別以及緩沖池(buffer pool)級別來定義數(shù)據(jù)頁面的大小,其范圍可以是 2K-16K,而且定義的數(shù)據(jù)頁面大小必須是系統(tǒng)缺省頁面大小的倍數(shù)。可配置的頁面大小功能需要系統(tǒng)開啟大塊(large chunk)功能。qQz紅軟基地
在創(chuàng)建 dbspace 時,這個特性允許指定標(biāo)準(zhǔn)或臨時 dbspace 的頁大小。如果要使用比默認(rèn)頁大小所允許的鍵長更長的鍵,可能需要指定非默認(rèn)的頁大小。 根 dbspace 使用默認(rèn)的頁大小。如果希望指定頁大小,指定的值必須是默認(rèn)頁大小的整數(shù)倍,而且不能超過 16 KB 。qQz紅軟基地
使用 onspaces 命令創(chuàng)建 dbspace 的基本語法如下:qQz紅軟基地
onspaces – c – d dbs – k pgsize – p path -o offset -s size ;其中,pgsize 用來指定 dbspace 的頁面大小 (in K):qQz紅軟基地
頁面大小的范圍從 2K 到 16K 。 頁面大小必須是缺省頁面大小 (2k or 4K) 的倍數(shù)。 Dbspace 創(chuàng)建之后,頁面大小不能修改。 如果相對應(yīng)的頁面大小的緩沖池不存在,online 將通過配置參數(shù) BUFFERS_DEF 自動創(chuàng)建一個。 rootdbs 必須使用系統(tǒng)默認(rèn)的頁面大小。 動態(tài)創(chuàng)建的日志文件必須在使用系統(tǒng)默認(rèn)的頁面大小的數(shù)據(jù)庫空間上分配。 在創(chuàng)建緩沖池時,我們可以使用新的 BUFFERPOOL 配置參數(shù)或者 onparams 工具為 dbspace 中所有非默認(rèn)頁大小對應(yīng)的頁定義緩沖池。在使用 BUFFERPOOL 配置參數(shù)或者 onparams 工具定義緩沖池時,需要指定緩沖池的信息,包括大小、緩沖池中的 LRUS 個數(shù)、緩沖池中的緩沖區(qū)個數(shù)、lru_min_dirty 和 lru_max_dirty 的值。 BUFFERS、LRUS、LRU_MAX_DIRTY 和 LRU_MIN_DIRTY 配置參數(shù)都不再使用。在 Version 10.0 中,以前在 BUFFERS、LRUS、LRU_MAX_DIRTY 和 LRU_MIN_DIRTY 配置參數(shù)中指定的那些信息,現(xiàn)在要使用 BUFFERPOOL 配置參數(shù)或者 onparams 工具指定。使用 BUFFERPOOL 配置參數(shù)或 onparams 工具輸入的信息代替了以前用過時的參數(shù)指定的信息。qQz紅軟基地
通過 onparams 指定緩沖池的基本語法如下:qQz紅軟基地
onparams – b – g pgsize – n buffs – r lrus – x max – m min ;其中:qQz紅軟基地
pgsize – 緩沖池的頁面大小,必須是缺省頁面大小 (2k or 4K) 的倍數(shù); buffs – 緩沖池中的頁面數(shù)目; lrus – 緩沖池中的 LRU 隊列的數(shù)目; max – 緩沖池中最大臟頁的百分比; min - 緩沖池中最小臟頁的百分比; 使用 onparams 創(chuàng)建緩沖池舉例:qQz紅軟基地
onparams – b – g 8 – n 3000 – r 4 – x .9 – m .5 ;通過上述命令,我們,qQz紅軟基地
創(chuàng)建一個 8k 頁面大小的緩沖池,該緩沖池具有 3000 個頁面,由 4 個 LRU 隊列組成。 最大臟頁百分比為 0.9% , 最小臟頁百分比為 0.5% 。 每個不同頁面大小的緩沖池只能有一個。 緩沖池創(chuàng)建之后,需要重啟 online 才能生效。 在創(chuàng)建 dbspace 時,不需要通過 onparams 來創(chuàng)建緩沖池 . online 將通過配置參數(shù) BUFFERS_DEF 自動創(chuàng)建一個。 當(dāng)采用可配置的頁面大小后,Informix 數(shù)據(jù)庫中的 onstat 和 oncheck 命令的輸出也發(fā)生了相應(yīng)的變化:qQz紅軟基地
onstat  – d – b – B – P – R – X 的輸出都發(fā)生了變化qQz紅軟基地
onstat -d 命令的輸出增加了數(shù)據(jù)頁大小項:Dbspaces qQz紅軟基地
 address number flags fchunk nchunks pgsize flags owner name qQz紅軟基地
 ad357e8 1 0x60001 1 1 2048 N B informix rootdbs qQz紅軟基地
 b62a5b0 2 0x60001 2 1 4096 N B informix dbsp1 qQz紅軟基地
 2 active, 2047 maximum qQz紅軟基地
 Chunks qQz紅軟基地
 address chunk/dbs offset page Rd page Wr pathname qQz紅軟基地
 ad35948 1 1 0 493 5803 /local0/engines/ol_tuxedo/ifmxdata/rootdbs qQz紅軟基地
 b62a710 2 2 0 4 20 /local0/engines/ol_tuxedo/ifmxdata/dbsp1 qQz紅軟基地
 2 active, 32766 maximum qQz紅軟基地
 NOTE: The values in the "page Rd" and "page Wr" columns for DBspace chunks are displayed qQz紅軟基地
 in terms of system base page size. qQz紅軟基地
 Expanded chunk capacity mode: alwaysonstat -b 命令的輸出變化: IBM Informix Dynamic Server Version 11.10.UC1 -- On-Line -- Up 00:01:39 qQz紅軟基地
 -- 1075308 Kbytes Buffer pool page size: 2048qQz紅軟基地
44454970 0 84 1:30563 4472f000 18 801 80 ffffffffffffffff 0 qQz紅軟基地
 4445d418 0 84 1:30562 447b1800 18 801 80 ffffffffffffffff 45d654e0 qQz紅軟基地
 44468b60 0 84 1:30567 4485e000 18 801 80 ffffffffffffffff 0 qQz紅軟基地
 44476ec0 0 84 1:30565 44934000 18 801 80 ffffffffffffffff 0 qQz紅軟基地
 444875b8 0 84 1:30564 44a2b800 18 801 80 ffffffffffffffff 0 qQz紅軟基地
 4449dc50 0 84 1:30566 44b7d000 18 801 80 ffffffffffffffff 0 qQz紅軟基地
 444d0700 0 c23 1:34245 44e78000 18 801 10 0 0 qQz紅軟基地
 444d1800 0 c23 1:34253 44e88000 18 801 10 0 0 qQz紅軟基地
 444d2900 0 c23 1:34261 44e98000 18 801 10 0 0 qQz紅軟基地
 444d3a00 0 c23 1:34269 44ea8000 18 801 10 0 0 qQz紅軟基地
 444d4b00 0 c23 1:34277 44eb8000 18 801 10 0 0 qQz紅軟基地
 444d5c00 0 c23 1:34285 44ec8000 18 801 10 0 0 qQz紅軟基地
 444d6c78 0 84 1:30568 44ed7800 18 801 80 ffffffffffffffff 0 qQz紅軟基地
 444d6d00 0 c23 1:34293 44ed8000 18 801 10 0 0 qQz紅軟基地
 444d7e00 0 c23 1:34301 44ee8000 18 801 10 0 0 qQz紅軟基地
 444d8f00 0 c23 1:34309 44ef8000 18 801 10 0 0 qQz紅軟基地
 444da000 0 c23 1:34317 44f08000 18 801 10 0 0 qQz紅軟基地
 444db100 0 c23 1:34325 44f18000 18 801 10 0 0 qQz紅軟基地
 444dc200 0 c23 1:34333 44f28000 18 801 10 0 0 qQz紅軟基地
 444dca80 0 c23 1:36184 44f30000 18 801 10 0 0 qQz紅軟基地
 444dd300 0 c23 1:34341 44f38000 18 801 10 0 0 qQz紅軟基地
 444ddb80 0 c23 1:34346 44f40000 18 801 10 0 0 qQz紅軟基地
 444ed288 0 84 1:30569 45028800 18 801 80 ffffffffffffffff 0 qQz紅軟基地
 4472 modified, 5000 total, 8192 hash buckets, 2048 buffer size qQz紅軟基地
 Buffer pool page size: 8192 0 modified, 1000 total, 1024 hash buckets, 8192 buffer size新增加 onstat -g buf 顯示定義的緩沖池的信息 onstat -g buf 命令的輸出顯示:qQz紅軟基地
IBM Informix Dynamic Server Version 11.10.F -- On-Line -- Up 00:00:25 -- 1075788 Kbytes qQz紅軟基地
 Profile Buffer pool page size: 2048 qQz紅軟基地
 dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached qQz紅軟基地
 2065 2067 274619 99.25 4418 36043 81649 94.59 qQz紅軟基地
 bufwrits_sinceckpt bufwaits ovbuff flushes qQz紅軟基地
 14850 0 0 6 qQz紅軟基地
 Fg Writes LRU Writes Avg. LRU Time Chunk Writes qQz紅軟基地
 0 0 nan 2909 Buffer pool page size: 8192 qQz紅軟基地
 dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached qQz紅軟基地
 0 0 0 0.00 0 0 0 0.00 qQz紅軟基地
 bufwrits_sinceckpt bufwaits ovbuff flushes qQz紅軟基地
 0 0 0 0 Fg Writes LRU Writes Avg. LRU Time Chunk Writes qQz紅軟基地
 0 0 nan 0onchecks 命令將顯示相應(yīng)的頁面大小 以下示例顯示了 oncheck -pt 命令的輸出示例:qQz紅軟基地
TBLspace Report for testdb:tab1 qQz紅軟基地
 Physical Address 2:10 qQz紅軟基地
 Creation date 10/07/2004 17:01:16 qQz紅軟基地
 TBLspace Flags 801 Page Locking TBLspace use 4 bit bit-maps qQz紅軟基地
 Maximum row size 14 Number of special columns 0 Number of keys 0 Number of qQz紅軟基地
 extents 1 Current serial value 1 Pagesize (k) 4 First extent size 4 Next extent qQz紅軟基地
 size 4 Number of pages allocated 340 Number of pages used 337 Number of qQz紅軟基地
 data pages 336 Number of rows 75806 Partition partnum 2097154 Partition qQz紅軟基地
 lockid 2097154 Extents Logical Page Physical Page Size Physical Pages 0 2:106 340 680RTO 策略 qQz紅軟基地
我們知道,當(dāng) Informix 數(shù)據(jù)庫執(zhí)行崩潰恢復(fù)時,以前我們沒有任何方法可以預(yù)測崩潰恢復(fù)將在什么時間完成,Informix 11 提出了 RTO 技術(shù),當(dāng)采用 RTO 技術(shù)后,我們可以指定測崩潰恢操作完成的時間,這樣,使得崩潰恢復(fù)時間可以被我們把握。qQz紅軟基地
關(guān)于非阻塞檢查點技術(shù)的特點及技術(shù)實現(xiàn),請參考文章“ Informix 11 非阻塞檢查點及 RTO 策略應(yīng)用實踐”。 qQz紅軟基地
SQL 管理 API (SQL Administration API)qQz紅軟基地
我們知道,Informix 數(shù)據(jù)庫有很多實用程序來進行數(shù)據(jù)庫管理工作,比如,我們會使用 onspace 命令來創(chuàng)建新的數(shù)據(jù)空間,使用 oncheck 命令來對磁盤上的數(shù)據(jù)及索引進行檢查。但是,這些實用程序只能在命令行執(zhí)行,不能在 SQL 語句中進行調(diào)用,這樣,我們很難在應(yīng)用程序中來執(zhí)行數(shù)據(jù)庫管理操作,也很難進行遠程數(shù)據(jù)庫管理操作。為了解決上述問題,Informix 11 版本中增加了 admin( ) 或 task( ) 函數(shù),DBA 現(xiàn)在可以通過調(diào)用新的內(nèi)置的 admin( ) 或 task( ) 函數(shù)通過發(fā)出 SQL 語句就可以完成數(shù)據(jù)庫管理任務(wù)了。由于是通過 SQL 語句來調(diào)用 admin( ) 或 task( ) 函數(shù),我們還可以實現(xiàn)遠程數(shù)據(jù)庫管理任務(wù),這兩個函數(shù)具有模擬相應(yīng)實用程序的命令行參數(shù)的參數(shù)。例如,下面的 SQL 語句相當(dāng)于 oncheck -ce 命令,它指示數(shù)據(jù)庫服務(wù)器檢查區(qū)段:qQz紅軟基地
EXECUTE FUNCTION admin('check extents');qQz紅軟基地
有些選項還可以完成沒有相應(yīng)實用程序的任務(wù)。qQz紅軟基地
現(xiàn)在,我們可以使用 EXECUTE FUNCTION 語句來調(diào)用內(nèi)置 admin( ) 或 task( ) 函數(shù),以完成與執(zhí)行 Informix 的各種管理實用程序等同的管理任務(wù)。主要包括管理空間,管理配置,運行例程作業(yè)和系統(tǒng)驗證(oncheck 功能)等方面的管理操作。qQz紅軟基地
兩個內(nèi)置管理函數(shù)(task() 和 admin())僅在 sysadmin 數(shù)據(jù)庫中可用。僅 DBSA 可運行 task() 和 admin() 函數(shù)。但是缺省情況下,只有用戶 informix 可連接到 sysadmin 數(shù)據(jù)庫。qQz紅軟基地
例如,如果 sysadmin 數(shù)據(jù)庫是當(dāng)前的數(shù)據(jù)庫,那么以下語句執(zhí)行用于緩慢關(guān)閉數(shù)據(jù)庫服務(wù)器的任務(wù):qQz紅軟基地
EXECUTE FUNCTION task ('onmode','k') ;如果 sysadmin 數(shù)據(jù)庫不是當(dāng)前的數(shù)據(jù)庫,但您是有權(quán)連接到 sysadmin 數(shù)據(jù)庫的用戶,您可以執(zhí)行以下命令:qQz紅軟基地
Execute function sysadmin:task ('onmode','k');task() 和 admin() 函數(shù)提供相同的功能;它們的不同僅在于返回碼。 task() 函數(shù)返回描述命令結(jié)果的字符串。 admin() 函數(shù)返回整數(shù),該數(shù)值和 command_history 表相關(guān)聯(lián)。qQz紅軟基地
下邊顯示了 task() 和 admin() 函數(shù)運行輸出結(jié)果:qQz紅軟基地
EXECUTE FUNCTION task('create dbspace', 'dbspace2', '/CHUNKS/dbspace2'); qQz紅軟基地
 (expression) created dbspace number 2 named dbspace2qQz紅軟基地
EXECUTE FUNCTION admin('create dbspace', 'dbspace2', '/CHUNKS/dbspace2'); qQz紅軟基地
 (expression) 107每次嘗試調(diào)用 ADMIN 或 TASK 函數(shù)都會產(chǎn)生兩個結(jié)果:qQz紅軟基地
執(zhí)行一個 command 任務(wù),通常是模擬管理實用程序 將新行插入到 sysadmin 數(shù)據(jù)庫的 command_history 表中。 command_history 表qQz紅軟基地
command_history 表包含管理 API 已運行的所有命令的列表。該表還會顯示命令的結(jié)果。該表位于 sysadmin 數(shù)據(jù)庫中,是一個 RAW(無日志記錄)表。qQz紅軟基地
command_history 表顯示管理任務(wù)是通過 admin() 還是 task() 函數(shù)執(zhí)行的,并顯示執(zhí)行命令的用戶的相關(guān)信息、命令的執(zhí)行時間、命令,以及數(shù)據(jù)庫服務(wù)器完成命令運行時返回的消息。qQz紅軟基地
下表顯示 command_history 表信息的示例:qQz紅軟基地
列  數(shù)據(jù)類型  描述  qQz紅軟基地
cmd_number serial 每行的唯一標(biāo)識  qQz紅軟基地
cmd_exec_time datetime year-to-second 命令的啟動時間  qQz紅軟基地
cmd_user varchar 執(zhí)行命令的用戶  qQz紅軟基地
cmd_hostname varchar 執(zhí)行命令的主機的名稱  qQz紅軟基地
cmd_executed varchar 所執(zhí)行的命令  qQz紅軟基地
cmd_ret_status integer 返回碼  qQz紅軟基地
cmd_ret_msg lvarchar 返回消息qQz紅軟基地
下表顯示了示例命令和 command_history 表中的關(guān)聯(lián)結(jié)果。qQz紅軟基地
所執(zhí)行的命令  返回消息示例  qQz紅軟基地
set sql tracing on 對 1000 個 2024 字節(jié)的緩沖區(qū)打開 SQL 跟蹤。  qQz紅軟基地
create dbspace 已添加空間“ space12 ”。  qQz紅軟基地
檢查點  檢查點已完成。  qQz紅軟基地
add log 已向數(shù)據(jù)庫空間 logdbs 添加了 3 個邏輯日志。qQz紅軟基地
ADMIN 或 TASK 指定的 command 任務(wù)發(fā)生在由于在 command_history 表中插入新行而引起的單獨事務(wù)中。如果命令成功執(zhí)行,但是到 command_history 中的插入操作失敗,那么命令將生效,而 online.log 錯誤條目將指示問題。qQz紅軟基地
這兩個函數(shù)不同之處主要在于它們的名稱以及它們的返回值,返回值指示當(dāng)調(diào)用函數(shù)時將發(fā)生什么:qQz紅軟基地
TASK 返回了在其插入 command_history 表的新行中 cmd_ret_msg 列的值。此 LVARCHAR 值指示命令的結(jié)果(或失。。 ADMIN 基于 ADMIN 插入 command_history 表的新行中 cmd_number 列的串行值返回了一個整數(shù)值。 qQz紅軟基地
如果該值大于 0,那么命令成功,且新行已插入到 command_history 表中。 如果該值等于 0,那么命令成功,但是 Dynamic Server 無法將新行插入到 command_history 中。 如果該值小于 0,那么命令失敗,但是新行已插入到 command_history 表中。 command 規(guī)范和任何其他的參數(shù)都可以為 ADMIN 或 TASK 函數(shù)定義管理任務(wù)。例如,等價于 oncheck -ce 命令的此 SQL 語句可指導(dǎo)數(shù)據(jù)庫服務(wù)器檢查擴展數(shù)據(jù)塊:qQz紅軟基地
EXECUTE FUNCTION admin('check extents');如果調(diào)用此函數(shù)時 command_history 表有 200 行,且命令已成功,那么 informix 會執(zhí)行該命令并返回整數(shù) 201 。如果命令失敗,那么此示例會返回值 -201 。qQz紅軟基地
要顯示命令歷史記錄,請運行以下 SQL 語句:qQz紅軟基地
SELECT * from command_history ;比如,當(dāng)我們創(chuàng)建了一個 dbspace2 數(shù)據(jù)空間后,系統(tǒng)執(zhí)行成功,返回碼為 108,我們可以在 command_history 表中查看相關(guān)信息:qQz紅軟基地
EXECUTE FUNCTION admin('create dbspace','dbspace2', qQz紅軟基地
'$INFORMIXDIR/SPACE/dbspace2', '20MB'); qQz紅軟基地
 (expression) 108qQz紅軟基地
SELECT * FROM command_history WHERE cmd_number IN (108) qQz紅軟基地
 cmd_number 108 qQz紅軟基地
 cmd_exec_time 2005-11-17 16:26:15 qQz紅軟基地
 cmd_user informix qQz紅軟基地
 cmd_hostname olympia.beaverton.ibm.com qQz紅軟基地
 cmd_executed create dbspace qQz紅軟基地
 cmd_ret_status 0 qQz紅軟基地
 cmd_ret_msg created dbspace number 2 named dbspace2在一個固定的時間周期之后,將會自動除去 command_history 表中的任務(wù)。您可以通過更改 ph_threshold 表中的 COMMAND HISTORY RETENTION 行來修改該時間周期。 COMMAND HISTORY RETENTION 參數(shù)設(shè)置數(shù)據(jù)行在 command_history 表中保留的時間長度。qQz紅軟基地
您可以使用諸如 delete 或 truncate table 之類的 SQL 命令從表中手動除去數(shù)據(jù)。qQz紅軟基地
您必須對 sysadmin 數(shù)據(jù)庫執(zhí)行 task() 和 admin() 函數(shù)。qQz紅軟基地
task() 和 admin() 函數(shù)支持的主要管理命令列表如下,具體語法大家可參考 Informix 信息中心中相關(guān)命令語法內(nèi)容。qQz紅軟基地
ADD BUFFERPOOLADD CHUNKADD LOGADD MEMORYADD MIRRORALTER CHUNK OFFLINEALTER CHUNK ONLINEALTER LOGMODEALTER PLOGARCHIVE FAKECHECK DATACHECK EXTENTSCHECK PARTITIONCHECKPOINTCLEAN SBSPACECREATE BLOBSPACECREATE CHUNKCREATE DBSPACECREATE SBSPACECREATE TEMPDBSPACECREATE BLOBSPACEDROP BLOBSPACEDROP CHUNKDROP DBSPACEDROP LOGDROP SBSPACEDROP TEMPDBSPACEONMODEPRINT ERRORPRINT PARTITIONQUIESCENTRENAME SPACESET CHUNK OFFLINESET CHUNK ONLINESET DATASKIP ONSET DATASKIP OFFSET SBSPACE ACCESSTIME ONSET SBSPACE ACCESSTIME OFFSET SBSPACE AVG_LO_SIZESET SBSPACE LOGGING ONSET SBSPACE LOGGING OFFSET SQL TRACINGSET SQL TRACING OFFSET SQL TRACING ONSET SQL TRACING RESIZESET SQL USER TRACINGSET SQL USER TRACING CLEARSET SQL USER TRACING OFFSHUTDOWNSTART MIRRORING spaceSTOP MIRRORINGqQz紅軟基地
行數(shù)據(jù)壓縮及存儲優(yōu)化技術(shù) qQz紅軟基地
我們知道,從 Informix 11.5 xC4 開始,Informix 數(shù)據(jù)庫提供了行壓縮技術(shù),它采用一種靜態(tài)的基于字典的壓縮算法,將表(table)或表分區(qū)(table fragments)中的數(shù)據(jù)行中重復(fù)的數(shù)據(jù)模式映射到一個占用空間較少的符號,從而減少表格或表分區(qū)數(shù)據(jù)的總大小。這些重復(fù)的數(shù)據(jù)模式不僅可以是一列中的數(shù)據(jù),也可以是一列中的部分?jǐn)?shù)據(jù),甚至可以是跨數(shù)據(jù)列的數(shù)據(jù)。通過采用行壓縮技術(shù),Informix 11.5 可以節(jié)省高達 80% 的存儲空間。同時,由于數(shù)據(jù)是采用壓縮方式存儲,I/O 讀取效率會有 20% 左右的提高,內(nèi)存使用效率會更高,數(shù)據(jù)庫備份及恢復(fù)的時間也得到相應(yīng)的減少。qQz紅軟基地
關(guān)于非阻塞檢查點技術(shù)的特點及技術(shù)實現(xiàn),請參考文章“ Informix 11.5 行數(shù)據(jù)壓縮及存儲優(yōu)化技術(shù)應(yīng)用實踐”。qQz紅軟基地
使用 ontape 備份數(shù)據(jù)到指定目錄中 qQz紅軟基地
從 Informix 11 版本開始,ontape 命令可以將數(shù)據(jù)及日志備份到目錄中,ontape 命令將在該目錄下自動為備份數(shù)據(jù)及日志建立新的文件。你可以通過設(shè)置 TAPEDEV 及 LTAPEDEV 參數(shù)指向一個目錄來實現(xiàn)。使用 ontape 命令將數(shù)據(jù)及日志備份到目錄中 , 可以為我們帶來如下好處:qQz紅軟基地
多個實例可以同時備份到相同的目錄下 可以通過操作系統(tǒng)工具對數(shù)據(jù)進行壓縮等操作 當(dāng)日志文件填滿后,可以配置系統(tǒng)自動備份該日志文件 使用時,你必須對該目錄擁有寫權(quán)限,并保證有足夠的空間保存?zhèn)浞輸?shù)據(jù)。qQz紅軟基地
在使用 ontape 命令可以將數(shù)據(jù)及日志備份到目錄時,我們要選擇 -y 選項關(guān)閉 ontape 的交互提示信息。qQz紅軟基地
下邊例子用來執(zhí)行 0 級備份:qQz紅軟基地
ontape -s -L 0 -y備份到目錄中的數(shù)據(jù)文件名的格式為:hostname_servernum_Ln ;而日志文件的文件名為 hostname_servernum_Lognnnnnnnnnn 。qQz紅軟基地
當(dāng)我們?yōu)?TAPEDEV 和 LTAPEDEV 指定目錄時,可以使用 IFX_ONTAPE_FILE_PREFIX 環(huán)境變量來指定備份文件名的前綴(替換 hostname_servernum 格式)。qQz紅軟基地
如果將 IFX_ONTAPE_FILE_PREFIX 的值設(shè)置為 My_Backup,那么備份文件名具有以下名稱:qQz紅軟基地
My_Backup_L0My_Backup_L1My_Backup_L2My_Backup_Log0000000001My_Backup_Log0000000002我們可以使用下述命令設(shè)置 IFX_ONTAPE_FILE_PREFIX 環(huán)境變量:qQz紅軟基地
>>-setenv--IFX_ONTAPE_FILE_PREFIX--string---------------------->另外,我們還可以在目錄中創(chuàng)建連續(xù)邏輯日志文件備份。如果空間可用,邏輯日志將自動備份。 設(shè)置過程如下:qQz紅軟基地
將 LTAPEDEV 參數(shù)設(shè)置為現(xiàn)有目錄。 qQz紅軟基地
在 UNIX 上將 ALARMPROGRAM 參數(shù)設(shè)置為 log_full.sh 的完整路徑,在 Windows 上將 ALARMPROGRAM 設(shè)置為 log_full.bat 的完整路徑。 qQz紅軟基地
將 ALARMPROGRAM 參數(shù)中的備份程序從 onbar -b -l 更改為 ontape -a -y 。 qQz紅軟基地
重新啟動數(shù)據(jù)庫服務(wù)器。 qQz紅軟基地
SQL 下鉆查詢特性 qQz紅軟基地
在 SQL 語句性能監(jiān)控時,我們經(jīng)常要了解 SQL 語句執(zhí)行了多長時間; SQL 語句運行時占用了多少系統(tǒng)資源,如 CPU 占用情況、內(nèi)存占用情況、磁盤 I/O 讀寫情況; SQL 語句等待系統(tǒng)資源如磁盤 I/O 及鎖的時間及次數(shù)等。通過 SQL 語句對系統(tǒng)的資源使用及等待情況,我們可以了解到 SQL 語句運行的瓶頸,并及時調(diào)整系統(tǒng)資源配置,或者調(diào)整用戶的應(yīng)用程序。我們雖然可以使用 set explain 命令幫助我們了解一些 SQL 語句性能問題,但是當(dāng)我們啟用 SET EXPLAIN 功能時,SQL 語句性能可能已經(jīng)出現(xiàn)了問題,為了能夠讓 DBA 更及時、更詳細地了解 SQL 語句的資源使用情況并做出相應(yīng)的調(diào)整,在 Informix 11 版本中,提供了 SQL 下鉆查詢特性來滿足上述功能。qQz紅軟基地
關(guān)于 SQL 下鉆查詢特性的技術(shù)特點、使用范圍及技術(shù)實現(xiàn),請參考發(fā)表在 developerWorks 中國網(wǎng)站 Information Management 專區(qū)中文章“ Informix 11.5 SQL 語句性能監(jiān)控方法及實現(xiàn) ”中的相關(guān)內(nèi)容。qQz紅軟基地
--------------------------------------------------------------------------------qQz紅軟基地
回頁首qQz紅軟基地
數(shù)據(jù)庫性能方面的一些實用特性 qQz紅軟基地
非阻塞檢查點 qQz紅軟基地
在 Informix 數(shù)據(jù)庫使用過程中,當(dāng)發(fā)生檢查點操作時,會阻塞數(shù)據(jù)庫應(yīng)用程序的運行,直到檢查點操作完成為止。這樣,會顯著降低數(shù)據(jù)庫的性能。這時,我們往往需要調(diào)整數(shù)據(jù)庫參數(shù)來減少檢查點操作對系統(tǒng)性能的影響,但這種調(diào)整往往比較復(fù)雜,很難達到最優(yōu)效果。為了解決上述問題,Informix 11 提出了非阻塞檢查點技術(shù),采用該技術(shù)后,檢查點操作不再阻塞數(shù)據(jù)庫應(yīng)用程序的運行,系統(tǒng)效率得到顯著的提高,也不再需要進行復(fù)雜的數(shù)據(jù)庫調(diào)整操作。qQz紅軟基地
關(guān)于非阻塞檢查點技術(shù)的特點及技術(shù)實現(xiàn),請參考文章“ Informix 11 非阻塞檢查點及 RTO 策略應(yīng)用實踐”。 qQz紅軟基地
已落實讀取隔離的并行性增強(LAST COMMITTED)qQz紅軟基地
在 Informix 中,當(dāng)用戶在對一行或多行數(shù)據(jù)進行修改,另外用戶要對相同數(shù)據(jù)進行讀操作時,會出現(xiàn)鎖等待(Lock Wait)現(xiàn)象,該用戶要等到鎖釋放才可以繼續(xù)操作。這會影響應(yīng)用程序的效率。特別是在 OLTP 系統(tǒng)中,還容易產(chǎn)生死鎖(Deadlocks)現(xiàn)象,影響系統(tǒng)的運行效率。為了提高應(yīng)用程序效率,我們往往要調(diào)整 lock timeout 參數(shù),將其設(shè)置為 30-60 秒,當(dāng)鎖等待超時后,中斷該會話。另外,有些用戶可能會將隔離級別設(shè)置為臟讀,但對于有大量 update 操作的應(yīng)用,這種隔離級別會讀取幻象數(shù)據(jù)(phantom data),數(shù)據(jù)準(zhǔn)確性不能得到保證。qQz紅軟基地
如下面例子,采用 committed read 隔離級別,會產(chǎn)生鎖等待現(xiàn)象。qQz紅軟基地
begin work; qQz紅軟基地
 create table tab(col1 int, col2 int) lock mode row; qQz紅軟基地
 insert into tab values(10,11); qQz紅軟基地
 insert into tab values(20,21); qQz紅軟基地
 commit work;qQz紅軟基地
session 1: qQz紅軟基地
 -------------- qQz紅軟基地
 begin work; qQz紅軟基地
 update tab set col2=99 where col1=10;qQz紅軟基地
session 2: qQz紅軟基地
 -------------- qQz紅軟基地
 begin work; qQz紅軟基地
 set isolation to committed read ; qQz紅軟基地
 select * from tab where col1=10;qQz紅軟基地
244:Could not do a physical-order read to fetch next row. qQz紅軟基地
 107: ISAM error: record is locked.如下面例子,采用 committed read 隔離級別,會產(chǎn)生死鎖現(xiàn)象。qQz紅軟基地
begin work; qQz紅軟基地
 create table tab(col1 int, col2 int) lock mode row; qQz紅軟基地
 insert into tab values(10,11); qQz紅軟基地
 insert into tab values(20,21); qQz紅軟基地
 commit work;qQz紅軟基地
session 1: qQz紅軟基地
 -------------- qQz紅軟基地
 begin work; qQz紅軟基地
 set lock mode to wait; qQz紅軟基地
 update tab set col2=99 where col1=10; qQz紅軟基地
 select * from tab where col1=20;qQz紅軟基地
session 2: qQz紅軟基地
 -------------- qQz紅軟基地
 begin work; qQz紅軟基地
 set lock mode to wait; qQz紅軟基地
 update tab set col2=99 where col1=20; qQz紅軟基地
 select * from tab where col1=10;為了解決上述問題,提高應(yīng)用系統(tǒng)并發(fā)執(zhí)行效率,Informix 11 提供已落實讀取隔離的并行性增強功能,通過為 SET ISOLATION TO COMMITTED READ 語句引入了新的 LAST COMMITTED 關(guān)鍵字選項,可減少嘗試讀取表時發(fā)生鎖定沖突的風(fēng)險。采用該語句,當(dāng)用戶讀取正在被其他用戶修改的數(shù)據(jù)時不在處于鎖等待狀態(tài),而是可以讀取修改前最近落實版本的數(shù)據(jù)值。 這樣,由于不會產(chǎn)生鎖等待,應(yīng)用程序效率會顯著提高,而且,由于是讀取修改前最近落實版本的數(shù)據(jù)值,也不會產(chǎn)生讀取幻象數(shù)據(jù)(phantom data)的問題,同時,也會大大減少產(chǎn)生死鎖的現(xiàn)象。qQz紅軟基地
如下面例子,當(dāng)采用 committed read last committed 隔離級別后,用戶將讀取修改前最近落實版本的數(shù)據(jù)值,不會產(chǎn)生鎖等待現(xiàn)象。qQz紅軟基地
begin work; qQz紅軟基地
 create table tab(col1 int, col2 int) lock mode row; qQz紅軟基地
 insert into tab values(10,11); qQz紅軟基地
 insert into tab values(20,21); qQz紅軟基地
 commit work;qQz紅軟基地
session 1: qQz紅軟基地
 -------------- qQz紅軟基地
 begin work; qQz紅軟基地
 update tab set col2=99 where col1=10;qQz紅軟基地
session 2: qQz紅軟基地
 -------------- qQz紅軟基地
 begin work; qQz紅軟基地
 set isolation to committed read last committed; qQz紅軟基地
 select * from tab where col1=10;qQz紅軟基地
C1 C2qQz紅軟基地
10 11我們可以通過以下幾種方法來提高使用“已落實讀”、“臟讀”、“讀已落實”或“讀未落實”隔離級別的會話中的并行性能:qQz紅軟基地
使用 Set Isolation to Committed Read Last Committed 語句 通過設(shè)置新的 USELASTCOMMITTED 配置參數(shù)擴展到臟讀(Dirty Read)、未落實讀取(Read Uncommitted)和已落實讀。≧ead Committed)隔離級別。 USELASTCOMMITTED 選項可具有以下四個值中的任意一個:qQz紅軟基地
如果值為“ COMMITTED READ ”,那么當(dāng)數(shù)據(jù)庫服務(wù)器嘗試讀取處于“已落實讀”或“讀已落實”隔離級別的行而遇到互斥鎖時,它將讀取最近落實的數(shù)據(jù)版本。 qQz紅軟基地
如果值為“ DIRTY READ ”,那么當(dāng)數(shù)據(jù)庫服務(wù)器嘗試讀取處于“臟讀”或“讀已落實”隔離級別的行而遇到互斥鎖時,它將讀取最近落實的數(shù)據(jù)版本。 qQz紅軟基地
如果值為“ ALL ”,那么當(dāng)數(shù)據(jù)庫服務(wù)器嘗試讀取處于“已落實讀”、“臟讀”、“讀已落實”或“讀未落實”隔離級別的行而遇到互斥鎖時,它將讀取最近落實的數(shù)據(jù)版本。 qQz紅軟基地
如果值為“ NONE ”,那么此值將禁用可訪問已鎖定行中上次落實的數(shù)據(jù)版本的 USELASTCOMMITTED 功能。在此設(shè)置下,如果會話在嘗試讀取處于“已落實讀”、“臟讀”、“讀已落實”或“讀未落實”隔離級別的行時遇到互斥鎖,那么在落實或回滾持有互斥鎖的并發(fā)事務(wù)之前,事務(wù)不能讀取該行。 qQz紅軟基地
SET ENVIRONMENT USELASTCOMMITTED 語句 SET ENVIRONMENT 語句可以在運行時指定影響相同例程中隨后提交的查詢的選項。 SET ENVIRONMENT USELASTCOMMITTED 可指定遇到由其他會話持有的互斥鎖的查詢和其他操作在更改數(shù)據(jù)值時是否應(yīng)使用最近落實的數(shù)據(jù)版本,而不是等待鎖被釋放。qQz紅軟基地
此語句在執(zhí)行當(dāng)前會話期間可覆蓋 USELASTCOMMITTED 配置參數(shù)設(shè)置。您可以使用 SET ISOLATION 語句來覆蓋 USELASTCOMMITTED 會話環(huán)境設(shè)置。qQz紅軟基地
例如,以下語句指定“已落實讀”隔離方式,并將系統(tǒng)缺省 USELASTCOMMITTED 配置參數(shù)設(shè)置替換為讀取最近落實的數(shù)據(jù)版本(數(shù)據(jù)位于并發(fā)閱讀器持有互斥鎖的行中)的設(shè)置。qQz紅軟基地
SET ISOLATION COMMITTED READ; qQz紅軟基地
 SET ENVIRONMENT USELASTCOMMITTED 'ALL';任何 SPL 例程都可使用這些語句在會話期間指定“已落實讀上次已落實”事務(wù)隔離級別。這些語句啟用讀取數(shù)據(jù)的 SQL 操作,從而在執(zhí)行讀取行的操作期間遇到互斥鎖時使用上次落實的版本。當(dāng)另一個會話嘗試修改同一行時,這樣可避免死鎖情況或其他鎖定錯誤。qQz紅軟基地
例如,PUBLIC.sysdbopen 或 user.sysdbopen 過程中的以下語句在連接時指定“已落實讀”隔離方式,并將顯式或缺省 USELASTCOMMITTED 配置參數(shù)設(shè)置替換為讀取表(其中并發(fā)閱讀器持有互斥鎖)中最近落實的數(shù)據(jù)版本的設(shè)置:qQz紅軟基地
create procedure PUBLIC.sysdbopen() qQz紅軟基地
 SET ISOLATION COMMITTED READ; qQz紅軟基地
 SET ENVIRONMENT USELASTCOMMITTED 'ALL'; qQz紅軟基地
 end procedure;除 sysdbopen( ) 之外,任何 SPL 例程都可使用這些語句在會話期間指定“已落實讀上次已落實”事務(wù)隔離級別。這些語句啟用讀取數(shù)據(jù)的 SQL 操作以在執(zhí)行讀取表的操作期間遇到互斥鎖時使用上次落實的版本。當(dāng)另一個會話嘗試修改同一個行或表時,這樣可避免死鎖情況或其他鎖定錯誤。qQz紅軟基地
當(dāng)啟用 LAST COMMITTED 選項后, onstat 命令的輸出也進行了相應(yīng)的變化:qQz紅軟基地
-k 選項增加了新的內(nèi)容 -x 選項增加了“ LC ”作為隔離級別 “ -g sql ” 選項增加了“ LC ”作為隔離級別 該功能支持 B 樹索引和函數(shù)型索引,但不支持 R 樹索引。它只支持“行”級別鎖定,它不支持以下這些表:正在被 DataBlade 模塊訪問的表、列中具有集合數(shù)據(jù)類型的表、使用虛擬表界面創(chuàng)建的表、具有頁面級別鎖定的表、具有專用表級別鎖定的表或無事務(wù)記錄的數(shù)據(jù)庫中的表。 它也不支持 HDR Secondary 。qQz紅軟基地
在跨服務(wù)器的分布式查詢中,如果發(fā)出查詢的會話的隔離級別具有有效的 LAST COMMITTED 隔離級別,但一個或多個參與操作的數(shù)據(jù)庫不支持該 LAST COMMITTED 功能,那么整個事務(wù)符合發(fā)出該事務(wù)的會話的“已落實讀”或“臟讀”隔離級別,而不啟用 LAST COMMITTED 選項。qQz紅軟基地
在 UNIX 上用 direct I/O 提高 cooked 文件的性能 qQz紅軟基地
在 Informix 11 中,隨著 direct I/O 特性的引入,可以提高用于常規(guī)數(shù)據(jù)庫空間塊的 cooked 文件的 I/O 性能。使用文件系統(tǒng)的 I/O 通常慢于使用原始設(shè)備的 I/O 。這是因為通過文件系統(tǒng)進行讀寫有附加的開銷。這增加了另一層的工作。此外,可能存在一個緩沖系統(tǒng)。這種緩沖會降低性能,而 IDS 不能控制操作系統(tǒng)的這個子系統(tǒng)。 Direct I/O 可以繞過文件系統(tǒng)層,包括任何緩沖,因此讀和寫的效率更高。可以使用 DIRECT_IO 配置參數(shù)啟用 direct I/O 。 cooked 文件的性能可以接近用于數(shù)據(jù)庫空間塊的原始設(shè)備的性能。qQz紅軟基地
DIRECT_IO 不能用于臨時數(shù)據(jù)庫空間,只能用于常規(guī)的數(shù)據(jù)庫空間塊。文件系統(tǒng)和操作系統(tǒng)必須支持給定頁大小的 direct I/O 。對于原始設(shè)備,不支持 direct I/O 。對于原始設(shè)備上的塊,更可取的 I/O 方法是 KAIO(kernel asynchronous I/O) 。qQz紅軟基地
DIRECT_IO ONCONFIG 參數(shù):qQz紅軟基地
DIRECT_IO 設(shè)置  描述  qQz紅軟基地
0 Direct I/O 被關(guān)閉  qQz紅軟基地
1 Direct I/O 被打開qQz紅軟基地
注意: 有些操作系統(tǒng)啟用 direct I/O,并且實現(xiàn)使用 KAIO (kernel asynchronous i/o) 。如果啟用了 direct I/O,數(shù)據(jù)庫服務(wù)器會嘗試使用 KAIO 以完成這項工作。如果啟用了 KAIO,可以減少 AIO 虛擬處理器的數(shù)量。這里假設(shè) KAIO 已被啟用(KAIOOFF 在環(huán)境中沒有被設(shè)置)。qQz紅軟基地
Windows 不支持 DIRECT_IO ONCONFIG 參數(shù),因為在 Windows 平臺上 direct I/O 是默認(rèn)被啟用的。qQz紅軟基地
使用非日志記錄原始表(RAW TABLE)qQz紅軟基地
在 Informix 數(shù)據(jù)庫中,如果采用日志模式的數(shù)據(jù)庫,那么當(dāng)對表進行大批量數(shù)據(jù)裝載時,會消耗大量的日志,如果沒有合適大小的日志空間,可能造成日志用滿而掛起的問題。從 Informix 9.2 開始,您可在日志記錄數(shù)據(jù)庫中使用非日志記錄原始表(raw table)來加快最初的裝入和數(shù)據(jù)驗證。數(shù)據(jù)倉庫及其他應(yīng)用程序可能具有非常大的表,需要很長的裝入時間。裝入非日志記錄表比裝入日志記錄表要快。qQz紅軟基地
RAW 表是非日志記錄永久表并且類似于非日志記錄數(shù)據(jù)庫中的表。 RAW 表使用輕附加,這會將行快速添加到每個表分段的末尾。支持但不記錄 RAW 表中的更新、插入和刪除。 RAW 表不支持引用約束、唯一約束和回滾。如果從上次物理備份后還未更新 RAW 表,那么可以從該次備份中恢復(fù)該表。快速恢復(fù)將回滾 STANDARD 表(但非 RAW 表)上未完成的事務(wù)。無論是存儲在日志記錄數(shù)據(jù)庫還是非日志記錄數(shù)據(jù)庫中,RAW 表的屬性都相同。qQz紅軟基地
要創(chuàng)建用于裝入的非日志記錄表,您可使用 CREATE RAW TABLE 語句或 ALTER TABLE 語句將表類型從 STANDARD 更改為 RAW 。 RAW 類型的表不允許引用約束,這樣最初的裝入就比 STANDARD 類型的表要快。原始表的裝入完成后,您可通過將表類型更改為 STANDARD 來將其更改為日志記錄表(在日志記錄數(shù)據(jù)庫中)。然后可使用 ALTER TABLE 語句將引用約束添加到表中并使用 CREATE INDEX 語句來添加索引。qQz紅軟基地
下面例子顯示了 raw table 創(chuàng)建的方法:qQz紅軟基地
create raw table xyz qQz紅軟基地
 ( col1 INT, col2 CHAR(10) qQz紅軟基地
 ) qQz紅軟基地
 in dbspace {fragment by whatever};qQz紅軟基地
orqQz紅軟基地
alter table xyz type raw ;下面例子顯示了 raw table 恢復(fù)為 standard table 的方法qQz紅軟基地
alter table xyz type standard ;要裝入原始表,您可使用任何數(shù)據(jù)裝入實用程序,例如快速方式的 dbimport 或 HPL 。裝入數(shù)據(jù)后,請執(zhí)行 0 級(level-0)備份。修改原始表中的任何數(shù)據(jù)或在事務(wù)中使用它之前,請將表類型更改為 STANDARD 。qQz紅軟基地
如果在原始表的裝入期間發(fā)生錯誤或故障,結(jié)果數(shù)據(jù)將是故障時留在磁盤上的任何數(shù)據(jù)。qQz紅軟基地
dbexport 和 dbschema 實用程序支持 CREATE RAW TABLE 和 ALTER TABLE...TYPE(RAW)語句。qQz紅軟基地
注意:請勿在事務(wù)中使用 RAW 表。在已裝入數(shù)據(jù)后,請首先使用 ALTER TABLE 語句將表更改為 STANDARD 類型并執(zhí)行 0 級備份,然后再在事務(wù)中使用該表。qQz紅軟基地
--------------------------------------------------------------------------------qQz紅軟基地
回頁首qQz紅軟基地
數(shù)據(jù)庫應(yīng)用開發(fā)方面的一些實用特性 qQz紅軟基地
會話配置例程(Session Configuration Routines)qQz紅軟基地
在 Informix 11 版本中,新增加了 sysdbopen( ) 和 sysdbclose( ) 內(nèi)置 SPL 過程,使數(shù)據(jù)庫管理員能在用戶連接到數(shù)據(jù)庫或從數(shù)據(jù)庫斷開連接時,自動執(zhí)行相關(guān)的 SQL 和 SPL 語句。通過使用這兩個 SPL 過程,我們可以在連接或訪問時更改數(shù)據(jù)庫服務(wù)器會話的屬性,而不更改會話所運行的應(yīng)用程序。這樣,對于那些不能通過修改應(yīng)用程序的源代碼來設(shè)置環(huán)境選項(或環(huán)境變量)或包含與會話相關(guān)的 SQL 語句(例如,由于 SQL 語句包含從供應(yīng)商處獲得的代碼)的情況,該操作非常有用。同樣,對于自動化應(yīng)用程序終止之后需要執(zhí)行的操作,主要是清除操作,這兩個程序也很有用。qQz紅軟基地
如果 DBA 將用戶的登錄標(biāo)識指定為名稱是 sysdbopen( ) 的過程的所有者,當(dāng)指定用戶連接到數(shù)據(jù)庫或從數(shù)據(jù)庫斷開連接時,Informix Dynamic Server 會執(zhí)行該過程。如果 DBA 將 PUBLIC 指定為所有者,當(dāng)不是任何這些內(nèi)置會話配置過程所有者的用戶連接到數(shù)據(jù)庫時,會自動執(zhí)行該例程。同樣,當(dāng)已連接到數(shù)據(jù)庫的用戶執(zhí)行引用其他數(shù)據(jù)庫中對象的分布式操作(如跨數(shù)據(jù)庫或跨服務(wù)器查詢)時,不會調(diào)用 sysdbopen( ) 例程。qQz紅軟基地
同樣,如果沒有為該用戶在數(shù)據(jù)庫中注冊 user.sysdbclose( ),當(dāng)該用戶關(guān)閉與數(shù)據(jù)庫的連接時,將會自動調(diào)用另一內(nèi)置過程 user.sysdbclose( ) 或 public.sysdbclose( ) 。qQz紅軟基地
如果要更改會話的屬性,可為各種數(shù)據(jù)庫設(shè)計定制 sysdbopen( ) 和 sysdbclose( ) 過程以支持特定用戶或 PUBLIC 組的應(yīng)用程序。 sysdbopen( ) 和 sysdbclose( ) 過程可包含數(shù)據(jù)庫服務(wù)器在數(shù)據(jù)庫打開或關(guān)閉時為用戶或 PUBLIC 組執(zhí)行的一系列 SET、SET ENVIRONMENT、SQL 或 SPL 語句。qQz紅軟基地
例如,對于 user1,可定義包含 SET PDQPRIORITY、SET ISOLATION LEVEL、SET LOCK MODE、SET ROLE 或 SET EXPLAIN ON 語句的過程,無論何時 user1 使用 DATABASE 或 CONNECT TO 語句打開數(shù)據(jù)庫時,這些過程都將執(zhí)行。qQz紅軟基地
sysdbopen( ) 過程中由 SET ENVIRONMENT 語句指定的會話環(huán)境變量 PDQPRIORITY 和 OPTCOMPIND 的任何設(shè)置都將在整個會話期間保持。對于常規(guī)過程非持久的 SET PDQPRIORITY 和 SET ENVIRONMENT OPTCOMPIND 語句,在 sysdbopen( ) 過程包含它們時將保持。qQz紅軟基地
當(dāng)作為過程所有者的用戶從數(shù)據(jù)庫斷開連接時,將運行 user.sysdbclose( ) 過程(或者此時將運行 PUBLIC.sysdbclose( ),前提是此過程存在且當(dāng)前用戶不具有任何 sysdbclose( ) 過程)。qQz紅軟基地
使用 sysdbopen( ) 和 sysdbclose( ) 內(nèi)置 SPL 過程的先決條件:只有 DBA 或用戶 informix 能夠在 SQL 的 ALTER PROCEDURE、ALTER ROUTINE、CREATE PROCEDURE、CREATE PROCEDURE FROM、CREATE ROUTINE FROM、DROP PROCEDURE 或 DROP ROUTINE 語句中創(chuàng)建或更改 sysdbopen( ) 或 sysdbclose( ) 。qQz紅軟基地
設(shè)置 sysdbopen() 和 sysdbclose() 過程以配置會話屬性的基本操作步驟:qQz紅軟基地
將 IFX_NODBPROC 環(huán)境變量設(shè)置為任何值(包括 0)以使數(shù)據(jù)庫服務(wù)器繞過和防止 sysdbopen( ) 或 sysdbclose( ) 過程的執(zhí)行。 qQz紅軟基地
編寫 CREATE PROCEDURE 或 CREATE PROCEDURE FROM 語句以定義特定用戶或 PUBLIC 組的過程。 qQz紅軟基地
測試過程(例如,通過使用 EXECUTE PROCEDURE 語句中的 sysdbclose( ))。 qQz紅軟基地
取消設(shè)置 IFX_NODBPROC 環(huán)境變量以使數(shù)據(jù)庫服務(wù)器能夠運行 sysdbopen( ) 或 sysdbclose( ) 過程。 qQz紅軟基地
下面的程序為特定用戶 usr1 設(shè)置角色,并將隔離級別設(shè)為 committed read 。qQz紅軟基地
create procedure usr1.sysdbopen() qQz紅軟基地
 set role oltp; qQz紅軟基地
 set isolation to committed read; qQz紅軟基地
 end procedure;這樣,當(dāng)用戶 usr1 通過 DATABASE 或 CONNECT 語句連接到數(shù)據(jù)庫時,將設(shè)置 oltp 角色,并將隔離級別設(shè)為 committed read 。qQz紅軟基地
下面的程序設(shè)置 PUBLIC 組的角色和 PDQ 優(yōu)先級。qQz紅軟基地
create procedure public.sysdbopen() qQz紅軟基地
 set role others; qQz紅軟基地
 set pdqpriority 1; qQz紅軟基地
 end procedure;這樣,當(dāng)用戶通過 DATABASE 或 CONNECT 語句連接到數(shù)據(jù)庫時,如果沒有為該用戶創(chuàng)建自己的 sysdbopen( ) 過程,他將執(zhí)行 public.sysdbopen() 過程,設(shè)置 oltp 角色,并將 PDQ 優(yōu)先級設(shè)為 1 。qQz紅軟基地
下面的程序為 PUBLIC 組創(chuàng)建 sysdbclose() 過程。qQz紅軟基地
CREATE PROCEDURE public.sysdbclose() INSERT INTO logit qQz紅軟基地
 VALUES(USER, “ O “ ,CURRENT::DATETIME YEAR TO SECOND); qQz紅軟基地
 END PROCEDURE;這樣,當(dāng)用戶斷開數(shù)據(jù)庫連接時,如果沒有為該用戶創(chuàng)建自己的 sysdbclose() 過程,他將執(zhí)行 public.sysdbclose() 過程,將用戶信息、操作狀態(tài)及相應(yīng)的時間戳的信息保存到 logit 表中。qQz紅軟基地
Disabling logging for temporary tablesqQz紅軟基地
在 Informix 數(shù)據(jù)庫中,我們經(jīng)常會創(chuàng)建一些臨時表來處理應(yīng)用中的臨時信息。系統(tǒng)可以采用如下兩種方式創(chuàng)建臨時表:qQz紅軟基地
使用 SELECT INTO TEMP 語句隱含地創(chuàng)建臨時表 使用 CREATE TEMP TABLE 語句顯示地創(chuàng)建臨時表 如果數(shù)據(jù)庫采用非日志模式,DBSPACETEMP 環(huán)境變量或配置參數(shù)設(shè)置后,臨時表會自動創(chuàng)建在由 DBSPACETEMP 環(huán)境變量或配置參數(shù)指定的數(shù)據(jù)空間上;如果數(shù)據(jù)庫采用日志模式,那么創(chuàng)建的臨時表缺省情況下是記日志的,不會被創(chuàng)建在由 DBSPACETEMP 環(huán)境變量或配置參數(shù)指定的數(shù)據(jù)空間上,那么由 SELECT ... INTO TEMP 語句創(chuàng)建的臨時表將被創(chuàng)建在根數(shù)據(jù)空間(Root dbspace)上,由 CREATE TEMP TABLE 語句創(chuàng)建的臨時表將被創(chuàng)建在數(shù)據(jù)庫所在的數(shù)據(jù)空間上。如果希望臨時表創(chuàng)建在由 DBSPACETEMP 環(huán)境變量或配置參數(shù)指定的數(shù)據(jù)空間上,我們需要使用 SELECT INTO TEMP with no log 語句或 CREATE TEMP TABLE with no log 語句來創(chuàng)建臨時表。qQz紅軟基地
下邊例子顯示了在日志模式數(shù)據(jù)庫中創(chuàng)建臨時表的方法:qQz紅軟基地
$ export DBSPACETEMP=dbs1,dbs2qQz紅軟基地
SELECT number FROM account INTO TEMP tp1qQz紅軟基地
Use with a logged database: qQz紅軟基地
 Temp table tp1 is created in the rootdbs:qQz紅軟基地
SELECT number FROM account INTO TEMP tp2 WITH NO LOGqQz紅軟基地
Temp table tp2 is fragmented across dbs1,dbs2:臨時表按照如下優(yōu)先順序創(chuàng)建在相應(yīng)的數(shù)據(jù)空間上:qQz紅軟基地
由 DBSPACETEMP 環(huán)境變量指定的數(shù)據(jù)空間 由 DBSPACETEMP 配置參數(shù)指定的數(shù)據(jù)空間 如果設(shè)置了 DBSPACETEMP 環(huán)境變量,那么臨時表會創(chuàng)建在由 DBSPACETEMP 環(huán)境變量指定的數(shù)據(jù)空間上,如果沒有設(shè)置 DBSPACETEMP 環(huán)境變量,那么臨時表會創(chuàng)建在由 DBSPACETEMPP 配置參數(shù)指定的數(shù)據(jù)空間上。qQz紅軟基地
出于性能考慮,一般我們建議在多個物理磁盤上創(chuàng)建多個臨時表空間,這樣,當(dāng)創(chuàng)建臨時表時,它會分片到所有臨時表空間上,提高并發(fā)處理效率。qQz紅軟基地
在采用日志模式的數(shù)據(jù)庫中,對臨時表的所有 DML 操作都要記日志,而且不加 with no log 選項,臨時表不會創(chuàng)建在由 DBSPACETEMP 環(huán)境變量或配置參數(shù)指定的臨時數(shù)據(jù)空間上,往往數(shù)據(jù)會寫到根數(shù)據(jù)空間(Root dbspace)上,影響系統(tǒng)性能,而且用戶在創(chuàng)建臨時表時,往往總是忘記 with no log 選項。為了解決上述問題,Informix 11 版本開始提供了關(guān)閉對臨時表記日志的方法,這樣,建臨時表時,即使沒加 with no log 選項,臨時表也會創(chuàng)建在由 DBSPACETEMP 環(huán)境變量或配置參數(shù)指定的臨時數(shù)據(jù)空間上。qQz紅軟基地
我們可以采用下述兩種方法來關(guān)閉對臨時表記日志:qQz紅軟基地
修改 onconfig 配置參數(shù) TEMPTAB_NOLOG 1通過 onmode 命令動態(tài)改變 onmode -Wf "TEMPTAB_NOLOG =1" qQz紅軟基地
 onmode -Wm "TEMPTAB_NOLOG =1"其中,-Wm 選項改變參數(shù)值后立即生效; -Wf 選項改變參數(shù)值后立即生效,同時將新的參數(shù)值寫到 onconfig 配置文件中。qQz紅軟基地
使用 TEMPTAB_NOLOG 參數(shù)來禁用臨時表上的日志記錄。該參數(shù)可以改進應(yīng)用程序的性能,尤其是在有 HDR 輔助服務(wù)器、RS 輔助服務(wù)器或 SD 輔助服務(wù)器的數(shù)據(jù)復(fù)制環(huán)境中,因為其防止 Informix 通過網(wǎng)絡(luò)傳輸臨時表。qQz紅軟基地
--------------------------------------------------------------------------------qQz紅軟基地
回頁首qQz紅軟基地
數(shù)據(jù)庫高可用集群方面的一些實用特性 qQz紅軟基地
用戶的關(guān)鍵業(yè)務(wù)系統(tǒng),特別是 OLTP 系統(tǒng),都要求提供 24X7 不間斷的應(yīng)用服務(wù),這就要求數(shù)據(jù)庫系統(tǒng)能夠提供強大的高可用能力。這種能力不僅僅體現(xiàn)在主機及備機的接管方面,同時要能夠提供遠程容災(zāi)能力,以及本地的負載均衡能力。針對上述對數(shù)據(jù)庫的要求,Informix 從版本 6 開始, 就提供了 HDR 技術(shù),它是通過數(shù)據(jù)庫的事務(wù)日志的方式實現(xiàn)了主、備機互相接管的功能,當(dāng)主機工作時,備機提供只讀功能,因此,備機可以提供查詢、報表等功能,實現(xiàn)負載分擔(dān)的功能,當(dāng)主機發(fā)生故障,備機會自動接管,實現(xiàn)主機及備機的接管功能。從 Informix 7.2.2 版本開始,Informix 數(shù)據(jù)庫提供了 ER(Enterprise Replication) 數(shù)據(jù)庫復(fù)制技術(shù),它也是通過讀取數(shù)據(jù)庫日志的方式實現(xiàn)數(shù)據(jù)同步功能,當(dāng)源數(shù)據(jù)庫數(shù)據(jù)發(fā)生變化后,Informix 數(shù)據(jù)庫通過讀取數(shù)據(jù)庫日志,將變化的數(shù)據(jù)及時同步到目標(biāo)數(shù)據(jù)庫,采用 ER 的方式,和 HDR 不同,HDR 數(shù)據(jù)庫的接管是基于數(shù)據(jù)庫服務(wù)器的,也就是它的作用范圍是基于整個實例的,而 ER 的作用范圍是作用于一個表,你可以靈活定義需要復(fù)制哪些數(shù)據(jù)列及數(shù)據(jù)行,而且可以靈活定義數(shù)據(jù)復(fù)制的方式,是采用主從方式、匯總方式還是雙向復(fù)制方式。從 Informix 11 開始,Informix 數(shù)據(jù)庫提供了 SDS(Shared Disk Secondary)、RSS(Remote Standalone Secondary)、CLR(Continuous Log Restore) 等高可用集群技術(shù),提供了更加強大的高可用能力。從 Informix 11.5 開始,HDR、SDS、RSS 備機都支持讀寫能力,提供了更強大的負載均衡能力。同時,從 Informix 11.5 開始,Informix 還提供了 Connection Manager 功能部件,它可以提供 SLA(Service Level Agreement) 功能,更好地實現(xiàn)負載均衡的能力,同時提供了 FOC(Fail Over Connection) 功能,實現(xiàn)透明故障接管能力,而且,所有這些對客戶端應(yīng)用來說是透明的。qQz紅軟基地

Informix11.5 for linux安裝wps截圖

Informix11.5 for linux安裝wpsqQz紅軟基地

紅軟基地破解版軟件均來自互聯(lián)網(wǎng), 如有侵犯您的版權(quán), 請與我們聯(lián)系。
軟件下載地址
Informix11.5 for linux安裝wps
軟件推薦
下載排行

精品軟件

熱門關(guān)鍵詞

熱門軟件推薦