zhouweifeng
ҽ
л
ҵBlog
¹鵵...
·...
Ķ...
ͳ...
վ...
Դ
===========================================================
informixϵͳṹ
===========================================================
informixϵͳṹ
INFORMIX̬õһֶϵṹζһԼĶͬʱɶϵͳֻҪٵĽ̾DBMS

̬ϵͳҪɣڴ棬̺ʹ̡ڴΣפΡκϢΡפҪݵĻ档Ҫڴֽ֧̼صĻỰsession)ͻùڴͨʱϢν֮Ϣ

ϵͳлɹݿUNIX̣Ϊoninit.Щ̱Ϊ⴦VP(virtual processors)ÿһVPijһ⴦ࡣÿһ⴦඼һض

ϵͳĴɶԭʼ̿ռɣΪchunk,chunkҳpage)Ϊλchunk߼Ϲݿռ䣨dbspace)ݿռڴ洢ݿ⡢ϵͳϢԼ־߼־һݿռٰһchunk.


ڴ

̬Ĺڴιɣ

פҪأں߼־־ĻԼϵͳݽṹפεĴСҪϵͳBUFFERS
Ҫڴֻ֧Ự;IJͬڴؿԽһΪỰءءֵء洢̳ءء󻺳ԼȫֳءڴصķͷǶ̬еġڴط䵥λСΪ8kκľ̬Ըonconfigٴζ̬롣ڴεijʼСɲSHMVIRTSIZEɲSHMADDڴεĴСܳSHMTOTAL
ͻùڴͨѶϢνͨѶÿһûӣùڴͨѶռ12Kռ䡣ûӵڲNETTYPEж塣
ûipcsonstat -g seg عڴε״̬


⴦Virtual Processors)


oninit cpuࣺ ûͲϵͳ95
oninit AIOࣺ ڲִI/O־д
oninit PIOࣺ ڲд־
oninit LIOࣺ ڲд߼־
oninit SHMࣺ йڴͨѶ
oninit TLIࣺ ڲTLIͨѶ
oninit SOCࣺ ڲSocketsͨѶ
oninit MSCࣺ
oninit ADMࣺ ʱ
oninit OPTࣺ BLOBϵͳ
oninit ADTࣺ аȫ

ݿϵͳɳΪoninitUNIXɣϵͳЩ̱Ϊ⴦VPVPǿִгoninitʵ塣ÿһVPһض⴦࣬ͬ⴦ֱɲͬÿһ⴦ɺVPв


CPU NUMCPUVPS
AIO NUMAIOVPS
PIO ԶһVP־񣬽VP
LIO ԶһVP߼־񣬽VP
SHM NETTYPE
TLI NETTYPE
SOC NETTYPE
MSC ԶһVP
ADM ԶһVP
OPT STAGEBLOBãȻԶһVP
ADT ADTMODEãȻԶһVP

ûPS onstat -g gloVP״̬




onstat -g ath ʾ

onstat -g act ʾ

onstat -g rea ʾо


ڶ̬УoninitеһαִеָͨƣһͬʱΪɶOS̡oninit˳ִУʵʱѿȨתƸڶÿһԼִлԼĴռԼľֲһ̸л

ϵͳУִֻ״̬ҪôijVPУҪôijһŶӵȴھбѾִֻеġһֿVPVPʹӾѡȡһִУѡȡı׼ڲȻƾ

ضʱ򣬵ǰеѶVPĿȨתƸ¼ֿԵ¿Ȩתƣ

ȴ̶д
ȴӦó
ȴԴ
лת


һȨcontextͽȴ˯߶СеȴijֲȴУҪԺ󱻻ѵ˯߶С




ڶ̬ҳpage)Ϊ洢I/0λҳСͲϵͳIJͬͬһΪ2kҲΪ4kû޷ıҳС

