
impdp 用户名/密码
schemas=要导入的用户(即是使用expdp导出的用户) directory=创建的文件夹名称(directory_name)
dumpfile=testdmp(要放入到directory_path路径下) logfile=implog(可以不写)
[sql] view plain copy
--导入时必须先创建文件夹路径
create or replace directory bao as 'd:\oracle\test';
--给使用的用户授权(读写权限)
Grant read,write on directory bao to scott;
--查看目录及权限
SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d
WHERE ttable_name(+) = ddirectory_name ORDER BY 2, 1;
创建完文件夹后,在win7下是没有创建的文件夹的,需要手动创建文件夹,并且把使用expdp导出的dmp文件放入该文件夹下(开始自己导入时,创建完文件夹后始终在磁盘上找不到)
期间报过好多错,像org-29283,org-06512,ora-29283,ora-39002,org-39070等等,反正很郁闷的~!
创建好文件夹后,进行导入:(我使用的是通过运行command命令进入命令行界面导入)
impdp scott/tiger schemas=certification directory=test dumpfile=testdmp
这要导入后会报错,提示表空间XXX不存在,用户certification不存在
根据错误信息,创建好表空间,和用户,并设置用户的表空间
[sql] view plain copy
CREATE TABLESPACE TEACHER
LOGGING
DATAFILE 'D:\ORACLE\ORADATA\ORCL\TEACHERDBF'
SIZE 1024M
AUTOEXTEND ON
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;
drop user certification;
create user certification identified by cert
DEFAULT TABLESPACE TEACHER;
grant connect,resource to certification;
grant create session,dba to certification;
楼上已经回答了具体 *** 作方法,我从理论上简单说明下。
Oracle数据库的逻辑备份EXP/IMP命令,得到DMP备份文档。逻辑备份EXP有四种方式:
1、系统方式 2、表空间方式 3、用户方式 4、表方式。
但对IMP导入是比较灵活的。即可以完全导入,也可以部分倒入。导入可按以下几种方式进行:
1、对于系统备份方式的完全导入,最好要新建数据库或把现有的数据库清理干净,创建导入文档所必需的表空间、用户等内容;
2、对于表空间备份方式的完全导入,则要创建与备份文档所必须的表空间和用户就可以了;
3、对于用户和表方式备份的导入,则可随意导入到某个用户,无需创建人和结构;
4、对于备份文档的部分导入,根据所要导入的内容灵活处理就可以了。
更详细的内容参看Oracle数据库的逻辑备份EXP/IMP参考书吧。
在Oracle中使用exp和imp导出,导入dmp数据库文件:
一,oracle数据库导出工具 exp:
1 它是一个可执行的文件 存放目录/ORACLE_HOME/bin
exp导出工具将数据库中数据备份压缩成一个二进制系统文件 它有三种模式:
a 用户模式:导出用户所有对象以及对象中的数据;
b 表模式: 导出用户所有表或者指定的表;
c 整个数据库: 导出数据库中所有对象。
2 导出工具exp交互式命令行方式的使用的例子
$exp test/test123@appd
Enter array fetch buffer size: 4096 > 回车
Export file: expdatdmp > mdmp 生成导出的文件名
(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > 3
Export table data (yes/no): yes > 回车wQeLin
Compress extents (yes/no): yes > 回车
Export done in ZHS16GBK character set and ZHS16GBK NCHAR character set
About to export specified tables via Conventional Path wQeLinux联盟
Table(T) or Partition(T:P) to be exported: (RETURN to quit) > cmamenu 要导出的表名
exporting table CMAMENU 4336 rows exported
Table(T) or Partition(T:P) to be exported: (RETURN to quit) >要导出的表名n
Table(T) or Partition(T:P) to be exported: (RETURN to quit) > 回车
Export terminated successfully without warnings
3 导出工具exp非交互式命令行方式的例子
1)、 将数据库TEST完全导出,用户名system 密码manager 导出到D:/daochudmp中
exp system/manager@TEST file=d:/daochudmp full=y
2)、 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:/daochudmp owner=(system,sys)
3) 、将数据库中的表inner_notify、notify_staff_relat导出
exp aichannel/aichannel@TESTDB2 file= d:/data/newsmgntdmp tables=(inner_notify,notify_staff_relat)
4)、 将数据库中的表table1中的字段filed1以"00"打头的数据导出
二,oracle数据库导入工具 imp:
1 它是 *** 作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin
imp导入工具将EXP形成的二进制系统文件导入到数据库中
它有三种模式:
a 用户模式: 导出用户所有对象以及对象中的数据;
b 表模式: 导出用户所有表或者指定的表;
c 整个数据库: 导出数据库中所有对象。
2导入工具imp交互式命令行方式的例子
$ imp
Import: Release 81600 - Production on 星期五 12月 7 17:01:08 2001
(c) Copyright 1999 Oracle Corporation All rights reserved
用户名: test
口令:
连接到: Oracle8i Enterprise Edition Release 81600 - 64bit Production
With the Partitioning option
JServer Release 81600 - Production
导入文件: expdatdmp> /tmp/mdmp
输入插入缓冲区大小(最小为 8192 ) 30720>
经由常规路径导出由EXPORT:V080106创建的文件
警告: 此对象由 TEST 导出, 而不是当前用户
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
只列出导入文件的内容(yes/no):no>
由于对象已存在, 忽略创建错误(yes/no):no> yes
导入权限(yes/no):yes>
导入表数据(yes/no):yes>
导入整个导出文件(yes/no):no> yes
正在将TEST的对象导入到 SCOTT
正在导入表 "CMAMENU" 4336行被导入
成功终止导入,但出现警告。
假设你的数据库是TG(这个库最好不要是生产库),上面有个用户a有imp的权限,你的dmp文件是ddmp,为减少版本不一致的麻烦,建议最好在TG服务器上倒入,倒入要在 *** 作系统提示符下 *** 作(要注意可执行文件的搜索路径),用下面命令可以先生成一个日志文件implog,看一下dmp文件的字符集、有哪些表空间、数据文件的位置
imp a/a用户的登录口令 file=ddmp show=y full=y log=implog
1日志文件里会有dmp数据的字符集,如果与你现有数据库字符集不同,最好分析一下,建议不要倒入了,重新建个库,字符集与dmp的相同
2如果这个dmp是用full=y生成的,日志文件里会有表空间数据文件的路径,从它你大概可以猜到他是windows还是unix,如果与TG服务器 *** 作系统不一样,因为路径问题,必需先建好表空间;如果 *** 作系统一样,那你必需在相应的盘符(win)下,建好相应的路径,到时候会自动建立好表空间
3如果这个dmp是用owner参数生成的,日志文件会告诉你他的owner是什么,那你必需先建好这些用户,并赋予一定的权限
4前面工作做完后就可以用下面命令倒入
imp a/a用户的登录口令 file=ddmp full=y log=imp_1log resumable=y resumable_timeout=86400
因为你不知道这个dmp倒入后会使用多少表空间,因此加了个resumable=y参数,这个参数表示当你倒入时,如果表空间不足以放下dmp中的数据,他会等待你86400秒去解决空间问题,如果在这个时间内解决了空间问题,倒入继续,如果没解决,则报错
exp help=y
imp help=y
说的很清楚
数据库归档不归档都可以,scott是一个用户名,tiger是这个用户的密码,举两个例子
exp scott/tiger owner=scott file=tempdmp log=templog
exp scott/tiger tables=(emp,dept) file=tempdmp log=templog
以上就是关于如何使用impdp导入oracle数据库文件全部的内容,包括:如何使用impdp导入oracle数据库文件、如何将imp数据导入到oracle中同时建立索引、如何在Oracle中使用exp和imp导出,导入dmp数据库文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)