dmp文件导入到Oracle数据库
- 格式:doc
- 大小:33.00 KB
- 文档页数:2
Linux下向oracle数据库倒入dmp包的方式1、登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户)2、以sysdba方式来打开sqlplus,命令如下:sqlplus "/as sysdba"3、查看常规将用户表空间放置位置:执行如下sql: select name from v$datafile; 上边的sql一般就将你的用户表空间文件位置查出来了。
4、创建用户表空间:CREATE TABLESPACE 表空间名DATAFILE '/oracle/oradata/test/notifydb.dbf(表空间位置)' SIZE 200M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;5、创建用户,指定密码和上边创建的用户表空间 CREATE USER 用户名 IDENTIFIED BY 密码 DEFAULT TABLESPACE 表空间名;6、赋予权限grant connect,resource to 用户名;grant unlimited tablespace to用户名;grant create database link to用户名;grant select any sequence,create materialized view to用户名; 经过以上操作,我们就可以使用用户名/密码登录指定的实例,创建我们自己的表了续:创建临时表空间:create temporary tablespace test_temp tempfile 'F:\app\think\oradata\orcl\test_temp01.dbf' size 32m autoextend on next 32m maxsize 2048m extent management local; 创建表空间: create tablespace test_data logging datafile 'F:\app\think\oradata\orcl\test_data01.dbf' size 32mautoextend on next 32m maxsize 2048m extent management local; 创建用户:create user jack identified by jack default tablespace test_data temporary tablespace test_temp;为用户赋予权限:GRANT create any table TO jack;GRANT resource,dba TO jack;GRANT select any table TO jack;第一个是授予所有table有create权限,第二个就是赋予DBA的权限,这才是最重要的,其实只要第二就可以了.第三是授予所有table有select权限.四:删除用户表空间的步骤:Alter tablespace 表空间名称 offline;Drop tablespace 表空间名称;(表空间无有数据时用) 或者 drop tablespace 表空间名称 including contents;(表空间下有数据时候用temporary tablespace是oracle里临时表空间,临时表空间主要用途是在数据库进行排序运算、管理索引、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。
连接sha用户connect sha/admin可以创建别的用户5、查看用户权限进入sha用户connect sha/adminSelect * from user_sys_privs;可以查看到一个列表,列代表用户名权限是否可以给别的用户附加权限(N 、Y)行代表权限都有那些6、撤销用户授予的权限必须连接connect system/admin撤销权限revoke是系统撤销权限的关键词Revoke execute any procedure from sha;7、更改用户密码进入sha用户connect sha/adminPassword 输入旧密码输入新密码俩边OK或者用alter user sha identified by xinmima8、删除用户Connect system/adminDrop user sha;9、为用户授予角色Grant dba to sha;Grant connect to sha;Linux下的plsql 创建用户create user sha identified by adminDefault tablespace userTemporary tablespace temp;Granr unlimited tablespace to sha;//权限Grant dba to sha;//角色Grant connect to sha;准备工作(导出dmp文件)1.使用PL/SQL 工具--》导出用户对象,导出用户所有表,视图,存储过程等的定义2.使用PL/SQL 工具--> 导出表,导出所有表的数据这就是那个dmp文件保存好导出的sql脚本和dmp文件准备导入好了,开始导入1.删除用户drop user test cascade;2.删除全部表空间drop tablespace testdb INCLUDING CONTENTS;drop tablespace testdb_index INCLUDING CONTENTS;drop tablespace testdb_temp INCLUDING CONTENTS;3.重新创建表空间和用户并给用户授权CREATE TABLESPACE "DB_QQTB"LOGGINGDATAFILE 'D:\oracle\OraData\DB_QQTB01.ora' SIZE 2000M,'D:\oracle\OraData\DB_QQTB02.ora' SIZE 2000M, 'D:\oracle\OraData\DB_QQTB03.ora' SIZE 2000M EXTENT MANAGEMENT LOCALSEGMENT SPACE MANAGEMENT AUTO/CREATE TABLESPACE "DB_QQTB_INDEX"LOGGINGDATAFILE 'D:\oracle\OraData\DB_QQTB_INDEX.ora' SIZE 500M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO/CREATETEMPORARY TABLESPACE "DB_QQTB_TEMP" TEMPFILE'D:\oracle\OraData\DB_QQTB_TEMP.ora' SIZE 200M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M/create user FZCXidentified by "FZCX"default tablespace DB_QQTBtemporary tablespace DB_QQTB_TEMPprofile DEFAULTquota unlimited on DB_QQTB。
目录目录 (1)1 说明 (1)2 导出dmp文件 (1)3 导入dmp文件 (3)3.1 环境准备 (3)3.2 执行导入 (3)1说明dmp文件为oracle数据库的数据备份文件,执行oracle数据库导出dmp文件,相当于执行数据库备份;执行导入dmp文件,相当于数据库还原。
2导出dmp文件在dos控制台下执行如下指令:exp user/password@orcl file=d:\xxx.dmp其中:user //导出数据库表空间的用户名password //对应的密码orcl //数据库服务名(SID)file //导出的dmp文件存放路径执行过程中,控制台输出:Export: Release 10.1.0.2.0 - Production on 星期一4月9 15:16:33 2012Copyright (c) 1982, 2004, Oracle. All rights reserved.Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsExport done in ZHS16GBK character set and AL16UTF16 NCHAR character set. exporting pre-schema procedural objects and actions. exporting foreign function library names for user MEDICINE. exporting PUBLIC type synonyms. exporting private type synonyms. exporting object type definitions for user MEDICINEAbout to export MEDICINE's objects .... exporting database links. exporting sequence numbers. exporting cluster definitions. about to export MEDICINE's tables via Conventional Path .... . exporting table CERTIFICATEVERRELA TION 20 rows exported . . exporting table ENTERPRISEAPTITUDESVERRELATION 4 rows exported . . exporting table SELLAPPROVECONFIG 0 rows exported . . ……. exporting synonyms. exporting views. exporting stored procedures. exporting operators. exporting referential integrity constraints. exporting triggers. exporting indextypes. exporting bitmap, functional and extensible indexes. exporting posttables actions. exporting materialized views. exporting snapshot logs. exporting job queues. exporting refresh groups and children. exporting dimensions. exporting post-schema procedural objects and actions. exporting statisticsExport terminated successfully without warnings.3导入dmp文件3.1环境准备使用sys用户,以dba角色登录oracle数据库的em,创建表空间以及访问该表空间的用户名,并赋予用户如下角色:1)connect2)dba3)EXP_FULL_DATABASE4)IMP_FULL_DATABASE5)RESOURCE并赋予下列权限3.2执行导入系统控制台下输入:imp user/psw@sid其中:user——数据库表空间的用户名psw——数据库表空间的密码sid——数据库服务名(sid)执行后窗体提示输入dmp文件路径:输入dmp文件路径后,后面提示选项使用默认值即可,具体界面如下:3.3指令解释1)imp user/psw@sid 执行导入指令;2)EXPDAT.DMP > 提示输入dmp文件路径;3)enter insert buffer size (min is 8192)30720:提示最小设置为8192,建议设置30720,可以使用30720即可;4)list contents of import file only,提示输入no。
Oracle导出表空间的创建语句、导⼊、导出dmp⽂件beginfor c in (select , as name2 from v$tablespace tinner join v$datafile don t."TS#"=d."TS#"where t."TS#">4)loopdbms_output.put_line( 'create tablespace '|| ||' DATAFILE '||''''||2||''''||' size 20MAUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;' );end loop;end;结果如:create tablespace EXAMPLE DATAFILE 'D:\ORACLE\ORADATA\ORCL\EXAMPLE01.DBF' size 20MAUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;create tablespace HCZZ_WEB_DATA DATAFILE 'D:\ORACLE\ORADATA\ORCL\DBF_HCZZ_WEB_DATA.DBF' size 20MAUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;create tablespace HCZZ_WEB_INDEX DATAFILE 'D:\ORACLE\ORADATA\ORCL\DBF_HCZZ_WEB_INDEX.DBF' size 20MAUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;数据库导出:--第⼀次新建数据库导⼊使⽤impdp hczz_web/password@localhost/orcl dumpfile=HCZZ_WEB_20170706.dmpimpdp hczz_web/password@221.234.25.77/orcl dumpfile=HCZZ_WEB_20180502.dmpimpdp hczz_web/password dumpfile=HCZZ_WEB_20170706.dmp--第⼆次导⼊使⽤impdp hczz_web/password dumpfile=HCZZ_WEB_20170706.dmp table_exists_action=replace--如果有替换还原新的数据库命,则执⾏----------------------impdp hczz_web_test1/password@localhost/orcl dumpfile=HCZZ_WEB_20170628.DMP table_exists_action=replace remap_schema=hczz_web:hczz_web_test1 impdp hczz_web_test1/password@localhost/orcl dumpfile=HCZZ_WEB_20170628.DMP table_exists_action=replace remap_schema=hczz_web:hczz_web_test1 impdp hczz_web_test1/password@localhost/orcl dumpfile=备份库.DMP table_exists_action=replace remap_schema=原库名:现库名创建表空间/*分为四步 *//*第1步:创建临时表空间 */create temporary tablespace yuhang_temptempfile 'D:\oracledata\yuhang_temp.dbf'size 50mautoextend onnext 50m maxsize 20480mextent management local;/*第2步:创建数据表空间 */create tablespace yuhang_dataloggingdatafile 'D:\oracledata\yuhang_data.dbf'size 50mautoextend onnext 50m maxsize 20480mextent management local;/*第3步:创建⽤户并指定表空间 */create user yuhang identified by yuhangdefault tablespace yuhang_datatemporary tablespace yuhang_temp;/*第4步:给⽤户授予权限 */grant connect,resource,dba to yuhang;创建⽤户DECLAREuser_name CONSTANT VARCHAR2 (64) :='hczz_web';user_password CONSTANT VARCHAR2 (64) :='password';data_tablespace_name CONSTANT VARCHAR2 (64) :='hczz_web_data';temp_tablespace_name CONSTANT VARCHAR2 (64) :='hczz_web_temp';PROCEDURE p_execcmd (v_cmd IN VARCHAR2)ASv_cursorid INTEGER;BEGINv_cursorid := DBMS_SQL.open_cursor;DBMS_SQL.parse (v_cursorid, v_cmd, DBMS_SQL.native);DBMS_SQL.close_cursor (v_cursorid);EXCEPTIONWHEN OTHERSTHENDBMS_SQL.close_cursor (v_cursorid);RAISE;END p_execcmd;BEGIN-------------------1.创建⽤户-----------------------------------------------p_execcmd ( 'CREATE USER '||user_name||' PROFILE DEFAULT IDENTIFIED BY '|| user_password||' DEFAULT TABLESPACE '|| data_tablespace_name||' TEMPORARY TABLESPACE '|| temp_tablespace_name||' ACCOUNT UNLOCK');-------------------2.授权---------------------------------------------------p_execcmd( 'GRANT CONNECT TO '||user_name||' WITH ADMIN OPTION' ); p_execcmd( 'GRANT RESOURCE TO '||user_name||' WITH ADMIN OPTION' ); ---以下慎⽤,权限过⼤p_execcmd( 'GRANT DBA TO '||user_name||' WITH ADMIN OPTION' ); END;。
DMP文件使用IMP导入ORACLE方法在审计中接到被审计单位的ORACLE数据库EXP导出的备份文件XXX.DMP文件,需要导入ORACLE数据库中进行查询。
一、准备工作1、将XXX.DMP拷贝到E:\下;2、使用超大文本查看器logvewer软件打开XXX.DMP,在文件开头中找到导出用户名,使用查找功能输入TABLESPACE查找此单词后的表空间名称。
例如:我们得到财政预算数据库ORACLE数据EXP备份文件IFMIS2012_CJ20121229.DMP文件,经查看用户名为IFMIS2012_CJ,表空间名称为L TSYSDA TA01、L TSYSDA TA02、L TSYSDA TA03、L TINXDA TA01、L TLOBDA TA01、USERS六个,USERS是系统用户表空间,在建立表空间时就不需要再建了。
二、安装ORACLE按照ORACLE 11G安装图解安装就可以了,建议安装企业版桌面模式,启动ORACLE服务,创建实例,使用统一口令。
我安装的是企业版服务器模式,创建实例ORCL,使用统一口令SQ。
三、建立表空间方法有2种,一种DOS下SQLPLUS方式,一种是ORACLE的EM方式。
建议使用EM方式建立表空间:1、启动服务:我的电脑—右键—管理—服务—ORACLE3个服务启动;2、启动EM:开始--程序-- ORACLE-oradb11g_home1-- Database Control - orcl;3、登陆:用户名:sys 口令:SQ(安装时统一口令)连接身份:SYSDBA;4、创建空间表:选‘服务器’—‘表空间’—‘创建’—‘表空间名称’—‘添加物理数据库名称’—‘可扩展,无限制’--‘确定’。
如有其他表空间可以继续—‘创建’~~~‘确定’的程序。
例如:将上述事例的5个表空间逐一创建。
注意:表空间大小的选择要合适,必须要选择可扩展。
四、建立用户并授权建议在DOS下SQLPLUS方式下进行:1、开始—附件—dos提示符;2、输入:CD\ 回车3、以DBA身份登陆超级用户:c:\>SQLPLUS SYS/SQ ASSYSDBA回车4、建立用户(以事例为内容建立):sql>CREA TE USERifmis2012_cj IDENTIFIED BY sq; (ifmis2012_cj用户名,sq 口令)。
Oracle 数据迁移方案1. 简介随着业务的发展和系统的升级,数据迁移已经成为一个不可避免的任务。
在Oracle 数据库中,数据迁移主要包括迁移数据表、迁移数据对象以及导出和导入数据等方面。
本文将介绍一些常用的 Oracle 数据迁移方案。
2. 数据表迁移2.1 导出数据表Oracle 数据表的导出可通过使用expdp命令来实现。
该命令可以将指定的数据表导出为二进制格式的文件,以供后续导入使用。
以下是导出数据表的步骤:1.打开终端或命令行窗口,登录到数据库。
2.运行以下命令导出数据表:expdp username/password@connect_string tables=table1,table2 directory=datapump_dir dumpfile=tables.dmp logfile=tables.log–username/password:登录数据库的用户名和密码。
–connect_string:数据库连接字符串。
–tables:要导出的数据表名称,多个表名之间用逗号分隔。
–directory:导出文件存储的目录。
–dumpfile:导出文件的名称。
–logfile:导出日志文件的名称。
2.2 导入数据表使用impdp命令可以将之前导出的数据表文件导入到目标数据库中。
以下是导入数据表的步骤:1.打开终端或命令行窗口,登录到目标数据库。
2.运行以下命令导入数据表:impdp username/password@connect_string directory=datapump_d ir dumpfile=tables.dmp logfile=import.log–username/password:登录目标数据库的用户名和密码。
–connect_string:目标数据库的连接字符串。
–directory:导出文件存储的目录。
–dumpfile:导出文件的名称。
–logfile:导入日志文件的名称。
plsql导出数据库表dmp⽂件并导⼊数据库过程本⽂将通过plsql客户端⼯具,演⽰如何对Oracle数据库中的表以dmp⽂件的格式进⾏导出和导⼊。
dmp的导出步骤如下:1、打开plsql并登陆,点击⼯具 ——> 导出表2、在打开的窗⼝选中要导出的表,输出⽂件那⾥指定导出的dmp⽂件的保持路径和⽂件名3、点击导出dmp的导⼊步骤如下:1、打开plsql并登陆,点击⼯具 ——> 导⼊表打开plsql并登陆,点击⼯具 ——> 导出表2、在打开的窗⼝中,导⼊⽂件那⾥选择dmp⽂件所在路径和⽂件3、点击导⼊场景:在已有dmp⽂件⽽不知道其中表的表空间名的情况下,有以下两种解决⽅法:1、通过编辑器打开dmp⽂件,通过搜索关键字“TABLESPACE”,找到所有表的所属表空间,然后将其替换为⾃定义的表空间。
再将该dmp ⽂件通过plsql导⼊到Oracle数据库中。
(该⽅法只适⽤在⽂件内容较少的情况下,⽽且将表的所属表空间修改,可能会有不可预计的影响)2、在不知表空间名的情况下,还是直接通过plsql将dmp⽂件导⼊到Oracle数据库中,在导⼊的过程中,可能会产⽣很多的错误,暂时不管。
在导⼊程序执⾏完后,我们直接点击 plsql导⼊窗⼝中的⽇志选项,查看导⼊过程中⽇志信息。
这时,我们可以通过⽇志所提⽰的错误信息,得知某些表原先所属的表空间名,或者是其它的⼀些重要信息。
(⼩编遇到的情况是不知道dmp⽂件中所包含的表的所属表空间名,在第⼀次导⼊dmp⽂件失败后,通过查看⽇志找到数据库中的表原先所属的所有表空间后,依次创建这些表空间,并将数据库清空后再次重新导⼊,此时已经成功。
注:⾄于导出dmp⽂件时的⽤户跟导⼊时的⽤户不同也是可以的,反正我是没受到影响,当然,能够⼀样就更好了)以下是创建数据库⽤户并授权,表空间的设定等相关的sql语句:-- 创建oracle⽤户create user xue identified by 123456;(“xue”为数据库⽤户名,“123456”为该⽤户密码)-- 为新建⽤户授予⾓⾊权限grant dba to xue;(为了⽅便,直接将dba⾓⾊权限赋予新建的数据库⽤户)-- 设置oracle帐号密码永久不过期-- 1、查看⽤户的proifle是那个,⼀般是default:SELECT username,PROFILE FROM dba_users;-- 2、查看指定概要⽂件(如default)的密码有效期设置:SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';-- 3、将密码有效期由默认的180天修改成“⽆限制”:ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;(前三步已经解决第四步没必要)-- 4、修改后,还没有被提⽰ORA-28002警告的⽤户不会再碰到同样的提⽰;-- 已经被提⽰的⽤户必须再改⼀次密码,举例如下:$sqlplus / as sysdbasql> alter user xue identified by 123456;(刚新建的数据库⽤户默认的账号密码有效期为180天,避免以后失效,直接将其设为永久不过期)-- 1.创建表空间create tablespace XUESPACE datafile 'C:\Java\oracle_tablespace\XUESPACE.dbf' size 100m reuse autoextend on next 10m maxsize unlimited;(“XUESPACE”为新建的表空间名称,“C:\Java\oracle_tablespace\XUESPACE.dbf”是与表空间对应的⽂件的路径和⽂件名,其它的表空间⼤⼩相关的设定,暂时可忽略)-- 2.创建⽤户,指定表空间和临时表空间create user xue identified by 123456 default tablespace XUESPACE temporary tablespace temp;(“XUESPACE”为⽤户“xue”指定的表空间,“temp”为其临时表空间)-- 3.查看当前⽤户默认的表空间、临时表空间select * from user_users;( username 为当前⽤户名;default_tablespace 为当前⽤户默认的表空间;temporary_tablespace 为当前⽤户默认的临时表空间)-- 4.修改⽤户默认的表空间alter user xue default tablespace spaceX;(将⽤户“xue”的默认表空间改为“spaceX”)-- 查看某个表空间有多少张表select * from all_tables where tablespace_name='spaceX';(“spaceX”为表空间名,此处需要注意表空间名的⼤⼩写,如“USERS”必须为⼤写才能将数据查询出来)-- 查看某个⽤户关联的所有表空间及各个表空间中表的数量select tablespace_name,count(*) from all_tables where owner = 'XUE' group by tablespace_name;-- Oracle如何查询表空间对应⽂件所在的路径select * from dba_data_files where tablespace_name='USERS';(“USERS”为表空间名)。
使用命令导入dmp文件impdp序:以前写过使用imp、exp的导入导出,现在与时俱进,高版本的oracle使用泵的导入导出更方便了,主要特点是快、压缩率高占用空间小。
这里主要讲解linux环境下的使用,其实windows的环境下使用时一样的,下面一起讲解吧一、连接到linux这里使用Xshell工具,连接后如图:二、切换到oracle用户su– oracle注意“-”前后的空格三、连接到oracle格式:sqlplus [用户名/密码@url:端口/实例名]或/ as sysdba sqlplus / as sysdba (连接到本机oracle)注意“/”前后的空格sqlplus SDP_CMS_HRB/SDP_CMS_HRB@10.9.219.24/orcl(在linux和oracle下通用)LinuxWindowsPs:如果再windows无法连接到oracle,请确定安装的客户端是否支持服务器上安装的oracle的版本。
四、建用户create user SDP_CMS_HRB identified by SDP_CMS_HRB;见上一步windows的图,已经创建用户。
五、建表空间这里拿到一个dmp文件有时候同事没有告诉表空间,需要自己查看,其实可以使用UE文本编辑软件打开查看,搜索tablespace,或者先不建表空间直接导入一次后看导入日志。
格式:Create tablespace表空间名datafile表空间文件路径size 32m autoextend on next 32m maxsize 1024m extentmanagement local;Create tablespace SDP_PORTALMS_HRB datafile'/u01/oracle/oradata/orcl/SDP_PORTALMS_HRB.dbf' size32m autoextend on next 32m maxsize 1024m extent management local;注意表空间文件路径是相对连接的服务器的路径,这里oracle是安装在linux,如果是安装在windows则路径是E:xx/orcl类似这样的。
1.2用imp 工具进行数据库备份及恢复导入模式可以分为full(全文件导入),owner(用户导入),table(表导入).full(全文件导入):指导入文件中的所有数据,并不是指全库导入,如果文件中只存在一个表的数据全文件,导入就只能导入一个表的数据.fromuser,touser( 用户导入):指导入文件中该用户的所有数据,如果文件中只存在一个表的数据,用户导入就只能导入一个表的数据.tables( 表导入):指导入文件中该表的数据.能够导入何数据很大程度上依赖于导出文件,譬如需要导入某用户的所有数据.导出文件中必须存在该用户的所有数据,即导出时必须为全库导出或用户导出.在CAMS 系统中,如果为了备份整个cams 用户的数据应该在导出时选择全库或者用户导出.说明:导入时需要注意需要事先创建需要导入的用户以及该用户的所有权限,所以在执行以下导入的用例之前,都需要先创建cams用户.创建CAMS用户的脚本见附录1.2.1 典型用法1. 交互式-用户导入[oracle@localhost script]$ impImport: Release 8.1.7.4.0 - Production on Mon Feb 9 13:59:02 2004(c) Copyright 2000 Oracle Corporation. All rights reserved.Username: cams --此处输入启动导入的用户Password: --此处输入相应的密码Connected to: Oracle8i Enterprise Edition Release 8.1.7.4.0 -ProductionJServer Release 8.1.7.4.0 - ProductionImport file: expdat.dmp > /tmp/2004020601.dmp--此处输入需要导入的文件名,如果导出数据时导出到了多个文件,则imp 会提示用户需要输入下一个需要导入的文件名.交互式导入时大多数参数都有缺省值.如果选用缺省值,直接回车即可.Enter insert buffer size (minimum is 8192) 30720>--此处需要输入buffer值,此处通常选择缺省值,直接回车.Export file created by EXPORT:V08.01.07 via conventional pathimport done in ZHS16CGB231280 character set and ZHS16CGB231280 NCHARcharacter setIMP-00046: using FILESIZE value from export file of 1073741824List contents of import file only (yes/no): no >--如果选择yes则imp 会显示出导入文件的数据,并且这些数据这不会被导入数据库中.如果事先不知道导入文件中有哪些数据,可以利用此参数查看文件内容.此处直接回车.Ignore create error due to object existence (yes/no): no > --是否忽略对象已经存在的错误,如果选择yes 则出现对象已经存在的错误时,不显示错误信息.Import grants (yes/no): yes > --是否导入授权通常选择yesImport table data (yes/no): yes > --是否导入表中数据如果选择no,则只导入表的结构通常选择yesImport entire export file (yes/no): no > --是否导入整个文件如果选择yes,则imp 导入整个文件的数据.如果选择no,则下面会提示需要导入的用户名以及表名Username: camsii --需要导入的用户名Enter table(T) or partition(T:P) names. Null list means all tables foruserEnter table(T) or partition(T:P) name or . if done: . ?需要导入的表名或表的分区名如果输入表名则只导入该用户模式下的表的数据如果输入回车或.则表示要导出该用户的所有数据此处输入.. . importing table "TBL_BILLDETAIL_SWITCH" 0 rows imported. . importing table "TBL_BLACKLIST" 0 rows imported. . importing table "TBL_CHARGE_CARD" 0 rows imported. . importing table "TBL_DISCOUNT_BY_TIME" 0 rows imported. . importing table "TBL_ERROR_CODE" 377 rows imported……About to enable constraints...Import terminated successfully with warnings.该命令从文件中导入cams 用户的所有数据如果有多个文件imp 会提示用户输入文件名2. 交互式-表导入可以利用全库导出用户导出和表导出的文件进行表导入.此例可以使用exp典型用法的例1,例2,例3,例4,例5,例8导出的文件进行导入[oracle@localhost script]$ impImport: Release 8.1.7.4.0 - Production on Mon Feb 9 15:49:36 2004(c) Copyright 2000 Oracle Corporation. All rights reserved.Username: camsPassword:Connected to: Oracle8i Enterprise Edition Release 8.1.7.4.0 -ProductionJServer Release 8.1.7.4.0 - ProductionImport file: expdat.dmp > /tmp/2004020601.dmpEnter insert buffer size (minimum is 8192) 30720>Export file created by EXPORT:V08.01.07 via conventional pathimport done in ZHS16CGB231280 character set and ZHS16CGB231280 NCHARcharacter setIMP-00046: using FILESIZE value from export file of 2147483648List contents of import file only (yes/no): no >Ignore create error due to object existence (yes/no): no >Import grants (yes/no): yes >Import table data (yes/no): yes >Import entire export file (yes/no): no >Username: camsEnter table(T) or partition(T:P) names. Null list means all tables foruserEnter table(T) or partition(T:P) name or . if done: tbl_logEnter table(T) or partition(T:P) name or . if done: tbl_user_logEnter table(T) or partition(T:P) name or . if done:--每输入一个表名后回车,imp 会提示用户输入下一个要导入的表名,如果想结束输入表名,需要输入回车或".". importing CAMS's objects into CAMS. . importing table "TBL_LOG" 10 rows imported. . importing table "T BL_USER_LOG" 0 rows importedImport terminated successfully with warnings.该命令从文件中导入cams 用户的两个表的数据如果有多个文件imp 会提示用户输入文件名3. 命令行-查看文件内容imp userid=cams/cams@cams full=y show=y file=(tmp/2004020601.dmp,/tmp/2004020602.dmp, /tmp/2004020603.dmp) log=/tmp/20040206.log该命令查看了文件中都有哪些数据,如果有多个文件imp,会提示用户输入文件名导入过程记录日志.4. 命令行-全文件导入imp userid=cams/cams@cams full=y file=(/tmp/2004020601.dmp,/tmp/2004020602.dmp, /tmp/2004020603.dmp) log=/tmp/20040206.log该命令从文件中导入全部数据,如果有多个文件imp,会提示用户输入文件名,导入过程记录日志.5. 命令行-用户导入imp userid=cams/cams@cams fromuser=cams touser=camsfile=(/tmp/2004020601.dmp, /tmp/2004020602.dmp, /tmp/2004020603.dmp)log=/tmp/20040206.log该命令从文件中导入cams用户的全部数据,导出的文件中必须要有cams,用户的数据表示将导出文件的cams 用户数据导入到数据库的cams 用户中,如果有多个文件imp,会提示用户输入文件名导入过程记录日志.6. 命令行-表导入imp userid=cams/cams@cams tables=(tbl_user, tbl_user_log)file=(/tmp/2004020601.dmp, /tmp/2004020602.dmp, /tmp/2004020603.dmp)log=/tmp/20040206.log该命令从文件中导入cams 用户的两个表的全部数据,导出的文件中必须要有cams 用户的这两个表的数据.如果有多个文件imp会提示用户输入文件名,导入过程记录日志7. 命令行-用户导入-从增量导出文件中导入imp userid=cams/cams@cams fromuser=cams touser=camsfile=/tmp/2004020601.dmp log=/tmp/20040206.log该命令从增量导出文件中导入cams 用户新增的数据,导出的文件中必须要有cams 用户的数据,如果有多个文件imp 会提示用户输入文件名,导入过程记录日志.其实导入命令和是否增量导出文件没有关系,imp 会自动判断该文件是否为增量导出文件8. 参数文件-用户导入imp parfile=cams_imp.parcams_imp.par 文件的内容为:userid=cams/cams@camsfromuser=camstouser=camsfile=(/tmp/2004020601.dmp, /tmp/2004020602.dmp, /tmp/2004020603.dmp)log=/tmp/20040206.log该命令使用了参数文件,导入文件中cams 用户的所有数据,导入过程记录日志.说明:(1) cams 用户保存了CAMS 系统的重要数据,为了不暴露cams 用户的密码可以将上面的userid 的值写为cams@cams,此时imp 会提示用户输入密码,输入的密码不会显示出来.在windows下导入全部文件在dos下输入:imp system/manager@local full=y file=d:\iex.dmp本文来自CSDN博客,转载请标明出处:/maxDreame/archive/2008/12/17/3539261.aspx。
向Oracle数据库导入DMP文件
说明:dmp文件为Oracle数据库备份文件。
命令:imp:导入
emp:导出
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 将数据库TEST完全导出,用户名system 密码sql 导出到D:\daochu.dmp中
exp system/sql@TEST file=d:\daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/sql@TEST file=d:\daochu.dmp owner=(system,sys)
3 将数据库中的表table1、table2导出
exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=( table1、table2)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/sql@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"
上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面加上compress=y 来实现。
数据的导入:
1 将D:\daochu.dmp 中的数据导入TEST数据库中。
imp system/sql@TEST file=d:\daochu.dmp
imp aichannel/aichannel@HUST full=y file=file= d:\data\newsmgnt.dmp ignore=y
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上ignore=y 就可以了。
2 将d:\daochu.dmp中的表table1 导入
imp system/sql@TEST file=d:\daochu.dmp tables=(table1)
基本上上面的导入导出够用了。
不少情况要先是将表彻底删除,然后导入。
!!!若导入时出现有个别表不能成功导入时,只能在数据库里新建表结构,再通过imp命令导入。
1.根据导入表时在SQL*PLUS中的提示,会说什么表不能正确创建,在列出相应表的所有表结构。
2.在SQL*PLUS里复制表结构到TXT文档,设置好格式,放在C:\1.txt下。
3.在SQL*PLUS里通过@ C:\1.txt 运行,提示表创建结构成功。
4.向新创建的表导入数据。
Imp system/sql@orcl file=d:\0955.dmp tables=(table1,table2,table3) ignore=y
5.观察提示,成败在此一举。
注意:
操作者要有足够的权限,权限不够它会提示。
数据库时可以连上的。
可以用tnsping TEST 来获得数据库TEST能否连上。
附录一:
给用户增加导入数据权限的操作
第一,启动sql*puls
第二,以system/sql登陆
第三,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/sql full=y file=*.dmp
或者imp userid=system/sql full=y file=filename.dmp
执行示例:
F:\Work\Oracle_Data\backup>imp userid=test/test full=y file=inner_notify.dmp
屏幕显示
Import: Release 8.1.7.0.0 - Production on 星期四2月16 16:50:05 2006
(c) Copyright 2000 Oracle Corporation. All rights reserved.
连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production
经由常规路径导出由EXPORT:V08.01.07创建的文件
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
导出服务器使用UTF8 NCHAR 字符集(可能的ncharset转换)
. 正在将AICHANNEL的对象导入到AICHANNEL
. . 正在导入表"INNER_NOTIFY" 4行被导入
准备启用约束条件...
成功终止导入,但出现警告。