ϵͳʹõ̿ռĵλΪchunkchunkɶҳɡһ͵UNIXԭʼ豸chunkĴСϵͳԱ趨
ݿռ䣨dbspace)Ƕchunk߼ϡÿһݿռٰһchunkݿͱָݿռϡϵͳٰһݿռ䣺 root dbspaceڸÿռд洢ŹϵͳϢ
־physical log)Ĵ̿ռ乹ɣ洢Źڴ滺޸ĵҳδдУ޸ǰӳ־Ҫڿٻָֻеҳ״α޸ʱϵͳŻὫӳд־
߼־logical logs)ҲĴ̿ռ乹ɣ洢¼DDLcheckpoint¼ɹԱ趨߼־Ŀϵͳѭʹ߼־ϵͳһγʼʱ־߼־Զroot dbspaceϡ

zhouwf0726 :2006.07.25 13:35 ::: ( INFORMIX ) ::Ķ:(405) :: (0) :: (0)
===========================================================
INFORMIXļغ͹
===========================================================
INFORMIXļغ͹
ONLINEϵͳĹҪࣺ
 ϵͳؽӿڣSMI
 tbstat
 tbcheck

һ ϵͳؽӿڣSMI
ҪͨSQLonlineڲݿsysmasterеڲ/ṹȡйصάϢSysmasteronlineγʼʱϵͳԶġʵҪ洢һЩݽṹıʹSMIƣ
 ܶSMIеıʹø뼶
 ʹinsertdeleteupdate䣨ֻ
 ʹdbschemadbexport
 ʹselect rowid佫ԤϵĽ
ҪSMIУ
sysdatabasesonlineеݿϢ
systabnamesijݿбϢ
syslogs߼־Ϣ
sysdbspacesݿϢ
syschunkssyslocks
1ʾѻoffline״̬chunkźݿռ
Select chknumdbsnum fromsyschunks where is_offline=1 or misline=!
ʾchunkϢ
Select chknumdbsnum fromsyschunks where nfree=0
TBSTAT
 гǰʱ̵ϢʵҲǶȡSMI
 ҪI/O
 ҪϵͳԴ˲Ӱϵͳ

÷tbstat [-abcdklmpstuzBDFPRX] [-r seconds] [-o file] [infile]

-a print all info (options: bcdklmpstu)
-b print buffers
-c print configuration fileļ
-d print dbspaces and chunksdbspacechunk
-k print locks
-l print logging־
-m print message logϢ־
-p print profileprofileļ
-s print latchesբ
-t print tblspacesռ䣩
-u print usersû
-z zero profile counts
-B print all buffers
-D print dbspaces and detailed chunk stats
-F print page flushersҳˢ½̣
-P print profile, including BIGreads
-R print LRU queuesLRUУ
-X print entire list of sharers and waiters for buffers
-r repeat options every n seconds (default: 5)
-o put shared memory into specified file (default: tbstat.out)
infile use infile to obtain shared memory information

õtbstatѡ
 tbstat-m ʾϢ־20.
Ϣ־ݰ

2дϢ
3ONLINEģʽתϢ
4
5־ļ(LOG FILE FULL )
ʾϢ,ֱӱϢ־ļ.
 Tbstat -d̿ռʹDBSPACECHUNKϢ
RSAM Version 5.03.UC1 -- On-Line -- Up 09:45:41 -- 816 Kbytes

Dbspaces
addressnumber flagsfchunk nchunksflagsownername
8040a244 1111N informixrootdbs
1 active, 8 total

Chunks
addresschk/dbs offset size free bpages flagspathname
80409d84 1 1 0 300000 231871PO-/dev/rdata
1 active, 8 total
еFREEʾ˸CHUNKĿпռС(Kbytes).
 Tbstat -l ־ļ
Physical Logging
Buffer bufusedbufsizenumpages numwrits pages/io
P-2016 000.00
phybegin physizephypos phyused%used
101782 1500096000.00

Logical Logging
Buffer bufusedbufsizenumrecsnumpages numwrits recs/pages pages/io
L-2016 1111.01.0

addressnumber flagsuniqid beginsize used%used
8042de94 1U---C-L110521a 7500630 8.40
8042deb0 2F------0106f66 75000 0.00
8042decc 3F------0108cb2 75000 0.00
8042dee8 4F------010a9fe 75000 0.00
8042df04 5F------010c74a 75000 0.00
8042df20 6F------010e496 75000 0.00

У%USED ʹðٷֱ
FLAGSֶεĺ:
F: СB:ѱݡC: ڽ¼
U: ʹáA: ־L: һ
 Tbstat - uONLINEû
