Home Database Mysql Tutorial Oracle imp exp命令详解

Oracle imp exp命令详解

Jun 07, 2016 pm 03:38 PM
exp oracle Order Detailed explanation

如何在oracle中导入dmp数据库文件? oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,

如何在oracle中导入dmp数据库文件? 

       oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把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 将数据库orcl(实例)完全导出(只有DBA才可以,普通用户不可以),用户名system 密码manager 导出到d:\daochu.dmp中  
       exp system/manager@orcl file=d:\daochu.dmp full=y 
   2 将数据库中system用户与sys用户的表导出  
       exp system/manager@orcl file=d:\daochu.dmp owner=(system,sys) 
   3 将数据库中的表inner_notify、notify_staff_relat导出   
      exp scott/tiger@orcl file= d:\test.dmp tables=(inner_notify,notify_staff_relat)  
   4 将数据库中的表table1中的字段filed1以"00"打头的数据导出  
      exp system/manager@orcl file=d:\daochu.dmp tables=(table1) query=\" where filed1 like 00%\"   

      上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。也可以在上面命令后面加上 compress=y 来实现。

 

       数据的导入 

       1 将d:\daochu.dmp 中的数据导入 test数据库中。  

       imp system/manager@test  file=d:\daochu.dmp  
       imp system/manager@test full=y  file= d:\data\newsmgnt.dmp ignore=y

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

在后面加上 ignore=y 就可以了。
 2 将d:\daochu.dmp中的表table1 导入 
       imp system/manager@test  file=d:\daochu.dmp  tables=(table1)

  
基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。 
注意: 操作者要有足够的权限,权限不够它会提示。 数据库时可以连上的。可以用tnsping test 来获得数据库test能否连上。

 

附录一: 
给用户增加导入数据权限的操作 
第一,启动sql*plus 
第二,以system/manager登陆 
第三,create user “用户名”  identified by “密码”

(如果已经创建过用户,这步可以省略) 
第四,grant create user,drop user,alter user ,create any view ,drop any view,exp_full_database,imp_full_database,dba,connect,resource,create session to “用户名字 ”
第五, 运行-cmd-进入dmp文件所在的目录,    

  imp userid=system/manager full=y file=*.dmp   

  或者 imp userid=system/manager full=y file=filename.dmp

 执行示例: f:\work\oracle_data\backup>imp userid=test/test full=y      file=inner_notify.dmp

 

 附录二: 
   oracle 不允许直接改变表的拥有者, 利用export/import可以达到这一目的. 
  先建立import9.par,  然后,使用时命令如下:imp parfile=/filepath/import9.par 
  例 import9.par 内容如下:  
   fromuser=tgpms               
   touser=tgpms2

(注:把表的拥有者由fromuser改为touser,fromuser和touser的用户可以不同)                 
   rows=y       
   indexes=y       
   grants=y       
   constraints=y       
   buffer=409600       
   file==/backup/ctgpc_20030623.dmp       
   log==/backup/import_20030623.log

 

附录三

EXP、IMP 命令详解
命令详解:

E:\>exp help=y

通过输入 EXP 命令和用户名/口令,您可以
在用户 / 口令之后的命令:

实例: EXP SCOTT/TIGER

或者,您也可以通过输入跟有各种参数的 EXP 命令来控制“导出”的运行方式。
要指定参数,您可以使用关键字:

格式: EXP KEYWORD=value 或KEYWORD=(value1,value2,...,valueN)
实例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表

USERID 必须是命令行中的第一个参数。

关键字      说明(默认)
---------------------------------------------------
USERID      用户名/口令
FULL      导出整个文件 (N)
BUFFER      数据缓冲区的大小
OWNER      所有者用户名列表
FILE      输出文件 (EXPDAT.DMP)
TABLES      表名列表
COMPRESS      导入一个范围 (Y)
RECORDLENGTH    IO 记录的长度
GRANTS      导出权限 (Y)
INCTYPE      增量导出类型
INDEXES      导出索引 (Y)
RECORD      跟踪增量导出 (Y)
ROWS      导出数据行 (Y)
PARFILE      参数文件名
CONSTRAINTS    导出限制 (Y)
CONSISTENT      交叉表一致性
LOG      屏幕输出的日志文件
STATISTICS      分析对象 (ESTIMATE)
DIRECT      直接路径 (N)
TRIGGERS      导出触发器 (Y)
FEEDBACK      显示每 x 行 (0) 的进度
FILESIZE      各转储文件的最大尺寸
QUERY      选定导出表子集的子句

