热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Oralceexp命令简单使用

简单的介绍下exp怎么使用,文章略简单,数据库版本是10g,导出错误解决方法在文章最后,首先带上参考链接:http:www.

     简单的介绍下exp怎么使用,文章略简单,数据库版本是10g,导出错误解决方法在文章最后,首先带上参考链接:

    

http://www.cnblogs.com/zhangzhifeng/archive/2011/08/04/2126935.html
http://blog.csdn.net/oscar999/article/details/7468153
http://daisybabay2012.blog.51cto.com/5007509/853730
http://www.cnblogs.com/lanzi/archive/2011/10/26/2225665.html

    先新建一个普通用户测试用:

   

create user exp_test identified by test;

    赋权:

   

grant resource,connect to exp_test;

    查看系统所有用户:

   

select username from dba_users;

    查看用户权限:

   

select privilege from dba_sys_privs where grantee='EXP_TEST'
union
select privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='EXP_TEST' );

    查看当前登录用户的缺省表空间

   

select username,default_tablespace from user_users;

    查看用户使用的缺省表空间名称:

   

select username,default_tablespace from dba_users where username='EXP_TEST'

    删除用户:

   

drop user exp_test cascade;

    删除的时候遇到一个问题:

   

    解决方法见博文:

    http://794448033.blog.51cto.com/1541449/1030057
    http://blog.csdn.net/tianlesoftware/article/details/4787074

  

    下面开始介绍exp使用:

     查看exp怎么使用:

     cmd命令行界面下:

    

exp help=y

   

 

     将数据库XE完全导出:

    

exp exp_test/test@xe file=f:/saveFile/tmp/fullxe.dump full=y

   

    可知普通用户不能导出整个表:

    使用dba身份的system导出整个数据库:

   

exp system/root@xe file=f:/saveFile/tmp/fullxe.dump full=y

   

    导出速度有点慢,导出文件用nodepad++打开如下:

   

     第一行是数据库版本号。

     导出过程中发现Sys下面好多函数报错,解决方法在文章最后。

    

     将数据库中tmd用户用户的表导出

    

exp system/root@xe file=f:/saveFile/tmp/tmdtables.dump owner=tmd

  

    导出命令不要在后面添加分号:

   

    如果想导出tmd用户的emp表

    exp system/root@xe file=f:/saveFile/tmp/tmemptable.dump owner=tmd tables=emp log=f:/saveFile/tmp/exp_out.log

    这么写是错误的。

    

     正确的写法是:

    

exp system/root@xe file=f:/saveFile/tmp/tmemptable.dump tables=tmd.emp log=f:/saveFile/tmp/exp_out.log

    导出多个不同用户的表如下:

   

exp system/root@xe file=f:/saveFile/tmp/tmemptable.dump tables=(tmd.emp,exp_test.emp) log=f:/saveFile/tmp/exp_out.log

    将数据库中用户tmd的表emp中的字段deptno=10的数据导出:

   

exp system/root@xe file=f:/saveFile/tmp/expquery.dump tables=tmd.emp query=\" where deptno='10'\"

   

    压缩使用compress=y,带日志log=filepath.log

   

exp system/root@xe file=f:/saveFile/tmp/expquery.dump tables=tmd.emp compress=y

    可以发现,导出没有指定表时候,存储过程或者函数都会一起导出,如果不想要数据,只想要建表语句,可以这样写:

   

exp system/root@xe file=f:/saveFile/tmp/expemp.dump tables=tmd.emp rows=n

    导出结果可以看到触发器也一起导出了,不想要触发器,可以这样:

   

exp system/root@xe file=f:/saveFile/tmp/expemp_no_trigger.dump tables=tmd.emp rows=n triggers=n

    如果我只想导出用户tmd的所有表,不要存储过程和函数,不要数据,具体办法是在tables=()里面把要导出的表写一遍,如:

   

exp system/root@xe file=f:/saveFile/tmp/tmemptable.dump tables=(tmd.emp,--这里面把tmd所有表写一遍) rows=n triggers=n

    举个例子:

   