Users
addressflags pid user ttywaittout locks nreads nwrites
804019f4 ------D 329 root console0 00 1792
80401a64 ------D 0 root console0 00 00
80401ad4 ------F 330 root0 00 00
3 active, 20 total

Transactions
addressflags user locks log begin isolation retrys coordinator
804022b4 A---- 804019f4 0 0 NOTRANS 0
804028d8 A---- 80401a64 0 0 NOTRANS 0
2 active, 20 total
Уflagesֶεĺ:
һУSȴmutexYȴLȴBȴ
Cȴ㣻XGȴдTȴ
ڶУ*ִʱI/O
УAڱݣBѱ¼־УPֲ׼ã
CύRڻع
УPỰ
УRread rsam УXڹؼ
УMأDCFҳ̣
BB+ҳ
 Tbstat -k û
ȷΪ6:ҳֽ
ֽ°VARCHAR͵ʱڸϵ
ϵһӦֽϼɾ־
⼸ʶ£
TYPETBLSNUM ROWIDSIZE
HDR+X 10000022050
100000e00
ҳ 100 0
101
ֽHDR+B 909
ܴ16
ڣ1ʹʱɼͷŶӦ
2 ʹ(COMMIT WORKROLLBACK WORKͷ)
**ļͣ(SHARE)(EXCLUSIVE)**
 tbstat -p ʾϵͳԴ״(Ƿ)
Profile
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
18119935849.44 78 20.00

isamtotopenstart read writerewritedelete commit rollbk
311000010

ovtblsovlockovuser ovbuff usercpusyscpu numckpts flushes
0 0 00 0.00 0.00 2 239

bufwaits lokwaits lockreqs deadlksdltoutslchwaits ckpwaits compress
0 00 0 0 0 0 0
OVTBLSָʾTBLSPACEֵ TBLSPACESֵӦ
OVLOCKLOCKSӦ
OVUSERûԴUSERS
OVBUFԴBUFFERS
ӣӦֵӦ
DEADLOCKS⵽
DLTOUTS糬ʱ
DEADLOCK_TIMEOUTһΪ60룬֣ԼӦʱ䣬ûܸٴ֣ܻ󣬵Ӧʱ䣬ûӦʱˡ

ġ ONCHECK
 λ޸IJһ
 ϵݽṹ
 ʾͬݽṹı
 ijЩѡܻ漰ıϼһ
÷ tbcheck [-clist] [-plist] [-qny]
[ { database[:[owner.]table] | TBLSpace number | Chunk number }
{ rowid | page number } ]

-c- check飩
r - reserved pagesҳ
e - TBLSpace extents and chunk extents
c - database catalogsĿ¼
i - table indexes
I - table indexes and rowids in indexrowid
d - TBLSpace data rows including bitmapsռаλͼ
D - TBLSpace data rows including bitmaps, remainder pages and blobs

-p- printʾ
r - reserved pages (-cr) ҳ
e - extents report (-ce)extent
c - catalog report (-cc)Ŀ¼
k - keys in index (-ci)ļֵ
K - keys and rowids in index (-cI)
l - leaf node keys only (-ci)
L - leaf node keys and rowids (-cI)
d - TBLSpace data rows (-cd)
D - TBLSpace data rows including bitmaps, remainder pages and blobs (-cD)
t - TBLSpace report
T - TBLSpace disk utilization report
p - dump page for the given [table and rowid | TBLSpace and page number]
P - dump page for the given chunk number and page number
B - BLOBSpace utilization for given table(s) [database:[owner.]]table

-q- quiet mode - print only error messages
-n- answer NO to all questions
-y- answer YES to all questions

塢 Ҫtbcheckѡ
 TBCHECK-PTDATABASETABLE
йTBLSPACEı档EXTENTͿռʹϢϢTBLSPACETBLSPACEһTBLSPACEONLINEݿ⣬ǸDBSPACEеĵڶTBLSPACETBLSNUMΪ1000002TBLSPACEеÿбһݿϢ
 TBCHECK-CdDATABASETABLE
