informix常用命令

來源:互聯網
上載者:User
一、常用命令
oninit 將系統從off-line模式變為on-line模式
oninit -iy (初始化資料庫,刪除所有dbspace和chunk)
oninit -s (離線-->靜態)

onmode -ky offline
onmode -s graceful shutdown-->quiescent(聯機到靜態,讓使用者處理完成)
onmode -u immediate shutdown-->quiescent(聯機到靜態,所有使用者立即終止)
onmode -m quiescent--->online
onmode -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影響的dbspace
onstat -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 sid


ipcs 查看共用記憶體情況
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 extend
oncheck -ce
oncheck -cr reserved pages
oncheck -cd TBLspace data rows including bitmap
oncheck -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 15000

2.在datadbs這一個dbspace中增加一個chunk:(datadbs_chunk1)
onspaces -a datadbs -p /home/informix/datadbs_chunk1 -o 0 -s 15000

3.將上述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) 卸載的步驟如下:
用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 tabname
unload 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 size    dbspace大小(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 pathname     chunk裝置的全路徑名

-s size      chunk大小

-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表示已經備份的記錄檔
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.