exp system/root@xe file=f:/saveFile/tmp/tmemptable.dump tables=(tmd.XMLTYPE_TABLE,tmd.FILTER_PARAM_NAME,tmd.EXCEPTION_URL_LOG,tmd.FILTER_WHITE_LIST,tmd.TEST_LAG,tmd.VALID_ORDERS,tmd.BIG_ORDERS,tmd.REJECTED_ORDERS,tmd.TB_EMP,tmd.TB_A,tmd.TB_B,tmd.QRTZ_JOB_DETAILS,tmd.QRTZ_TRIGGERS,tmd.QRTZ_SIMPLE_TRIGGERS,tmd.QRTZ_CRON_TRIGGERS,tmd.QRTZ_FIRED_TRIGGERS,tmd.C3P0TESTTABLE,tmd.SYS_ADMIN,tmd.TBL_USER,tmd.T_PZ,tmd.TMP_MICHAEL,tmd.T_BLOB_TEST,tmd.TEST_USERS,tmd.EMP,tmd.DEPT,tmd.T_USER,tmd.PAGE_USERS,tmd.ACCOUNT,tmd.ANIMUS_PARAM_INFO,tmd.ANIMUS_URL_LOG,tmd.EXCEPTION_DIM_INFO,tmd.FILTER_INFO,tmd.PICK_PARAM_INFO,tmd.SYS_KEY_INFO,tmd.PICK_URL_LOG,tmd.PLUG_SAFE_BSDIM,tmd.PLUG_SAFE_BSLOG,tmd.PLUG_SAFE_BSRULE,tmd.SYS_FILTER_MAP,tmd.SYS_FILTER_PROP_MAP,tmd.SYS_INFO,tmd.T_TEST_USER,tmd.T_STR_TEST,tmd.TSQL_ARTICLE,tmd.USERINFO,tmd.USER_TEST,tmd.G_GROUP,tmd.G_STUDENT,tmd.TEST_INSERT,tmd.H_USER,tmd.T_STU,tmd.T_TEST,tmd.T_CLASS,tmd.TMYSQL_SCHEDULER_TEST,tmd.TMYSQL_USER_4TEST,tmd.TSQL_USER_BASIC_INFO,tmd.BXXX,tmd.T_COMPANY,tmd.TSQL_DECODE_TEST,tmd.SYS_AUTHORITIES,tmd.SYS_AUTHORITIES_RESOURCES,tmd.SYS_RESOURCES,tmd.SYS_ROLES,tmd.SYS_ROLES_AUTHORITIES,tmd.SYS_USERS,tmd.SYS_USERS_ROLES,tmd.T_ENUM_USER,tmd.TEST_DBMS,tmd.TMENU,tmd.TUSER,tmd.TEST_SQLLDR_USERS,tmd.T_PERSON,tmd.T_STUDENT_TEST,tmd.TORACLE_TEST_LOADDATA,tmd.TB2) rows=n triggers=n

    可以使用sql查出当前登录用户所有的表:

   

SELECT max(substr(sys_connect_by_path('tmd.' || table_name, ','), 2))FROM (SELECT table_name, rownum rn FROM user_tables)START WITH rn = 1
CONNECT BY rn = rownum;

    dba可以这样写:

   

SELECT max(substr(sys_connect_by_path('tmd.' || table_name, ','), 2))FROM (select table_name,rownum rn from dba_tables where owner='TMD')START WITH rn = 1
CONNECT BY rn = rownum;

    只导出数据不要建表语句,这个我也不知道。

    普通用户tmd使用exp时:

    导出用户tmd的表:

   

exp tmd/tmd@xe file=f:/saveFile/tmp/current_tables.dump owner=tmd

    普通用户导其他用户的表

   

exp exp_test/test@xe file=f:/saveFile/tmp/tmd_tables.dump owner=tmd rows=n

   

    可见普通用户不能导出其他用户的表,不能导出整个数据库,其他的和上面例子一样。

    如导出用户tmd所有表

   

