ExportImport使用技巧与常见错误

发布 2019-08-03 02:42:15 阅读 3766

export/import 使用技巧与常见错误。

export 和 import 是一对读写oracle数据的工具。 export 将 oracle 数据库中的数据输出到操作系统文件中, import 把这些文件中的数据读到oracle 数据库中。 export/import可以用来完成以下工作:

数据归档, 数据库升级, 备份数据库, 把数据从一个数据库移到另一个数据库, **数据库存储碎片等等。

使用export除了要保证磁盘或磁带上有足够的空间, 还必须执行和来创建export使用的示图, 并创建exp_full_database role. 使用export的用户应具有create session的权限, 若要export其他用户的表还要有exp_full_database role.同样, 使用import必须用来创建imp_full_database role.

使用import的用户应具有create session的权限。 import只能读入用export创建的文件。 如果该文件是全库export, 使用import的用户还要有imp_full_database role.

export/import有三个级别: 表级, 用户级和全数据库级。

表级允许export/import指定的表而不涉及其他数据库对象。 用户级export/import只针对属于指定用户的全部数据库对象。 只有拥有exp_full_database/imp_full_database role 的用户才能使用全数据库级的export/import.

有三种方式执行export/import: 参数文件方式, 命令行方式和交互式。

使用参数文件是一种比较好的方式, 格式为:

exp parfile =

imp parfile =

命令行方式是指在命令行中指定参数:

exp tables = emp,dept) grants = y

imp fromuser = scott touser = test tables = emp,dept)

交互式只要敲入exp或imp然后回答屏幕上的提问即可。

下面介绍一些export/import的使用技巧

把数据库对象从一个用户移到另一个用户

oracle 不允许直接改变表的拥有者, 利用export/import可以达到这一目的。

假设要把表 t 的拥有者user1改为user2, 具体步骤是:

exp system/manager tables =

imp system/manager fromuser = user1 touser = user2 tables = t

drop table

把数据库对象从一个表空间移到另一个表空间

建表时可以指定表空间, 表空间一经确定就部能随意改变。 若要表 t 从表空间 tbs1移到表空间 tbs2, 就要采用以下方法:

exp tables = t

imp tables = t indexfile =

drop table t

编辑 只保留所需的建表命令并指定表空间为tbs2

以表的所有者执行

imp tables = t ignore = y

只输出一个的表空间

通常数据库设计成用户若属于某个表空间。

那么这个用户创建的数据库对象也在该表空间内。

export某个表空间可用如下方法:

查看表空间内所有用户

spool owners

select owner

from dba_segments

where tablespace_name =

spool off

查看表空间内所有数据库对象

spool objects

select owner, object_name, object_type

from dba_objects

where owner = owner1'

or owner = owner2or owner = ownern';

spool off

作表级export从exp文件中提取创建数据库对象的命令在import时使用 'indexfile = filename', import把创建数据库对象的命令输出到指定的文件中, 编辑后运行这个文件就能建立数据库对象下面介绍export/import 使用中几个常见的问题和解决办法

export/import 使用不同的字符集

export文件中包含着字符信息。 如过输入/输出都使用担字节字符集, 如ebcdic或us7ascii, 输入时将自动进行字符集转换。 转换过程中, 若输出文件中含有的目标字符集中不能匹配的字符会自动设成缺省字符。

对于多字节字符集, 如zhs16cgb231280, 通常不能自动转换, 只有在字符串长度不变的情况下才能自动转换空间不够 --碎片问题有些时候, 即使数据库仍有足够的空间, 使用import时却出空间不够的错误。 出现这种现象通常是由于数据库中存在碎片, 即有很多小的不连续的空闲空间。 解决办法是先将数据库全库export(full=y), shutdown数据库, 重新建库(create database)后用import full=y恢复数据rollback段不够

export/import使用过程中, 如果数据量很大会出现'rollback段不够'的错误。 这时要建一个足够大的rollback段, 使它online而其他rollback段offline. 这样, export/import使用这个大rollback段, 从而避免上述现象。

劳技课教学计划

劳技课教学工作计划。2013 2014学年度第一学期 一 本学期劳技课的教学目的。1 使学生掌握一些简单的劳动方法。2 培养学生动手操作能力,自立能力和耐心细致的高尚品质。3 提高学生对劳动生活的学习态度和兴趣。4 培养学生爱科学,用科学的创新精神。二 本学期教学工作安排。1 培养学生热爱劳动的好习...

XX公司技经专责工作标准

第一章总则。第一条本标准规定了xx公司技经岗位职责 基本技能 工作内容与要求 检查与考核。第二条本标准适用于公司技经专责岗位。第二章岗位职责。第三条负责公司技经管理工作。熟悉建设项目估算 概算 预算 结算 决算等各阶段投资水平和规模。第四条负责分析投资结构,掌握投资进度,控制投资成本。第五条负责工程...

医 药 技人员紧急替代程序及方案

xx科 医 药 技 人员紧急替代程序及方案。1 白天 如科室因工作繁忙而人员不足,或当班医务人员因意外情况不能坚持完成工作时,由科室下一级医师替代完成 若后者没有能力完成该诊疗操作,则需向科主任报告,请求派相应的人员替代,如有必要可报告医务科或人力资源部,予以协调解决。2 夜间及节假日 当遇到人员不...