如何使用impdp导入oracle数据库文件

如何使用impdp导入oracle数据库文件,第1张

导入格式(按用户方式导入,oracle在本机)

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数据库文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10148658.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存