informix經常使用命令

1、經常使用命令
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 


3、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 -pesql

 

在onstat –l中,flag位表示了邏輯日誌的狀態,
A表示新加了還不能使用的日誌
F表示空閒的可使用的日誌,通常是在0級備份以後纔有這樣的狀態
U表示已經使用的邏輯日誌
L表示當前的日誌文件包含一個檢查點
C表示正在使用當前的日誌文件
B表示已經備份的日誌文件數據庫

相關文章
相關標籤/搜索