A. help的系統中
Windows中cmd.exe的Help
在cmd.exe中輸入Help,將會顯示以下幫助信息,要查看某一命令的幫助,請輸入help+命令,或者是命令,
有關某個命令的詳細信息,請鍵入 HELP 命令名
關工具的詳細信息,請參閱聯機幫助中的命令行參考。
B. Informix常用命令
常用命令oninit
將系統從off-line模式變為on-line模式oninit -iy
(初始化資料庫,刪除所有dbspace和chunk)oninit -s (
離線-->靜態)onmode -ky offlineonmode -s graceful shutdown-->quiescent(聯機到靜態,讓用戶處理完成)
onmode -u
immediate shutdown-->quiescent(聯機到靜態,所有用戶立即終止)
onmode -m
quiescent--->onlineonmode -z sid 刪除某session onmode -l 將當前正在使用的邏輯日誌下移onmode -c
強制執行檢查點操作即onmonitor->force ckpt onstat - 查看伺服器狀態onstat -d 查看dbspace和chunk情況onstat -l
查看邏輯日誌onstat -F 查看寫入磁碟的頁刷新和類型情況,從共享內存緩沖區向磁碟寫入頁面有三種方式(fg:前台寫 LRU:隊列寫 chunk:塊寫)onstat -R
列印LRU隊列onstat -p 顯示系統的基本I/O與性能配置文件onstat -c 查看onconfig文件onstat -m 查看消息日誌onstat -f
查看受DATASKIP影響的dbspaceonstat -x 查看事務onstat -k
顯示所有活動的鎖onstat -g sub_option 運行多線索選項
onstat -g ses/sql onstat -r <value> 每隔<value>秒後重復選項 onstat -g act
顯示系統中所有的活動線索 onstat -g ath -r 2 每隔兩秒顯示系統中所有的活動的線索 onstat -i 交互方式 >sql>sql sidipcs
查看共享內存情況ipcrm
刪除某個共享內存ipcrm -m id ipcrm -s id
Ontape命令:
1)零級(一級或二級)備份$>ontape -s$>ontape -s -L 0$>ontape -s -L 1$>ontape -s -L
2自動備份邏輯日誌文件 $>ontape -a
3)連續邏輯日誌備份(日誌文件寫滿一個,online系統自動備份一個,你可以插盤磁帶到磁帶機上,讓IDS自動備份。
要佔用磁帶機)$>ontape -c
4)備份恢復(對應零級備份或一級備份或二級備份)$>ontape -r (詳細過程見ontape恢復文擋)
5)備份恢復幾個DBSPACE(一定要存在邏輯日誌備份,否則物理恢復完後,還是不能用)$>ontape -r -D dbs1 dbs2 。。。
6)配置HDR時使用的物理恢復$>ontape -p
7)修改資料庫日誌模式$>ontape -s -B db_name 修改為buffer_log 即緩沖日誌模式$>ontape -s -U db_name
修改為unbuffer_log 即非緩沖日誌模式$>ontape -s -N db_name
修改為無日誌模式 資料庫不含日誌,即不支持事務,對資料庫的任何修改都不會記錄到邏輯日誌中去$>ontape -s -A db_name
修改為ansi logging模式,從個模式無法改到其它模式,因此一般不要用該項。oncheck 命令 oncheck -pe
extendoncheck -ceoncheck -cr reserved pagesoncheck -cd TBLspace data rows including bitmaponcheck -ci
table indexes databases對邏輯日誌的操作:以informix用戶登錄, $ onmode -uy (由Online切換到Quiescent狀態,所有用戶立即中止)
onmode -m (切換到Online) $ onparams -a -d logdbs -s 100000 其中logdbs為dbspaces 名,-s 100000 表示增加了100M空間。
再連續執行4遍上述命令,這樣新的邏輯日誌空間總共為500M,可以用 onstat -l 查看邏輯日誌情況,接下來就要刪除前面3個舊邏輯日誌,
刪除前做一個0級備份 # ontape -s -L 0 執行該命令做0級備份,建議: 如果允許可以每天在業務系統結束工作
後做一次0級備份,做完備份後管理好備份磁帶,做好標記。 $ onparams -d -l logid
logid 為邏輯日誌id號,可以用onstat -l 查看,然後就可根據id號刪 除3個舊邏輯日誌。
將當前正在使用的邏輯日誌下移 $onmode -l 三、DBSPACE及資料庫導入導出1.增加一個新的dbspace:(datadbs,15M, 偏移為0)
onspaces -c -d datadbs -p /home/informix/datadbs -o 0 -s 150002.
在datadbs這一個dbspace中增加一個chunk:(datadbs_chunk1)onspaces -a datadbs -p /home/informix/datadbs_chunk1 -o 0 -s 150003.將上述chunk刪除onspaces -d datadbs -p /home/informix/datadbs_chunk1 -o 0 4.刪除dbspace(僅當要刪除的dbspace空間沒有數據時才可刪除)onspace -d datadbs 導出資料庫: 用dbexport工具將數據卸成文本,並裝載到其它伺服器上。(1)卸載文本的步驟如下:用informix用戶注冊 dbexport cleardb -o WORKDIR -ss 當系統提示dbexport completed!數據卸載完畢。其中: -ss 確保資料庫的建庫信息或建表信息被保留如日誌模式、初始extent尺寸、lock mode、表所在dbspace等。 -o 指定存放卸載數據的目錄數據存放在目錄cleardb.exp目錄下,其中包含cleardb.sql和形如*.unl的文件,
提示信息存放在dbexport.out文件中。
(2)裝載文本的步驟如下:用informix用戶注冊確保資料庫處於On_Line狀態,伺服器上沒有同名資料庫。
dbimport cleardb -i WORKDIR 當系統dbimport completed!提示數據裝載完畢。其中: -i
指定從何處裝載。如何在不破壞庫本身信息情況下(如行級鎖等)將資料庫卸載到磁帶設備,並裝載在其它伺服器上?1)
p; 卸載的步驟如下:用DBA用戶注冊將存放數據的磁帶插入磁帶機,確認磁帶及磁帶機完好可用。
dbexport cleardb -t /dev/rmt/0m -b 512k -s 2048000k -ss當系統提示dbexport completed!數據卸載完畢。其中: -ss 確保資料庫
的建庫信息或建表信息被保留如日誌模式,初始extent尺寸,lockmode,表所在dbspace -t 磁帶設備/dev/rmt/0m -s
磁帶容量2G -b 塊大小512KB 提示信息存放在dbexport.out文件中2)裝載的步驟如下:
用DBA用戶注冊將存放卸載數據的磁帶放在磁帶機上,確認磁帶機正常,確認資料庫系統處於On_Line狀態,
伺服器上沒有同名資料庫。
$ dbimport cleardb -t /dev/rmt/0m -b 512k -s 2048000k 當系統dbimport completed 提示數據裝載完畢!提示信息存放在dbimport.out 文件中。
重建表格:1) dbschema -d dbname -t tabname -ss tabname.sql /*將表格結構放進tabname.sql*/編輯此文件並在create table
語句末尾增加新的區域長度暫時將生成表格索引的tabname.sql部分標為說明語句,即在索引句前後加上「{}」,
例如:{ create index xl on customer(last_name); create index x2 on customer(cust_nbr);}
最好在後面生成索引,因為這樣表格能快速裝入,索引能在連續磁碟空間生成,使其更加有效。
2)鎖定表格lock table tabname in exclusive mode;
3)用SQL UNLOAD 將表格卸載到磁碟或磁帶中unload to file_or_tape_path select * from tabnameunload to "/usr/data/unload/customer.unl" select * from customer;
檢查表中的行數(用SQL中的Table/Info命令),驗證卸載是否成功。比較這個數與裝入完成後SQL顯示的消息。用此驗證file_or_tape_path中的行數:wc -l file_or_tape_path
4)刪除表格
5)用dbacess生產表格並運行tabname.sql。這時不要生成索引
6)用SQL的LOAD FROM 或用 dbload重新裝入表格load from file_or_tape_path insert into tabname;load form "/usr/data/unload/customer.unl" insert into customer;
對於日誌資料庫,上面的裝入語句可能產生長事務或「to many lock」錯誤。
這時建議用dbload之類的實用程序將數據插入表中。dbload的 -n 選項強制在插入一定行後進行commit work(建議選1000行)。
檢查表中的行數(用SQL中的Table/Info命令),驗證裝入是否成功。7)如要生產索引,運行第一步中標為說明語句的tabname.sql部分。
8)更新表格統計信息 update statistics on tabname;
語法 oninit [-s] [-i] [-p] [-y]
oninit將系統從off-line模式變為on-line模式
oninit -s 將系統從off-line模式變為quiescent模式
oninit -i 初始化系統
oninit -p 在共享內
存初始化時,不搜索,刪除臨時表
oninit -y 對提示自動回答yes
oninit -v 加入這個選項顯示oninit處理過程
oninit-- 鍵入此命令可以獲得使用幫助
oninit命令用來改變系統的運行模式。其中-i選項用於初始化系統的root dbspace。注意,root-dbspace一旦被初始化,則等於整個資料庫系統被初始化。
如果用戶希望在計算機啟動時自動自動啟動動態伺服器系統,請在系統初啟文件(在許多UNIX系統中為/etc/rc)中加入oninit命令(不加任何選項)。
onmode 命令
語法: onmode [-k] [-m] [-s] [-u] [-y]
onmode -k 執行立即shutdown,將系統變為off-line模式
onmode -m 將系統從quiescent模式變為on-line模式
onmode -s 執行graceful shutdown
onmode -u 執行immediate shutdwon
onmode -y 對提示自動回答yes
onmode 命令同樣用於改變動態伺服器的運行模式。除了上述選項外,onmode還有很多與改變系統運行模式無關的選項。
利用onspaces命令創建數據空間
語法: onspaces -c [-b] [-d] [-z] [-m] [-o] [-p] [-s] [-t]
-c 創建blobspace或dbspace
-b blobspace blobspace名
-d dbspace dbspace名
-g page size blobpages大小
-m mirror 鏡像設備設的全路徑名和偏移量(KB)
-o offset 偏移量(KB)
-p pathname chunk設備的全路徑名
-s sizedbspace大小(KB)
-t創建臨時dbspace
onspaces 命令用於創建數據空間、臨時空間和存儲blob數據的空間(blobspace)。鍵入onspaces--可以獲得該命令的聯機幫助。
利用onstat -D或onstat -d可以看到系統中的關於數據空間的重要信息。包括:chunk的狀態、空閑、每一chunk讀寫的次數。
系統中可能包括的多個系統空間,特別當進行數據分片後,我們建議用戶最好能利用命令行來創建數據空間。
可以利用如下命令創建數據空間:
onspaces -c -d datadbs1 -o 0 -p /dev/rrvol3 -s 60000
可以用如下的方式創建臨時數據空間:
onspaces -c -d tempdbs1 -t -o 0 -p /dev/rrvol5 -s 80000
在系統中,臨時數據空間非常重要,通常情況下,應將多個臨時數據空間分布在獨立的物理設備上。
利用onspaces命令刪除數據空間
增加或刪除chunks
語法: onspaces -a -d [-m] [-o] [-p]
-a spacename 為dbspace新增chunk
-m pathname鏡像設備的全路徑名和偏移量(KB)
-o offset 主設備的偏移量(KB)
P>
-p pathname chunk設備的全路徑名
-s sizechunk大小
-d spacename 刪除chunk
-o offset chunk設備的偏移量(KB)
onspaces不僅能創建數據空間還能刪除數據空間、臨時數據空間或存儲blob數據的空間。在刪除數據空間時,必須首先保證它是無用的,即該數據空間上無資料庫或表。
如需刪除數據空間,請鍵入如下命令:onspaces -d dbspace_name /blobspace_name
數據空間最初由一個chunk(first chunk)構成,一旦其空間用盡,用戶必須追加chunk為了提高系統性能,用戶在為數據空間分配chunk時需要計算以保證它的大小能適應未來的需要,否則在追加chunk的時候,它與先前的chunk在物理上不一定相鄰,導致增加讀取數據的時間。關於如何計算空間需求將在以後章節中闡述。利用 onspaces命令可以對數據空間增加或者刪除chunk,除此之外,利用該命令還可以完成如下任務:啟動鏡像、中止鏡像或改變chunk的狀態。
例如可以用如下命令為數據空間增加chunk:
onspaces -a -d datadbs1 -0 60002 -p /dev/rrvol3 -s 60000
再如可以用如下方式從數據空間中刪除chunk:
onspaces -d datadbs1 -o 60002 -p /dev/rrvol3 -s 60000
onparams 命令
語法:onparams -a -d -p [-d] [-s] [-l]
-a 新增邏輯日誌
-d dbspace 指定日誌存放的dbspace
-s size 新增邏輯日誌的大小(KB)
-d 刪除邏輯日誌
-l logid指定刪除一個邏輯日誌
-p 改變物理日誌
-d dbspace 新物理日誌存放的dbspace名
-s size物理日誌大小(KB)
系統在初始化時自動地在root dbspace中創建邏輯日誌和物理日誌。在DBMS系統中,尤其在OLTP環境下,資料庫的操作非常頻繁,日誌中必須記錄大量的信息,所以用戶最好能將多個日誌文件分布在不同的設備上。有一種非常簡單的方法:即按所需大小創建邏輯日誌,同時創建一個較小的物理日誌,系統初始化完畢後,再將物理日誌移至其它設備。關於如何確定所需的物理日誌的大小,將在以後的章節詳述。利用onstat -l命令可以看出系統中所有新增的邏輯日誌被標識為A。這些邏輯日誌只有在系統進行歸檔後才會真正被使用。為了激活這些邏輯日誌有一種簡單的方法:執行一次"偽"歸檔。具體步驟如下:將參數TAPEDEV設置為/dev/null然後運行一次ontape -s。也可以執行onbar -F命令。由於偽歸檔並不真正歸檔系統信息,所以千萬要適時地對系統進行真正的歸檔操作。
只有在邏輯日誌真正無用時才能將其刪除。利用onstat -l 可以看出所有的空閑日誌被標記為F。如果邏輯日誌中包含事務回滾或快速恢復所需的信息,該邏輯日誌是不能被刪除的。利用onstat -l命令可以看出接受當前事務的日誌被標記為C。如果邏輯日誌包括最後一個檢查點記錄,它也是不能被刪除的,只有當檢查點記錄被寫入下一個日誌忠並且上一個日誌被備份後,該日誌才能被刪除。利用onstat -l命令可以看出包含最後一個檢查點記錄的日誌被標記為L。用戶可以利用
onmode -c命令強制寫檢查點記錄直至最後一個檢查點記錄被寫入所要求的日誌為止。
onstat 工具
顯示動態伺服器共享內存中的信息
涉及少量磁碟I/O操作
將對系統性能的影響極小
提供關於系統有價值得信息
命令行互動式監控系統
在本章中將講解onstat 的各種重要選項,請熟悉它們的使用
onstat 命令是一種非常有用的系統實時監控工具。該命令直接從共享內存的數據結構中讀取信息,報告當時的系統狀況。通常onstat 命令不會進行磁碟I/O操作,也不會對系統資源加鎖,所以它對系統性能的影響減少到最小。簡言之,onstat是informix提供的一種互動式的系統監控工具。
onstat 的一些常用選項:
onstat -- 列出所有選項
onstat -i 設置進入交互模式
onstat - 顯示運行模式和資料庫引擎狀態
onstat -g sub_option 運行多線索選項
onstat -r 每隔秒後重復選項
onstat -g act 顯示系統中所有的活動線索
onstat -g ath -r 2 每隔兩秒顯示系統中所有的活動的線索
系統監控界面
sysmaster資料庫在系統初始化時自動創建
資料庫中包括指向系統共享內存結構數據字典信息
提供瞬時的系統性能和狀態信息
提供SQL界面了解數據字典信息
允許管理員將系統管理工作自動化
用於執行重復性的監控任務
系統監控界面(system Monitoring Interface --SMI)是一種基於SQL的系統工具,
用戶通過SMI可以非常方便地獲取系統信息。系統在初始化時,自動地在root dbapace創建sysmaster系統資料庫。
每一系統包括一個sysmaster資料庫,該資料庫中的大部分表為虛表,是指向共享內存中數據結構的指針。利用SMI可以自動監控系統,特別是在執行重復任務時。
sysmaster資料庫是只讀的,即不允許對其進行INSERT UPDATE,或DELETE操作。所有用戶都擁有對該資料庫的查詢許可權。
在系統初始化後,用戶一定要注意檢查sysmaster資料庫是否建立成功。創建sysmaster資料庫的信息都保存在消息日誌文件中(online.log)請注意由於所有的DDL語句都將被記錄在日誌中,
所以一定要在日誌文件中留出足夠的空間以保證創建sysmaster所需。
sysmaster資料庫模式記錄在$INFORMIXDIR/etc/sysmaster.sql文件中。
oncheck 命令
檢查動態伺服器磁碟上的數據結構
定位並修補損壞的索引和數據
有磁碟I/O操作
一些操作在處理時將在表上加鎖
oncheck命令用於修復磁碟上損壞的索引和數據頁,該命令也可用於檢查並列印系統的數據結構。在使用oncheck時一定要當心,因為改命令的某些選項會對表加共享鎖,例如:oncheck -pt
>
為防止對系統的損壞,系統會對所有共享內存中的數據進行一次一致性檢查。一旦發現數據頁出現一致性錯誤或發現索引錯誤,系統將把問題和可能的解決方案(利用oncheck)寫入消息日誌文件,並返回isam錯誤代碼105。
如果發現一致性錯誤信息,用戶應該立即關閉系統並按消息日誌文件中的提示運行oncheck。如果oncheck運行失敗,則應嘗試卸出表再重新裝入;如果是索引得問題,則應先刪除索引再重建之。如果所有這些步驟都失敗了,只有根據原有的系統歸檔備份來恢復系統。
下面的命令可以提供extend信息:
oncheck -pe
在onstat –l中,flag位表示了邏輯日誌的狀態,
A表示新加了還不能使用的日誌
F表示空閑的可以使用的日誌,一般是在0級備份之後才有這樣的狀態
U表示已經使用的邏輯日誌
L表示當前的日誌文件包含一個檢查點
C表示正在使用當前的日誌文件
B表示已經備份的日誌文件