exp tmd/tmd@xe file=f:/saveFile/tmp/currenttables.dump tables=(XMLTYPE_TABLE,FILTER_PARAM_NAME,EXCEPTION_URL_LOG,FILTER_WHITE_LIST,TEST_LAG,VALID_ORDERS,BIG_ORDERS,REJECTED_ORDERS,TB_EMP,TB_A,TB_B,QRTZ_JOB_DETAILS,QRTZ_TRIGGERS,QRTZ_SIMPLE_TRIGGERS,QRTZ_CRON_TRIGGERS,QRTZ_FIRED_TRIGGERS,C3P0TESTTABLE,SYS_ADMIN,TBL_USER,T_PZ,TMP_MICHAEL,T_BLOB_TEST,TEST_USERS,EMP,DEPT,T_USER,PAGE_USERS,ACCOUNT,ANIMUS_PARAM_INFO,ANIMUS_URL_LOG,EXCEPTION_DIM_INFO,FILTER_INFO,PICK_PARAM_INFO,SYS_KEY_INFO,PICK_URL_LOG,PLUG_SAFE_BSDIM,PLUG_SAFE_BSLOG,PLUG_SAFE_BSRULE,SYS_FILTER_MAP,SYS_FILTER_PROP_MAP,SYS_INFO,T_TEST_USER,T_STR_TEST,TSQL_ARTICLE,USERINFO,USER_TEST,G_GROUP,G_STUDENT,TEST_INSERT,H_USER,T_STU,T_TEST,T_CLASS,TMYSQL_SCHEDULER_TEST,TMYSQL_USER_4TEST,TSQL_USER_BASIC_INFO,BXXX,T_COMPANY,TSQL_DECODE_TEST,SYS_AUTHORITIES,SYS_AUTHORITIES_RESOURCES,SYS_RESOURCES,SYS_ROLES,SYS_ROLES_AUTHORITIES,SYS_USERS,SYS_USERS_ROLES,T_ENUM_USER,TEST_DBMS,TMENU,TUSER,TEST_SQLLDR_USERS,T_PERSON,T_STUDENT_TEST,TORACLE_TEST_LOADDATA,TB2) rows=n triggers=n

   

   -----------------------------------------------------关于导出过程中可能出现的错误----------------------------

    导出整个数据库时候,有很多sys报错,谷歌了下,找到了篇文章:

    http://www.dba-oracle.com/t_compile_pl_sql_procedures.htm

    上面有个脚本:

    

set heading off;
set feedback off;
set echo off;
Set lines 999;Spool f:/saveFile/tmp/run_invalid.sqlselect
'ALTER ' || OBJECT_TYPE || ' ' ||
OWNER || '.' || OBJECT_NAME || ' COMPILE;'
from
dba_objects
where
status = 'INVALID'
and
object_type in ('PACKAGE','FUNCTION','PROCEDURE')
;spool off;

    可以看到结果,老外也提供了一种方法:

    

Try to do it with catrep.sql.
You could also try to execute utlrp.sql and post the result.
Both as SYSDBA.

    但是我试了下,还是有很多错误,最后找到了这篇博客:

    http://blog.csdn.net/chensrao/article/details/6459687

    按他说的执行:

    

@D:\oracle\app\oracle\product\10.2.0\server\RDBMS\ADMIN\catalog.sql
@D:\oracle\app\oracle\product\10.2.0\server\RDBMS\ADMIN\catproc.sql

    再导出tmd数据的时候,出现错误:

   

    网上解决方法:

    http://wenwen.soso.com/z/q318771546.htm

    执行:

   

@D:\oracle\app\oracle\product\10.2.0\server\RDBMS\ADMIN\catmetx.sql

    现在可以导出用户tmd的表不报错。

   

    但是如果尝试导出整个数据库数据时候,还是报错,如下:

   

    这是最后时候才报错的,中间一直没出现错误,解决方法,

    http://wuhuizhong.iteye.com/blog/1932098

   

SQL> DELETE FROM SYS.EXPACT$2 WHERE FUNC_PACKAGE = 'DBMS_AQ_IMPORT_INTERNAL';已删除6行。

    再导出整个数据库:

    

exp system/root@xe file=f:/saveFile/tmp/
xedb.dump log=f:/saveFile/tmp/system_exp.log direct=y indexes=n rows=y CONSISTEN
T=y buffer=104857600 compress=n feedback=100000

    结果为:

   

     上面那个执行结果很快,但是导出文件只有300k,全库完全导出可以使用

    

exp system/root@xe file=f:/saveFile/tmp/
fullxe.dump full=y

    测试,结果为:

   

 

    最后2次导出的文件大小为:

   

 

    这里,我要想各位道歉,我在没有完全解决问题的情况下写博客,博客是快中午的时候写的,写的很急,出现问题后搜索了很久才找到答案,本人也是oracle的菜鸟,搜索到答案我就在文章后面加上一段,本文已经修改了3次,给各位造成麻烦了,下次我会确认有正确解决方案在写,谢谢大家。

    全文完。

 



推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 本文讲述了孙悟空写给白骨精的信件引发的思考和反省。孙悟空在信中对自己的行为进行了反思,认识到自己胡闹的行为并没有给他带来实际的收获。他也揭示了西天取经的真相,认为这是玉皇、菩萨设下的一场陷阱。他还提到了师傅的虚伪和对自己的实心话,以及自己作为师傅准备提拔的对象而被派下来锻炼的经历。他认为路上的九九八十一难也都是菩萨算计好的,唐僧并没有真正的危险。最后,他提到了观音菩萨在关键时刻的指导。这封信件引发了孙悟空对自己行为的思考和反省,对西天取经的目的和自己的角色有了更深入的认识。 ... [详细]
author-avatar
955单车小宏
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有