如何使用dbschema 工具卸出数据库的结构 <畲濾澁v?
例如: 珃??T?
1)导出数据库中所有的表结构到文件db.sql 剉缯m瀛孃?
$>dbschema -d your_database -t all db.sql q. $儡??
2)导出数据库中所有的存储过程到文件db.sql 壟貽堠^"?
$>dbschema -d your_database -f all db.sql C€^B?E乊?
3)导出数据库中的所有对象(包含表,存储过程,触发器……)到文件db.sql x锔xkv?弝
$>dbschema -d your_database db.sql ?? $?
4)导出数据库中一个表的结构到文件db.sql ???d潁y
$>dbschema -d your_database_name -t your_table_name db.sql 珞椭?赎%p
5)导出一个存储过程定义到文件db.sql f8V蘰憇??
$>dbschema -d your_database_name -f your_procedure_name db.sql 剰o&罡睵
6)如果导出更多的表的信息(EXTENT...) 划-D緄
$>dbschema -d your_database_name -ss db.sql | R??籢?
7)导出数据库中对用户或角色的授权信息 淑y蚟O
$>dbschema -d your_database_name -p all X/???W
$>dbschema -d your_database_name -r all 舦>H?0?
8)导出数据库中的同义词 [筰P.vAV
$>dbschema -d your_database_name -s all 锒漦+:译?
//***************************************************************************** 崨h)溢D?
查询出一个数据库中所有的用户表 K^尙翉券d(
select * from systables o蟮牔滩詁
where tabid > 99 貀齾?餍蚠
// tabname 存放表的名字 N?肾{/貘
// tabtype 存放表的类型 T=表,E=外部表,V=视图...... ?fⅢ4a亾
//SQL参考指南 nrows 表中的行数 ncols 表中的列数 l馣V7尖?
//***************************************************************************** ?@ c跋T幗
onstat -d 看一看你的数据库空间是怎么分配的 ?褍铇?丽
04Nw烋?鹞
如果你在做dbimport的时候没有指定参数,那么会把整个数据库建在rootdbs上。 ??B废
如果数据库空间规划得比较细的话,应该有专用于装数据的dbspace。 莼髲`u儧?
//***************************************************************************** ?? ~??
导出数据 ? 6壥庎
unload to database.txt /v鎩,?傅
select ...... ,?Y€哸?4?
from ... ?QFE蜔?
where .... &檀逰帲G!
导入数据 t#閻嶢苌?
load from database *.txt insert into tablename 劯?礫??
//***************************************************************************** €?鱮ⅵOt
提交建表脚本 dbaccess db_das(数据库名) - < 建表脚本 生成所需要的表 e ? ?
dbaccess db_das db.sql m鷺鶽拉??
db.sql是用dbschema -d db_das -t all db.sql导出的 ? u寑渹
//***************************************************************************** 襜秞F ?g
同时生成dbspace 和 块 蒍N消&旳1?
}謐酦3
onspaces -c -d dbspaces1 -p D:/IFMXDATA/ol_chinaren5/ol_chinaren5_dat.000 -o 0 -s 200000 4惧?惽瘑
Jq1D?Q??
本例中,生成新的dbspace名为dbspace1及其初始块, ;J}??+f
分配在磁盘D:/IFMXDATA/ol_chinaren5/ol_chinaren5_dat.000中, 鸃H馃???
偏移量为o.初始长度为200MB(200000KB)。 ??樖J_爩
//***************************************************************************** ]溓[&f琤8u
用onspaces命令在dbspace中增加块 u巬郜凇腧?
?9? ?C
onspaces -a dbspace1 -p D:/IFMXDATA/ol_chinaren5/ol_chinaren5_dat.000 -o 200000 -s 50000 GkN-I殬
作用:在D:/IFMXDATA/ol_chinaren5/ol_chinaren5_dat.000 中为dbspace1增加50M空间 =釫r樕躖~
-o 偏移量 必须为现在已有空间的大小s b4矑K蛒
5B>?~ox=
//***************************************************************************** %%?坤q)-
为数据库空间,blob空间或sb空间分配NTFS文件空间 滶?F??R?
I捣#放xK阯
进入要存放文件空间的目录D:/IFMXDATA/ol_chinaren5 }娪{譚?
3j娪?~?
执行命令 copy nul my_chunk_dat.000 ?矻 _2嫷
就新建了一个my_chunk_dat.000 大小为0的文件 鄊爎斉覣
然后用onspaces 为空间扩展大小 及分配dbspace 檡B6Fz<
m?銌稉=nJ
//***************************************************************************** y虒 ?簖p?
删除dbspace fO毼.艢?
<]NC?#
onspaces -d dbspace1 ?抱LO忎
删除名为dbspace1的dbspace 空间 P/fZ晳
拂圀?,@镛
//***************************************************************************** k>庉
qKE%曏o?lt;?
dbimport 导入数据 素膉僢U豅7
橯>讥ば滴?
运行数据库服务器dos界面 输入 oninit 煉B@"6?蚬
在运行一个数据库服务器dos界面 S竝媪紮?
直接输入:dbexport -o d:/informix db_das >寛^h}@p
<保存的目录> 要导出的数据库 w今烳惉鯱?
或者:dbexport -c -o d:/informix db_das 俋TS籞9x?
导出完成 将提示 dbexport completed! 导出过程可能有点慢(等待) ^?7?埽.?
导出完成后将在 <保存的目录> 下产生一个文件夹 db_das.exp(导出的数据库名.exp) 铱圥塣嵅n
ユW猲hz?
导入数据库 7l鉨??
输入:dbimport -c -i d:/informix db_das ┻y1!崬M瓚
<db_das.exp所在的目录> 导入的数据库名 蝕旵萐?*
或者:dbimport -c -X -i d:/informix/temp db_das -d practice b)?'琝6 ?
-c 指示dbimport完成导入, 即使它遇到某些非致命错误 ?窶ip帷甗
-X 识别字符字段中的hex二进制数据 鬟P▍峔l
-i 指定磁盘上database.exp目录的完整路径名,目录名应该与数据库名相同 敹G裴F嗄繈
-d 指定创建数据库的数据空间 υg[飝蔅W
?靮??籯
将数据库改名 先更改.exp目录名称,在更改.sql模式文件名称 :怽垃?xh?
目录名称必须和模式文件名称相同 G顣棬?2
K3a躛`?
导入完成 会有提示! /裟?w蠕?
例如: 珃??T?
1)导出数据库中所有的表结构到文件db.sql 剉缯m瀛孃?
$>dbschema -d your_database -t all db.sql q. $儡??
2)导出数据库中所有的存储过程到文件db.sql 壟貽堠^"?
$>dbschema -d your_database -f all db.sql C€^B?E乊?
3)导出数据库中的所有对象(包含表,存储过程,触发器……)到文件db.sql x锔xkv?弝
$>dbschema -d your_database db.sql ?? $?
4)导出数据库中一个表的结构到文件db.sql ???d潁y
$>dbschema -d your_database_name -t your_table_name db.sql 珞椭?赎%p
5)导出一个存储过程定义到文件db.sql f8V蘰憇??
$>dbschema -d your_database_name -f your_procedure_name db.sql 剰o&罡睵
6)如果导出更多的表的信息(EXTENT...) 划-D緄
$>dbschema -d your_database_name -ss db.sql | R??籢?
7)导出数据库中对用户或角色的授权信息 淑y蚟O
$>dbschema -d your_database_name -p all X/???W
$>dbschema -d your_database_name -r all 舦>H?0?
8)导出数据库中的同义词 [筰P.vAV
$>dbschema -d your_database_name -s all 锒漦+:译?
//***************************************************************************** 崨h)溢D?
查询出一个数据库中所有的用户表 K^尙翉券d(
select * from systables o蟮牔滩詁
where tabid > 99 貀齾?餍蚠
// tabname 存放表的名字 N?肾{/貘
// tabtype 存放表的类型 T=表,E=外部表,V=视图...... ?fⅢ4a亾
//SQL参考指南 nrows 表中的行数 ncols 表中的列数 l馣V7尖?
//***************************************************************************** ?@ c跋T幗
onstat -d 看一看你的数据库空间是怎么分配的 ?褍铇?丽
04Nw烋?鹞
如果你在做dbimport的时候没有指定参数,那么会把整个数据库建在rootdbs上。 ??B废
如果数据库空间规划得比较细的话,应该有专用于装数据的dbspace。 莼髲`u儧?
//***************************************************************************** ?? ~??
导出数据 ? 6壥庎
unload to database.txt /v鎩,?傅
select ...... ,?Y€哸?4?
from ... ?QFE蜔?
where .... &檀逰帲G!
导入数据 t#閻嶢苌?
load from database *.txt insert into tablename 劯?礫??
//***************************************************************************** €?鱮ⅵOt
提交建表脚本 dbaccess db_das(数据库名) - < 建表脚本 生成所需要的表 e ? ?
dbaccess db_das db.sql m鷺鶽拉??
db.sql是用dbschema -d db_das -t all db.sql导出的 ? u寑渹
//***************************************************************************** 襜秞F ?g
同时生成dbspace 和 块 蒍N消&旳1?
}謐酦3
onspaces -c -d dbspaces1 -p D:/IFMXDATA/ol_chinaren5/ol_chinaren5_dat.000 -o 0 -s 200000 4惧?惽瘑
Jq1D?Q??
本例中,生成新的dbspace名为dbspace1及其初始块, ;J}??+f
分配在磁盘D:/IFMXDATA/ol_chinaren5/ol_chinaren5_dat.000中, 鸃H馃???
偏移量为o.初始长度为200MB(200000KB)。 ??樖J_爩
//***************************************************************************** ]溓[&f琤8u
用onspaces命令在dbspace中增加块 u巬郜凇腧?
?9? ?C
onspaces -a dbspace1 -p D:/IFMXDATA/ol_chinaren5/ol_chinaren5_dat.000 -o 200000 -s 50000 GkN-I殬
作用:在D:/IFMXDATA/ol_chinaren5/ol_chinaren5_dat.000 中为dbspace1增加50M空间 =釫r樕躖~
-o 偏移量 必须为现在已有空间的大小s b4矑K蛒
5B>?~ox=
//***************************************************************************** %%?坤q)-
为数据库空间,blob空间或sb空间分配NTFS文件空间 滶?F??R?
I捣#放xK阯
进入要存放文件空间的目录D:/IFMXDATA/ol_chinaren5 }娪{譚?
3j娪?~?
执行命令 copy nul my_chunk_dat.000 ?矻 _2嫷
就新建了一个my_chunk_dat.000 大小为0的文件 鄊爎斉覣
然后用onspaces 为空间扩展大小 及分配dbspace 檡B6Fz<
m?銌稉=nJ
//***************************************************************************** y虒 ?簖p?
删除dbspace fO毼.艢?
<]NC?#
onspaces -d dbspace1 ?抱LO忎
删除名为dbspace1的dbspace 空间 P/fZ晳
拂圀?,@镛
//***************************************************************************** k>庉
qKE%曏o?lt;?
dbimport 导入数据 素膉僢U豅7
橯>讥ば滴?
运行数据库服务器dos界面 输入 oninit 煉B@"6?蚬
在运行一个数据库服务器dos界面 S竝媪紮?
直接输入:dbexport -o d:/informix db_das >寛^h}@p
<保存的目录> 要导出的数据库 w今烳惉鯱?
或者:dbexport -c -o d:/informix db_das 俋TS籞9x?
导出完成 将提示 dbexport completed! 导出过程可能有点慢(等待) ^?7?埽.?
导出完成后将在 <保存的目录> 下产生一个文件夹 db_das.exp(导出的数据库名.exp) 铱圥塣嵅n
ユW猲hz?
导入数据库 7l鉨??
输入:dbimport -c -i d:/informix db_das ┻y1!崬M瓚
<db_das.exp所在的目录> 导入的数据库名 蝕旵萐?*
或者:dbimport -c -X -i d:/informix/temp db_das -d practice b)?'琝6 ?
-c 指示dbimport完成导入, 即使它遇到某些非致命错误 ?窶ip帷甗
-X 识别字符字段中的hex二进制数据 鬟P▍峔l
-i 指定磁盘上database.exp目录的完整路径名,目录名应该与数据库名相同 敹G裴F嗄繈
-d 指定创建数据库的数据空间 υg[飝蔅W
?靮??籯
将数据库改名 先更改.exp目录名称,在更改.sql模式文件名称 :怽垃?xh?
目录名称必须和模式文件名称相同 G顣棬?2
K3a躛`?
导入完成 会有提示! /裟?w蠕?
本文介绍了如何使用dbschema工具来导出数据库的各种结构,包括表、存储过程、触发器等,并提供了详细的命令示例。此外,还介绍了如何通过onspaces命令管理和调整数据库空间。

1749

被折叠的 条评论
为什么被折叠?



