`
pouyang
  • 浏览: 322870 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

数据库 数据库导入导出

阅读更多
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
服务器端数据库的用户名要与导到本地数据库用户名一致

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

数据库 数据库导入导出

功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。
  Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接 (通过net8 assistant中本地——>服务命名 添加正确的服务命名

  其实你可以想成是客户端与服务器端修了条路,然后数据就可以被拉过来了)这样你可以把数据导出到本地,虽然可能服务器离你很远。你同样可以把dmp文件从本地导入到远处的数据库服务器中。

  利用这个功能你可以构建俩个相同的数据库,一个用来测试,一个用来正式使用。

  执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于 在oracle 8i 中安装目录\ora81\BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。

  oracle用java编写,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE这俩个文件是被包装后的类文件。SQLPLUS.EXE调用EXP.EXE、IMP.EXE他们所包裹的类,完成导入导出功能。

  下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简单。

  数据导出:

  1 将数据库TEST完全导出,用户名gdoa 密码123 导出到D:\TEST_BK.dmp中
  exp gdoa/123@TEST file=d:\TEST_BK.dmp full=y
    或 exp gdoa/123@TEST file=d:\TEST_BK.dmp

  2 将数据库中gdoa用户与sys用户的表导出
  exp gdoa/123@TEST file=d:\TEST_BK.dmp owner=(gdoa,sys)

  3 将数据库中的表table1 、table2导出
  exp gdoa/123@TEST file=d:\TEST_BK.dmp tables=(table1,table2)

  4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
  exp gdoa/123@TEST file=d:\TEST_BK.dmp tables=(table1) query=\" where filed1 like '00%'\"

  上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。

  不过在上面命令后面 加上 compress=y  就可以了

  数据的导入1 将D:\TEST_BK.dmp 中的数据导入 TEST数据库中。

  imp gdoa/123@TEST file=d:\TEST_BK.dmp

  上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。

  在后面加上 ignore=y 就可以了。

  2 将d:\TEST_BK.dmp中的表table1 导入

  imp gdoa/123@TEST  file=d:\TEST_BK.dmp  tables=(table1)

  基本上上面的导入导出够用了。不少情况我是将表彻底删除,然后导入。

  注意:

  你要有足够的权限,权限不够它会提示你。

  数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。


导出 EXP USER/PASSWORD@ODBC FILE=C:\***.DMP ROWS=N //不保存数据;
导出 EXP USER/PASSWORD@ODBC FILE=C:\***.DMP //保存数据;
导出 EXP USER/PASSWORD@ODBC FILE=C:\***.DMP full=y //全部导出;

以前我们一般都是使用PL/SQL Developer来实现,但是PL/SQL Developer在导出、导入数据时有两个问题:
      1、要把表数据和对象(存储过程、视图)分开导出
      2、导出的视图如果有注释,那么在导入时常常会出错。

      其实,PL/SQL的导出、导入功能使用的是Oracle自带的工具:exp和imp,这两个工具的导出导入数据时提供了很多功能,PL/SQL 只是使用其中的一些功能。下面对它们简单介绍一下:

      1 exp/imp使用方法及实例
  
  exp/imp为一种数据库备份恢复工具也可以作为不同数据库之间传递数据的工具两个数据库所在的操作系统可以不同exp 可以将数据库数据导出为二进制文件imp 可以将导出的数据文件再导入到相同的数据库或不同的数据库
  
  数据库导出有四种模式full(全库导出), owner(用户导出), table(表导出), tablespace(表空间导出).
  
  full( 全库导出): 导出除ORDSYS,MDSYS,CTXSYS,ORDPLUGINS,LBACSYS 这些系统用户之外的所有用户的数据.
  
  owner( 用户导出): 导出某个或某些用户的所有权限和数据.
  
  tables( 表导出): 导出某些表(可以是不同用户的)的结构和数据.
  
  tablespace( 表空间导出):表空间导出数据.
  
  执行exp 有三种方法:交互式,命令行和参数文件
  
  交互式:直接输入exp 命令用户可以按照exp 提示的信息一步一步操作,比较简单.
  
  命令行:输入命令行exp username/password parameter=value.
  
  参数文件:输入命令行exp username/password parfile=filename exp 所需的参数从参数文件引入.
  
  参数是可以重复的优先级为命令行优于参数文件后面的参数值覆盖于前面的参数值.
  
  参数介绍
         详细的介绍可通过exp help=y或imp helpe=y来查看。下面只对一些常用的参数进行说明。
  
  buffer 缓冲区大小如果此值设为0 则一次只导入一条记录对数据量大的导出可以设置较大一般缺省值即可.
  
  file 导出的文件列表可以指定一个或多个文件名缺省扩展名为.dmp 缺省导出文件名为expdat.dmp.
  
  filesize exp 导出文件的最大字节数超出时从文件列表中获取下一个文件名,没有,则提示输入新的文件名.
  
  help 显示export 参数帮助信息
  
  inctype 增量备份的类型:complete(完全),cumulative(累积)和incremental (增量).
  
  只可以在全库导出模式下才可以做完全累积或增量导出累积导出只导出自上次累积导出或完全导出以来已经修改的表增量导出只导出自上次增量累积或完全导出以来已经修改的表完全导出将数据库中全部对象都导出不管是否以及何时被修改.
  
  log:日志文件,一般如果以命令行导入时,将log 设置上比较好可以看,到所有的导入信息,导入信息哪儿出错,导入了那些数据库对象.
  
  show(imp):只是用来显示备份数据文件的内容.
  
  full:为Y 时表示在全库方式下导出缺省为N.
  
  tables:导出的表列表可以指定一个或多个表名.
  
  fromuser(imp):可以将导出文件中的一个用户模式的数据对象导入为另一个用户模式的对象此参数表示导出文件中的用户模式.
  
  touser(imp):此参数表示导入到数据库中时使用的用户模式对象譬如使用全库或者用户模式导出caittmdba用户的所有对象到一个文件中导入时需要将用户模式名称改为caittmdba1此时fromuser 为caittmdba,touser 为caittmdba1

       导出、导入实例
     
      导出数据:
       D:\oracle\ora92\bin\exp userid=caittmdba/cait@YSDB_192.168.1.2 owner=caittmdba file=e:\%DATE%.dmp log=e:\exp.log
       通过该命令可以把caittmdba这个用户所属的所有数据、对象导出到一个文件中,导出的日志写在e:\exp.log文件中,连接Oracle的本地服务名为YSDB_192.168.1.2,导出的文件为e:\%DATE%.dmp,这个文件的文件名是当前的日期。如果把这个命令写成批处理文件,并放到计划任务中,就可以自动进行备份数据了。

      导入数据:
      D:\oracle\ora92\bin\imp userid=caittmdba/cait@YSDB_192.168.1.2 fromuser=caittmdba touser=caittmdba file=e:\data.dmp log=e:\imp.log

      注意事项

      在导出数据时常常会出现Oracle 942 错误,这个错误往往是在对Oracle进行了升级后才会出现,这是Oracle升级程序的一个Bug(Oracle的Bug和补丁一直以来都是满天飞,而且不成体系,文档和技术支持以少,这一点和MS比起来就差很远了。如果大家去看一看Oracle的发展经历相关的文章就知道,Oracle从开始就这样)。
      这个Bug只需要执行ORACLE_HOME/rdbms/admin/catpatch.sql 脚本就可以了,同时要注意调大java_pool_size 和shared_pool_size这两个参数的大小,不然会很花时间的。在用sysdba的身份登录进SQL Plus执行下面的命令:
         SQL>shutdown immediate;
         SQL>startup migrate;
         SQL>@?/rdbms/admin/catpatch.sql
      大约半个小时就可以执行完了。

分享到:
评论

相关推荐

    sql server 数据库导入导出方法

    SQL Server 数据库导入导出的方法 SQL Server 数据库导入导出是数据库管理员和开发者常用的操作,目的是将数据库备份到本地或网络存储设备中,以便在需要时恢复数据库或将数据库迁移到其他服务器上。下面将详细介绍...

    Oracle数据库导入导出工具

    1. **Oracle数据库导入导出的重要性** - 数据迁移:当需要将数据从一个Oracle实例迁移到另一个实例时,导入导出工具是关键。 - 数据备份:定期备份数据库以防止数据丢失,确保业务连续性。 - 数据恢复:在系统...

    MYSQL 数据库导入导出命令

    MYSQL 数据库导入导出命令 MySQL 数据库导入导出命令是数据库管理员和开发者经常使用的命令,用于将 MySQL 数据库导出到文件中,以便备份、还原或迁移到其他服务器。下面将详细介绍 MySQL 数据库导入导出的命令和...

    DB2数据库导入导出

    DB2 数据库导入导出 DB2 数据库导入导出的操作方法是指将用户的 DB2 数据库导出并导入到自己的 DB2 数据库上。由于 DB2 没有直接的数据库导出功能,因此需要导出表结构、表数据,然后在导入。 一、导出表结构 在 ...

    Excel导入导出数据库Excel批量导入导出数据库

    总之,Excel批量导入导出数据库是通过编程自动化数据管理的有效手段,尤其适用于需要频繁交换数据的场景。掌握这一技能能极大地提高工作效率,减少人为错误。通过Python的pandas和SQLAlchemy等库,我们可以轻松地...

    数据库数据的导入与导出

    通常,良好的数据库导入工具应能识别并自动转换不同的数据类型,以适应数据库表结构。 其次,工具只支持三种数据种类,这表明其灵活性较低。在实际应用中,数据库可能会包含各种各样的数据,如字符串、整数、布尔值...

    不同数据库间的导入导出

    首先,我们需要理解什么是数据库导入导出。数据库导入是指将数据从某种格式(如CSV、XML、JSON等)或另一个数据库导入到目标数据库中;导出则是相反的过程,即将数据从一个数据库中提取出来,保存为文件或其他可读...

    Visual C++源代码 132 如何批量导入导出数据库记录信息

    Visual C++源代码 132 如何批量导入导出数据库记录信息Visual C++源代码 132 如何批量导入导出数据库记录信息Visual C++源代码 132 如何批量导入导出数据库记录信息Visual C++源代码 132 如何批量导入导出数据库记录...

    linux下数据库dump的导入导出

    总结,Linux下的数据库导入导出涉及到不同的数据库管理系统,每个系统都有其特定的工具和语法。了解并熟练掌握这些操作对于维护数据库的安全性和稳定性至关重要。通过合理规划和执行备份策略,可以有效地防止数据...

    数据库数据的导入导出和数据库备份和恢复.pdf

    根据提供的文件信息,我们将探讨数据库数据的导入导出、数据库备份与恢复相关的知识点。 在数据库管理中,数据的导入导出是一个重要的操作,它允许我们将数据从一个数据库系统转移到另一个系统,或者在不同的格式...

    Oracle 数据库导出导入命令及详解

    **二、Oracle数据库导入命令(IMP)** 1. **USERID参数** 和导出命令类似,`USERID=demo2/demopwd@orcl`用于指定导入数据时连接到数据库的凭证。这里的`demo2`和`demopwd`是新的用户名和密码,`orcl`仍然是服务名...

    gbase8s 数据库数据的导入和导出.doc

    通过像外部表插入数据或者从外部表查询数据的方式,实现数据导入导出机制。创建外部表的语法如下: Create external table <tabname> Using (datafiles (datafiles), 其中 Column_options 用于定义外部表的字段...

    sqlserver2005导入导出数据库

    ### SQL Server 2005 数据库导入导出方法详解 在使用SQL Server 2005的过程中,很多用户会遇到需要对数据库进行备份、还原、导入或导出的情况。尽管SQL Server Management Studio(SSMS)提供了这些功能,但在实际...

    数据库的导入和导出

    ### 数据库的导入和导出:Oracle操作指南 ...通过以上介绍,我们可以了解到Oracle数据库的导入导出操作及其相关技巧,这对于维护和管理Oracle数据库是非常重要的。希望本文能对读者在实际工作中有所帮助。

    asp将EXCEL导入导出数据库原程序

    这个"asp将EXCEL导入导出数据库原程序"提供了一个解决方案,能够方便地将Excel中的数据存入MSSQL数据库,同时也能将数据库中的数据导出到Excel文件。 首先,我们需要了解如何使用ASP连接MSSQL数据库。通常,这涉及...

    数据库导入导出工具(可以导出ORACLE)

    数据库导入导出是数据库管理中的重要环节,尤其在数据迁移、备份、恢复和系统整合时显得尤为关键。这里我们主要讨论的是针对ORACLE数据库的导入导出工具,它能够帮助用户方便地处理大量数据的传输。 Oracle数据库...

    mariadb导入导出mysql数据库的脚本:无需手动创建数据库,直接新建数据库+导入表结构+插入记录

    标题中的“mariadb导入导出mysql数据库的脚本”是指使用特定的脚本来实现MySQL或MariaDB数据库的导入和导出操作。这种脚本的优点在于可以自动化处理数据库的创建、表结构导入以及数据记录的插入,从而节省手动操作的...

    数据库导入与导出源码(包括导出任何形式)

    本资源“数据库导入与导出源码(包括导出任何形式)”提供了处理多种类型数据库导入导出的源代码,如SQL、Access以及XML等。这些功能对于开发人员来说极其有价值,因为它们能确保数据的兼容性和可移植性。 首先,让...

    Oracle数据库导入导出(备份与恢复).docx

    Oracle数据库导入导出命令(备份与恢复) Oracle数据库是目前最流行的RELATIONAL DATABASE MANAGEMENT SYSTEM(关系数据库管理系统),它提供了强大且灵活的数据存储和管理功能。为了确保数据的安全和可靠性,Oracle...

    mysql数据库的导入导出

    除了数据库导入导出的基本操作,MySQL中还提供了SQL语法用于修改表结构。比如,使用ALTER TABLE语句可以修改表的字段类型、字段名称以及字段是否允许为空。如果要改变字段名称,可以使用CHANGE关键字;如果仅需要...

Global site tag (gtag.js) - Google Analytics