һռݡӱռжȡҳһԼ飬λͼҲȷϸҳȷӳ䡣ĹȷݵЧԣӦ־(BLOBҳʣҳ)
 TBCHECK-CiDATABASETABLE
ԱϵǷеROWIDָеЧУҪʱؽSYSINDEXESϢĹ֤ǷЧؽ𻵵Ӧ
ԣ
ӦֶΣ(JOIN)ֶΣ˵ֶ(WHEREʹõֶΣΪ)ֶ(ORDER BY)
ӦֶΣиظֵֶ
⣬Ӹظþ۴ӿٶȡ
ҪĹߣ
 UPDATESTATISTICS [LOW | MEDIUM | HIGH]
ҪãڲݷֲŻ洢
Ӧʹ
 tbinit
ڳʼݿ⹲ڴ档ÿο󶼱ִдһ㽫/etc/rc2.dĿ¼µһļС
磺Ӧעʱϵͳʾ
DBERR C529/C-ISAM C123 [Open Database]
ʹfinderr529ʾ
-529 Cannot attach to shared memory. {ʹùڴ}
ʱʹtbinitݿ⹲ڴгʼϵͳָ
 tbmode -sy| tbmode -ky
ڹرݿ⹲ڴ档ΪݵİȫÿιػǰִдΪ˼򻯲Ǿ/etc/rc0.dĿ¼µһļУϵͳûʱԶִдļ
 finderr
ѯݿĴ󡣵ϵͳݿʱϵͳ˸򵥵ijʾ⣬һšʹôִķȻԲͬĴӦĴ
磺ڳûroot¶Դݿbankstarвʱϵͳʾ
387: No connect permission.
111: ISAM error: no record found.
˼ǣϵͳ387󣬴ԭǣûconnectȨޡ
ԭ
ݿҪCONNECTȨޡ£informixûעᣬִSQL䣺grant connect to root
 dbaccessԣ

zhouwf0726 :2006.07.25 13:34 ::: ( INFORMIX ) ::Ķ:(537) :: (0) :: (0)
===========================================================
INFORMIX SQL
===========================================================
INFORMIX SQL
һ 飺
1INFORMIXҪƷΪ󲿷֣
 ݿ(ݿ)
 Ӧÿ
 ݿ⻥Ʒ
2ݿ֣öṩݲ͹
 SEȫUNIXϵͳҪԷǶýĽûӦ
 ONLINEԴûͶýӦû
3ӦÿԿӦóҪĻ͹ߣҪҲϵУ
 4GLINFORMIXͳĻַĿߣϵеҪƷI-SQL4GL RDS4GL C COMPILER4GL IDESQL/C
 NewEraINFORMIXṩľ¼ĻڸͼνĿߡ
4INFORMIXݿ⻥Ʒṩûڶֹҵ׼ӦóӿڣͨԺЩҵ׼ݿӡ

I-SQL˵飺
FormִС޸ġĻʽɾѴڵĻʽ
RunִijһѾڵĻʽ
Modify ޸ָѾڵĻʽ
Generate ΪָıһȱʡĻʽ
CompileһƶĻʽ
NewضûĻʽ
Drop ɾijѾڵĸʽļ
Exit ˳Form˵
Report ִС޸ġ롢ɾ
Runִijһ
Modify ޸ָı
Generate Ϊijһһȱʡı
Newһûָı
Compileָı
Drop ɾһָѾڵı
Exit ˳Report˵
Query-Language ʵó˵dbaccess
User-menu ִС޸ûIJ˵
Run ִеǰݿû˵
Modifyû޸û˵
Exit˳User-menu˵
Databaseʵó˵dbaccess
Table ʵó˵dbaccess
Exit˳ʵóisqlrf(isql)
ò
 ݿ
ISQL==DATABASE==CREATE==½ݿ

ISQL==TABLE==CREATE==ı==ADD
==ֶ͵==EXIT==BUILD-NEW-TABLE
 ȱʡʽ
ISQL==FORM==GENERATE=ѡݿ==ʽ==ѡ==TABLE-SELECTION-COMPLETE-----ɹ==RUN

ġ ʹRDSQL(ʽѯ)дSQL
ISQL==Query Langavage==NEW==RUN
 ݿ
