也不知道當時是在什麼地方找到的了,這麼長一串應該是從哪裏摘錄下來的。先放到這裏,方便以後需要的時候查看了。
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中增加一個chunkdatadbs_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;