informix數據庫備份導入

 --導出informix數據庫表結構腳本
informix    dbschema -t all -hd all -d remotedb remotedbtable.sql    
--導出informix數據庫存儲過程腳本
informix    dbschema -f sp_nb_clmcheckmain  -d nbx sp_nb_clmcheckmain.sql    

1)導出數據庫中全部的表結構到文件db.sql$>;dbschema -d your_database -t all  db.sql   
2)導出數據庫中全部的存儲過程到文件db.sql$>;dbschema -d your_database -f all  db.sql
3)導出數據庫中的全部對象(包含表,存儲過程,觸發器。。。)到文件db.sql$>;dbschema -d your_database db.sql
4)導出數據庫中一個表的結構到文件db.sql$>;dbschema -d your_database_name -t your_table_name db.sql
5)導出一個存儲過程定義到文件db.sql$>;dbschema -d your_database_name -f your_procedure_name  db.sql
6)若是導出更的表的信息(EXTENT...)$>;dbschema -d your_database_name -ss db.sql
7)導出數據庫中對用戶或角色的受權信息$>;dbschema -d your_database_name
7)導出數據庫中對用戶或角色的受權信息
$>dbschema -d your_database_name -p all
$>dbschema -d your_database_name -r all
8)導出數據庫中的同義詞
$>dbschema -d your_database_name -s all
//*****************************************************************************
查詢出一個數據庫中全部的用戶表
select * from systables
where tabid > 99
// tabname 存放表的名字
// tabtype 存放表的類型 T=表,E=外部表,V=視圖......
//SQL參考指南 nrows 表中的行數 ncols 表中的列數
//*****************************************************************************
onstat -d  看一看你的數據庫空間怎麼分配的

若是你在作dbimport的時候沒有指定參數,那麼會把整個數據庫建在rootdbs上。
若是數據庫空間規劃得比較細的話,應該有專用於裝數據的dbspace。
//*****************************************************************************
導出數據
unload to database.txt
select ......
from ...
where ....
導入數據
load from database *.txt insert into tablename
//*****************************************************************************
提交建表腳本 dbaccess db_das(數據庫名) - < 建表腳本 生成所須要的表
dbaccess db_das db.sql
db.sql是用dbschema -d db_das -t all db.sql導出的
//*****************************************************************************
同時生成dbspace 和 塊

onspaces -c -d dbspaces1 -p D:\IFMXDATA\ol_chinaren5\ol_chinaren5_dat.000 -o 0 -s 200000

本例中,生成新的dbspace名爲dbspace1及其初始塊,
分配在磁盤D:\IFMXDATA\ol_chinaren5\ol_chinaren5_dat.000中,
偏移量爲o.初始長度爲200MB(200000KB)。
//*****************************************************************************
用onspaces命令在dbspace中增長塊

onspaces  -a dbspace1 -p D:\IFMXDATA\ol_chinaren5\ol_chinaren5_dat.000 -o 200000 -s 50000
做用:在D:\IFMXDATA\ol_chinaren5\ol_chinaren5_dat.000 中爲 dbspace1增長50M空間
-o 偏移量 必須爲如今已有空間的大小s

//*****************************************************************************
爲數據庫空間,blob空間或sb空間分配NTFS文件空間

進入要存放文件空間的目錄D:\IFMXDATA\ol_chinaren5

執行命令 copy nul my_chunk_dat.000
就新建了一個my_chunk_dat.000 大小爲0的文件
而後用onspaces 爲空間擴展大小 及分配dbspace

//*****************************************************************************
刪除dbspace

onspaces -d dbspace1
刪除名爲dbspace1的dbspace 空間

//*****************************************************************************

dbimport 導入數據

運行數據庫服務器dos界面  輸入 oninit
在運行一個數據庫服務器dos界面  
直接輸入:dbexport -o d:\informix  db_das
                     <保存的目錄> 要導出的數據庫
或者:dbexport -c -o d:\informix db_das
導出完成 將提示 dbexport completed! 導出過程可能有點慢(等待)
導出完成後將在 <保存的目錄> 下產生一個文件夾 db_das.exp(導出的數據庫名.exp)

導入數據庫
輸入:dbimport -c -i   d:\informix         db_das
                    <db_das.exp所在的目錄>    導入的數據庫名
或者:dbimport -c -X -i d:\informix\temp db_das -d practice
-c 指示dbimport完成導入, 即便它遇到某些非致命錯誤
-X 識別字符字段中的hex二進制數據
-i 指定磁盤上database.exp目錄的完整路徑名,目錄名應該與數據庫名相同
-d 指定建立數據庫的數據空間

將數據庫更名  先更改.exp目錄名稱,在更改.sql模式文件名稱
目錄名稱必須和模式文件名稱相同

導入完成 會有提示!

//*****************************************************************************




--導出表結構
dbschema -t all -hd all -d hbhp_ryzgs1028 hbhp_ry_0330.sql
dbschema -t all -hd all -d hbhp_ywzgs1028 hbhp_yw_0330.sql

--導出表名(用戶表列表)
unload to hbhp_ry_0330_list.txt
select * from systables
where tabid > 99;  

unload to hbhp_yw_0330_list.txt
select * from systables
where tabid > 99; sql

相關文章
相關標籤/搜索