下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE    导出可传输的表空间元数据 (N)
TABLESPACES    将传输的表空间列表

E:\>imp help=y

可以通过输入 IMP 命令和您的用户名/口令
跟有您的用户名 / 口令的命令:

实例: IMP SCOTT/TIGER

或者, 可以通过输入 IMP 命令和各种自变量来控制“导入”按照不同参数。
要指定参数,您可以使用关键字:

格式: IMP KEYWORD=value 或KEYWORD=(value1,value2,...,vlaueN)
实例: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表

USERID 必须是命令行中的第一个参数。

关键字      说明(默认)
----------------------------------------------
USERID      用户名/口令
FULL      导入整个文件 (N)
BUFFER      数据缓冲区大小
FROMUSER      所有人用户名列表
FILE      输入文件 (EXPDAT.DMP)
TOUSER      用户名列表
SHOW      只列出文件内容 (N)
TABLES      表名列表
IGNORE      忽略创建错误 (N)
RECORDLENGTH    IO 记录的长度
GRANTS      导入权限 (Y)
INCTYPE      增量导入类型
INDEXES      导入索引 (Y)
COMMIT      提交数组插入 (N)
ROWS      导入数据行 (Y)
PARFILE      参数文件名
LOG      屏幕输出的日志文件
CONSTRAINTS    导入限制 (Y)
DESTROY      覆盖表空间数据文件 (N)
INDEXFILE      将表/索引信息写入指定的文件
SKIP_UNUSABLE_INDEXES    跳过不可用索引的维护 (N)
ANALYZE      执行转储文件中的 ANALYZE 语句 (Y)
FEEDBACK      显示每 x 行 (0) 的进度
TOID_NOVALIDATE    跳过指定类型 id 的校验
FILESIZE      各转储文件的最大尺寸
RECALCULATE_STATISTICS 重新计算统计值 (N)

下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE    导入可传输的表空间元数据 (N)
TABLESPACES    将要传输到数据库的表空间
DATAFILES      将要传输到数据库的数据文件
TTS_OWNERS      拥有可传输表空间集中数据的用户

---------------------------------------------------------------------------------------

如果只导出表的结构(建表语句),不导出表的数据,可用Tools--Export User Objects

选中要导出的表,设置好导出的路径和各个参数后,点击Export就OK

PS:这种方式只能导出属于这个用户的表,其他用户的表不能导出,建议用命令行导出(exp, imp)

如果想将表结构,表的数据,触发器,函数之类的全部导出,可用Tools--Export Tables

选中要导出的表(可选多个),导出方式有三种:

Oracle Export,Sql Insert,pl/sql developer

第一种是导出为.dmp的文件格式,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用的最广。

第二种是导出为.sql文件的,选中create tables选项,where clause 里写入 where rownum

第三种是导出为.pde格式的,.pde为Pl/sql developer自有的文件格式,只能用Pl/sql developer自己导入导出;不能用编辑器查看,效率不知道怎么样

PS:只有“Oracle Export”方式导出再导入后,表结构和索引结构没有发生变化,另两种方式都改变了索引类型。

导入的情况和导出一样

