业精于勤,荒于嬉
全部博文(763)
分类: DB2/Informix
2008-05-12 11:15:03
如何使用dbschema 工具卸出数据库的结构
例如:
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 -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
或者:dbimport -c -X -i d:\informix\temp db_das -d practice
-c 指示dbimport完成导入, 即使它遇到某些非致命错误
-X 识别字符字段中的hex二进制数据
-i 指定磁盘上database.exp目录的完整路径名,目录名应该与数据库名相同
-d 指定创建数据库的数据空间
将数据库改名 先更改.exp目录名称,在更改.sql模式文件名称
目录名称必须和模式文件名称相同
导入完成 会有提示!
//*****************************************************************************