最新Oracle数据库导入导出命令总结

时间:2025-10-17 10:25:28 赛赛 Oracle认证 我要投稿
  • 相关推荐

2025最新Oracle数据库导入导出命令总结

  总结是对某一特定时间段内的学习和工作生活等表现情况加以回顾和分析的一种书面材料,它可以帮助我们总结以往思想,发扬成绩,让我们好好写一份总结吧。我们该怎么写总结呢?下面是小编收集整理的2025最新Oracle数据库导入导出命令总结,欢迎阅读与收藏。

2025最新Oracle数据库导入导出命令总结

  2025最新Oracle数据库导入导出命令

  Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。利用这个功能我们可以从生产库中导出数据库,再导入数据库到测试库中。

  执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行是由于在oracle中,安装目录\ora9i\bin被设置为全局路径(也可直接在系统环境变量中设置),该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。

  下面是导入导出的实例。

  数据导出:

  1 将数据库zxcc完全导出,用户名kf 密码zx 导出到D:\zxcc.dmp中

  exp kf/zx@zxcc file=d:\zxcc.dmp full=y

  full=y 表示全库导出。full总共有2个可选项yes(y)/no(n),缺省情况下full=no,这时只会将该用户下的对象导出。

  2 将数据库zxcc中kf用户与cc用户的表导出

  exp kf/zx@zxcc file=d:\zxcc_ur.dmp owner=(kf,cc)

  full方式可以备份所有用户的数据库对象,包括表空间、用户信息等,owner=XX只能备份指定用户的对象,其他用户下的就不备份了,EXP中full=y和owner=XX是不能同时使用的。

  3 将数据库zxcc中的表kf_operator、kf_role导出

  exp kf/zx@zxcc file= d:\zxcc_tb.dmp tables=(kf_operator,kf_role)

  tables=xx 表示备份相关表,不能同时和owner、full使用。

  4 将数据库中的表kf_operator中的字段oper_id以"00"打头的数据导出

  exp kf/zx@zxcc file=d:\zxcc_t.dmp tables=(kf_operator) query=\" where oper_id like 00%\"

  query主要是导出合适条件的数据。使用该参数时,需要注意对所有操作系统保留字符都要使用转义符号。若有括号()也需要转义:

  query=\"where dt=to_date\(\2007-09-22\,\yyyy-mm-dd\\)\" 。

  如果遇到条件比较繁琐的语句,频繁的转义操作不仅费时,还很容易出错。我们可以使用exp或expdp的PARFILE参数避免query内容的繁琐转义问题。

  例:

  oracle DBALNP01 > cat > zxcc.par

  tables=kf_operator

  file=zxcc.dmp

  query="where dt_time=to_date(2010-06-25,yyyy-mm-dd)"

  这时就可以尽情的再双引号中写条件语句了。

  上面是常用的导出,对于比较大的数据库,我们可以对导出文件进行压缩处理,可用winzip把dmp文件进行压缩。

  也可以在上面命令后面加上 compress=y 来实现。

  数据的导入:

  1、将D:\zxcc.dmp 中的数据导入 zxcc数据库中。

  imp kf/zx@zxcc file=D:\zxcc.dmp

  导数据得时候,有可能报错。为什么?有以下主要的原因:

  A. 导入的对象(表,视图,方法等)原本不属于当前连接的用户的

  B. 导入的对象在该数据库的指定用户下已经存在

  C. 导入的对象的原本用户不在这个数据库里

  对于这三个问题的处理方法如下:

  a/c、所有对象全部导入到指定的账户下:

  imp kf_new/zx@zxcc_new file=d:\zxcc.dmp fromuser=kf touser=kf_new

  其中fromuser=kf为.dmp文件里的对象的原先的owner, touser=kf_new 为作为导入的对象的新的Owner.

  b、忽略/插入数据:

  imp kf_new/zx@zxcc_new file= d:\zxcc.dmp ignore=y

  其中ignore=y告诉imp.exe把数据直接插入到相应对象(并且如果导入的对象里面有其他的对象,如约束,索引等,会在数据插入后被创建)。

  2、将d:\zxcc_tb.dmp中的表tb_operator 导入

  imp kf/zx@zxcc file=d:\zxcc_tb.dmp tables=(tb_operator)

  忽略加载约束

  有时候导数据进来的时候,我们不需要把它的约束,比如一些外键约束等都导进来,可以加上参数constraints=N

  不加载索引(比如唯一性的索引),可以加上参数indexs=N

  只加载结构,不加载数据,如果只要表的结构等定义(约束,触发器),而不要里面的数据,可以加上参数rows=N

  对于上述操作登陆操作的用户需是管理员,如果不是管理员,而是普通用户,那么这个用户必须有创建删除对象的权利,对象可能包括表,视图,方法,存储过程等等常见的对象。为什么“可能”包括?因为这个视导入导出的时候是否涉及相关类型的对象而定。

  Imp kf/zx@zxcc_new file=d:\zxcc.dmp fromuser=kf touser=kf_new ignore=y

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

  注意:

  (1)、操作者要有足够的权限,权限不够会有提示。

  (2)、数据库链接正常,可以用tnsping zxcc 来检测数据库zxcc能否连上。

  (3)、导入/导出数据库时注意字符集。可能会出现导出/导入时数据库字符集不一致而报错。

  oracle数据库其他常用命令:

  1、给用户增加导入数据权限的操作

  第一,启动sqlpuls

  第二,以管理员(DBA)用户登陆

  第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)

  第四,>grant create user , drop user , alter user , create any view , drop any view , exp_full_database , imp_full_database , dba , resource , create session to 用户名字;

  第五, 运行cmd进入dmp文件所在的目录,

  imp userid=管理员用户名/密码 full=y file= filename.dmp

  或者 imp userid=管理员用户名/密码 full=y file=filename.dmp

  2、Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的

  先建立.par文件()

  然后,使用时命令如下:imp parfile=/filepath/import9.par

  例 import9.par 内容如下:

  FROMUSER=user

  TOUSER=user_new (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)

  ROWS=Y

  INDEXES=Y

  GRANTS=Y

  CONSTRAINTS=Y

  BUFFER=409600

  file==/filepath/xxxx.dmp

  log==/filepath/import_log.log

  oracle数据库体系架构

  oracle数据库由实例、数据库组成:

  数据库由数据文件(包含oracle 数据、索引、表结构等数据)、控制文件(包括每个表的操作信息)、日志文件(数据操作sql语句)、参数文件、口令文件、日志归档文件(归档模式下)(服务器崩溃、硬盘损坏情况下,通过日志恢复时用)

  实例由 内存结构(memory strutct) 和 后台进程(background processor)组成。

  内存结构组成:

  PGA: Processor Global Area 程序全局区 ,每一个客户端接入到oracle 服务器都有一个PGA,用于保存该客户单的相关信息

  SGA: System Global Area 系统全局区,主要是给oracle实例使用,包括 shared pool 、 data buffer area , redo log buffer .

  共享池(shared pool):

  包括library cache 、data directory cache 组成,其中 library cache 主要保存最近的sql 检查、编译、执行计划, 下次有同样语句过来的时候,可以重用这些,避免重复的检查编译执行计划。 data directory cache 主要保存数据库数据表的字段定义、索引数据等, shared pool 的大小直接影响到数据库的性能。

  data buffer area : 主要保存用户对数据的修改,查询操作。该内存区域的大小直接影响数据库的性能。

  redo log buffer area: 主要保存最近用户对数据库的操作记录,该大小对数据库性能没有多大影响

  oracle 必须要的后台进程包括:PMON 、 SMON 、 DBWR、 LOGWR、 CKPT、其他,每个作用如下:

  PMON 监控PGA的健康情况,释放已经死去的PGA,回收资源,管理PGA的生命周期

  SMON 监控SGA的健康情况,收集SGA碎片内存,监控实例健康情况

  DBWR 维护data buffer area 和物理表数据的一致性

  LGWR 维护redo log buffer area 内存数据和日志文件的一致性

  CKPT 设置检查点,在oracle 实例出现问题的时候,可以恢复到实例失败前的情况。

  oracle 内存结构有 块、区、段、表空间组成,块是oracle 在内存中的最小结构, 区、段、 表空间是oracle 依次向上的内存结构。快的太小数据管理麻烦,太大,数据碎片比较多。具体情况具体分析。

  表空间是oracle最大的逻辑单位,一个表空间只能属于一个数据库,一个数据库可以包含多个表空间,但默认包含一个system的表空间。创建表空间的语法:

  复制代码 代码如下:

  CREATE TABLESPACE name

  DATAFILE path [SIZE interger M|K]

  LOGFILE path

  [AUTOEXTEND ON | OFF]

【最新Oracle数据库导入导出命令总结】相关文章:

MySQL导出导入SQL文件命令方法10-17

ORACLE数据库基本命令08-26

oracle表空间启动数据库命令05-07

oracle数据库执行脚本常用命令06-15

CAD中怎么导入导出文本08-14

Adobe After Effects导入和导出操作06-17

Oracle数据库SQLPLUS介绍10-09

Oracle数据库SELECT语句10-25

Oracle数据库的基本介绍09-04