在表的所有者不能改变的情况下,可以使用导入导出表结构和表数据的方法,将表移动到你想要的所有者下(注:特别是建立表的时候如果以sysdba的身份登录的话,所有表的所有者都为sys,此时会对你用c#访问数据库产生麻烦,我在我的另一篇文章中也提到《.NET连接Oracle数据库的错误,pl/sql中的myobjects过滤器 》),此时你只能用这种方法改变所有者。

导入表结构:

执行刚刚导出的sql文件,记住要删掉table前的用户名,比如以前这表名为sys.tablename,必须删除sys

导入表数据:

执行刚刚导出的sql文件

 

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to check tablespace size of oracle How to check tablespace size of oracle Apr 11, 2025 pm 08:15 PM

To query the Oracle tablespace size, follow the following steps: Determine the tablespace name by running the query: SELECT tablespace_name FROM dba_tablespaces; Query the tablespace size by running the query: SELECT sum(bytes) AS total_size, sum(bytes_free) AS available_space, sum(bytes) - sum(bytes_free) AS used_space FROM dba_data_files WHERE tablespace_

How to encrypt oracle view How to encrypt oracle view Apr 11, 2025 pm 08:30 PM

Oracle View Encryption allows you to encrypt data in the view, thereby enhancing the security of sensitive information. The steps include: 1) creating the master encryption key (MEk); 2) creating an encrypted view, specifying the view and MEk to be encrypted; 3) authorizing users to access the encrypted view. How encrypted views work: When a user querys for an encrypted view, Oracle uses MEk to decrypt data, ensuring that only authorized users can access readable data.

How to import oracle database How to import oracle database Apr 11, 2025 pm 08:06 PM

Data import method: 1. Use the SQLLoader utility: prepare data files, create control files, and run SQLLoader; 2. Use the IMP/EXP tool: export data, import data. Tip: 1. Recommended SQL*Loader for big data sets; 2. The target table should exist and the column definition matches; 3. After importing, data integrity needs to be verified.

How to create a table in oracle How to create a table in oracle Apr 11, 2025 pm 08:00 PM

Creating an Oracle table involves the following steps: Use the CREATE TABLE syntax to specify table names, column names, data types, constraints, and default values. The table name should be concise and descriptive, and should not exceed 30 characters. The column name should be descriptive, and the data type specifies the data type stored in the column. The NOT NULL constraint ensures that null values ​​are not allowed in the column, and the DEFAULT clause specifies the default values ​​for the column. PRIMARY KEY Constraints to identify the unique record of the table. FOREIGN KEY constraint specifies that the column in the table refers to the primary key in another table. See the creation of the sample table students, which contains primary keys, unique constraints, and default values.

How to uninstall Oracle installation failed How to uninstall Oracle installation failed Apr 11, 2025 pm 08:24 PM

Uninstall method for Oracle installation failure: Close Oracle service, delete Oracle program files and registry keys, uninstall Oracle environment variables, and restart the computer. If the uninstall fails, you can uninstall manually using the Oracle Universal Uninstall Tool.

How to view instance name of oracle How to view instance name of oracle Apr 11, 2025 pm 08:18 PM

There are three ways to view instance names in Oracle: use the "sqlplus" and "select instance_name from v$instance;" commands on the command line. Use the "show instance_name;" command in SQL*Plus. Check environment variables (ORACLE_SID on Linux) through the operating system's Task Manager, Oracle Enterprise Manager, or through the operating system.

How to get time in oracle How to get time in oracle Apr 11, 2025 pm 08:09 PM

There are the following methods to get time in Oracle: CURRENT_TIMESTAMP: Returns the current system time, accurate to seconds. SYSTIMESTAMP: More accurate than CURRENT_TIMESTAMP, to nanoseconds. SYSDATE: Returns the current system date, excluding the time part. TO_CHAR(SYSDATE, 'YYY-MM-DD HH24:MI:SS'): Converts the current system date and time to a specific format. EXTRACT: Extracts a specific part from a time value, such as a year, month, or hour.

How to read the oracle awr report How to read the oracle awr report Apr 11, 2025 pm 09:45 PM

An AWR report is a report that displays database performance and activity snapshots. The interpretation steps include: identifying the date and time of the activity snapshot. View an overview of activities and resource consumption. Analyze session activities to find session types, resource consumption, and waiting events. Find potential performance bottlenecks such as slow SQL statements, resource contention, and I/O issues. View waiting events, identify and resolve them for performance. Analyze latch and memory usage patterns to identify memory issues that are causing performance issues.

See all articles