网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.LILO可以装在软盘上.
.教你如何使用 J2ME 实现移动支付.
.修改oracle的数据文件.
.新的最优化参数缩短反应时间.
.ORACLE大数据类型的操作之一CLOB.
.Oracle中自动存储管理技术原理及.
.[Oracle]Redo log日志组故障分析.
.关于block中行数据的存储与空间重.
.获取FMB中所有的代码(触发器和程.
.oracle修改计算机名后重启服务失.
.Oracle 对 Linux 的策略是什么?.
.oracle中的经常用到的包.
.关于Oracle和SQL存储调试和出错处.
.Oracle8 数据类型.
.oracle修改计算机名后重启服务失.
.Oracle中安全可靠的复制问题的说.
.OCIEnvCreate()多线程初始化的模.
.Oracle数据库备份与恢复之日志备.
.Oracle数据库删除表中重复记录的.
.新手入门 介绍ORACLE的Copy命令.

Export/Import 使用技巧与常见错误

发表日期:2008-2-9



摘自:宏贝思


    EXPort 和 Import 是一对读写Oracle数据的工具. Export 将 Oracle 数据库中的数据输出到操作系统文件中, Import 把这些文件中的数据读到Oracle 数据库中. Export/Import可以用来完成以下工作: 数据归档, 数据库升级, 备份数据库, 把数据从一个数据库移到另一个数据库, 回收数据库存储碎片等等. 


   使用Export除了要保证磁盘或磁带上有足够的空间, 还必须执行expvew.sql和expvew.sql来创建Export使用的示图, 并创建EXP_FULL_DATABASE ROLE. 使用Export的用户应具有CREATE SESSION的权限, 若要Export其他用户的表还要有EXP_FULL_DATABASE ROLE.同样, 使用Import必须用catex.sql来创建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 <username/passWord> PARFILE = <filename> 

         Imp <username/password> PARFILE = <filename> 

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

         Exp <username/password> TABLES = (emp,dept) GRANTS = y 

         Imp <username/password> FROMUSER = scott TOUSER = test TABLES = (emp,dept) 

      交互式只要敲入Exp或Imp然后回答屏幕上的提问即可. 


 下面介绍一些EXPORT/IMPORT的使用技巧 

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

      Oracle 不答应直接改变表的拥有者, 利用Export/Import可以达到这一目的. 

      假设要把表 T 的拥有者User1改为User2,  具体步骤是: 

         - exp system/manager tables = User1.T 

         - imp system/manager fromuser = User1 touser = User2 tables = T 

         - drop table User1.T 

      

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

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

         - exp <user/passwd> tables = T 

         - imp <user/passwd> tables = T indexfile =  temp.sql 

         - drop table T 

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

         - 以表的所有者执行temp.sql 

         - imp <user/passwd> tables = T ignore = Y 


   - 只输出一个的表空间 

      通常数据库设计成用户若属于某个表空间, 那么这个用户创建的数据库对象也在该表空间内. 

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

         - 查看表空间内所有用户 

             spool owners 

            

             select owner 

             from dba_segments 

             where tablespace_name = '<TablespaceName>'; 

            

             spool off 

            

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

             spool objects 


             select owner, object_name, object_type 

             from  dba_objects 

             where owner = 'owner1' 

             or   owner = 'owner2' 

                  ... 

             or   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段, 从而避免上述现象.
上一篇:Oracle SQL的优化(5)---关于rownum的操作 人气:1087
下一篇:ERP performance tuning 第四天 人气:475
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