CREATEDATABASEݿ
 (ʽѡ)
ʽ
CREATETABLE
(ֶ͡
ֶ͡
--- ֶ)
ϸ壺
CREATE TABLE
(COL1INTEGERNOTNULL
COL2CHAR(2)CHECK ( COL2IN ( ))
COL3DATEDEFAULTTODAY
COL4SMALLINT UNIQUE
--- ֶ͡)
FRAGMENT BY ROUND ROBIN (BY EXPRESSION)IN DB1DB2
EXTENT SIZE 1000 NEXT SIZE 600
WITH NO LOG (LOGBUFFERED LOGLOG MODE ANSI )
LOCK MODE ROW(PAGE)
1
CREATE TABLE ORDERS
(ORDER_NUMINTEGER
UNIQUECONSTRAINTORDER_NUM_UQ,
ORDER_DATEDATE
NOT NULLCONSTRAINTORDER_DATE_NN
DEFAULTTODAY );
2
CREATETABLECUSTOMER (
CUSTOMER_NUMSERIAL,
FNAMECHAR(20),
PRIMARYKEY (CUSTOMER_NUM)
CONSTRAINTPK_CNUM
);

CREATETABLEORDERS (
ORDER_NUM SERIAL,
CUSTOMER_NUM INTEGER,
FOREIGNKEY (CUSTOMER_NUM)
REFERENCESCUSTOMER
CONSTRAINTFK_CNUM
);
ͣ
ַ(CHAR(20)),VARCHAR(MINSIZE, MAXSIZE)
ֵ(֣DECIMAL(16,2)SMALLINTINTEGERSMALLFLOATFLOATSERIAL )
( DATE ĬϸʽΪMM/DD/YYYY )
**Ҫ޸DATE͵ȱʡʽ, ֻҪûĿ¼.profileļ˵: DBDATE=Y4MD/
EXPORTDBDATE**
(MONEY (8,2))
(磺INTERVALDATETIME)
 (뽨)
CREATE[ UNIQUE ]INDEXON(ֶ)
CREATE[ UNIQUE ]INDEXON(ֶ)DISABLED;
SETINDEXESENABLED
DROPINDEX
 ݿȨ
CONNECT ݿ
RESOURCE ûݿеı
DBA ݿԱȨޣһ㽨߼ΪDBA
GRANTȨޡTOPUBLIC | û
REVOKEȨޡFROMPUBLIC | û
 ݿ
DATABASEݿ
SELECT * FROM
SELECTֶ ֶFROM
SELECTֶ ֶ+-*/ֶFROM
SEKECTAVG(ֶ) MIN()MAX()SUM()COUNT()FROM
WHEREӾ䡡 = =< <=>>=
MATCHES* 0? [ ] ַһΧ תһַ
LIKE %:0-- _ תһַ
ORDERBY(DESC)
ʱ亯: DAYMDYMONTHWEEKDAYYEARDATECURRENT
:LENGTHUSERCURRENTTODAY
Ӷв, SELECTǶס
ֱֶͬдֶͬͬǰ׺
SELECTһֶFROMһ,
в
INSERT INTO [ 1, 2]VALUES [ ]
޸
UPDATESETֶ=WHERE
ɾ
DELETEFROMWHERE
޸ıĽṹ:
1:
ALTERTABLE
DROPCOL2 ,
MODIFYCOL1INTEGERNOTNULL ,
ADDCOL4INTEGER ,
ADDCOL3CHAR(20)BEFORECOL4;
2:
ALTERTABLEORDERS
MODIFYNEXTSIZE300;
:
RENAME COLUMNTABLECOLTONEWCOL_NAME
RENAME TABLETABLE_NAMETONEWTABLE_NAME
RENAME DATABASEDATABASE_NAMETONEWDATABASE_NAME
ɾ:
DROPTABLETABLE_NAME
DROPDATABASEDATABASE_NAME
ϰ⣺
һ˾ְԱ⣬аһ˾ְԱݰ
EMPLOYEE_NAME , EMPLOYEE_NUM, HIRE_DATE ,SALARY
zhouwf0726 :2006.07.25 13:33 ::: ( INFORMIX ) ::Ķ:(598) :: (0) :: (0)