Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103121151
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: DB2/Informix

2008-03-28 16:10:21



如何使用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模式文件名称 
目录名称必须和模式文件名称相同

导入完成 会有提示!
阅读(594) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~