oracle怎么导入dmp文件

oracle怎么导入dmp文件,第1张

关于dmp文件我们用的还是比较多的,dmp文件它是作为oracle导入和导出表使用的文件格式,今天就将dmp文件导出和导入进行学习。

dmp文件导出

dmp文件导出用的比较多的一般是三种,他们分别是:导出整个数据库实例下的所有数据、导出指定用户的所有表、导出指定表。

这里已我的数据库为例,进行介绍,我的Oracle数据库实例为"ORACLE",查看自己数据库实例可以从"任务管理器-->服务"中进行查看,如下图

打开命令行:

1,将数据库ORACLE完全导出,用户名system密码manager 导出到c:\daochudmp中

exp system/manager@ORACLE  file=c:\daochudmp full=y

2,将数据库中RFD用户与,JYZGCX用户的表导出

exp system/manager@ORACLE  file=d:\daochudmpowner=(RFD,JYZGCX)

3,将数据库中的表T_USER、T_ROLE导出

expJYZGCX/JYZGCX@ORACLEfile=  d:\data\newsmgntdmp tables=(T_USER,T_ROLE)

上面的system为用户名,manager为密码,ORACLE为数据库实例名,其实不一定非的用system用户,只要是拥有管理员权限的用户都可以。

dmp文件导入

1,打开“开始”-->输入cmd—> sqlplus /nolog;

2,输入 conn / as sysdba管理员账户登录;

3,需要创建表空间,如果我们知道需要导入的数据库的表空间直接创建就可以,如果不不知道,也没有关系,我们可以用txt打开dmp文件,使用快捷键ctrl+F,查找tablespace,就可以找到这个dmp文件所对应数据库的表空间,然后创建我们找到的表空间就可以;

步,不创建的表空间,创建用户,并分配权限;

5,打开“开始”-->输入cmd(注意:这里是cmd窗口,不是sqlplus窗口!!!),输入以下语句:“imp  kang/123456@localhost/ORACLEfile="C:\daochudmp"full=y ignore=y”

上述语句说明如下:

kang是创建的登录数据库用户名;

123456是登录数据库的密码;

localhost:代表当前数据库的地址是本机,如果是远程导入,替换成对应的ip地址就行

ORACLE:是实例名称)

file:后面的是你当前dmp文件存放的路径

full=y,这个貌似是全部

ignore=y,忽略一些错误

我当时导dmp的时候 查看了log文件。如果不成功的话会有提示的,比如一开始给我的提示是导入失败,原因是表空间不存在,这时候自己建一个同名的表空间就可以了;然后又重新导,又提示了用户不存在(也可能是别的什么吧,有点记不清了),这时候自己创建一个同名的用户,授权一下就可以了再继续重新导,然后根据log文件的提示一步一步的就可以成功了。

如果不知道fromuser的话  有一个建议,就是在cmd里直接  输 imp 用户名B/密码 回车  然后把dmp文件拖到cmd里,根据提示来做,会有一步提示你原文件由用户A导出,现在要用户B导入吗这时候就可以看到用户A了就是 fromuser了

我有一个dmp文件,不知道对方的用户名(就是fromuser不知道) 肿么才能把这个dmp导入到我的数据库中呢? 相关问题 举报 感谢您为社区的和谐贡献力量请选择举报类型

a 用户模式:导出用户所有对象以及对象中的数据

b表模式: 导出用户所有表或者指定表

c整个数据库: 导出数据库中所有对象

oracle是这样的,你建立的oracle会有几个用户名和密码,这个都是在你安装的时候可以选择手动设置密码。然后会有几个用户如:sys,system,sysdba。。。然后你的数据库用户是AAA,这个用户名是用system创建的,表空间也是需要创建的,之后将其分给到AAA用户下。你拿到的那个aaadmp文件是用exp命令导出的文件。现在就是要把aaadmp导入的表TEST_AAA中,也就是imp命令。imp AAA/用户名密码@数据库名字 fromuser=XXX touser=AAA(这是从XXX数据库到AAA中) file=aaadmp的路。你这里给的信息不全,没有数据库名字。推荐你去看下,用户,表空间,数据库这些东西之间的关系。会很有助于你解决问题。

cmd的 *** 作命令导出导入dmp文件
利用cmd的 *** 作命令导出,详情如下(备注:方法二是转载网上的教程):
1:G:\Oracle\product\1010\Client_1\NETWORK\ADMIN目录下有个tnsnameora文件,内容如下:

hz_rmdb =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 1910911336)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = rmdb)
)
)
其中:hz_rmdb为数据库名,HOST为IP地址,所以可以仿效上面的例子手动添加数据录连接。
2:用cmd进入命令行
输入:tnsping hz_rmdb
就是测试1910911336是否连接成功
3:导入与导出,如下:
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochudmp中
exp rmdb/rmdb123@hz_rmdb file=d:\daochudmp full=y
2 将数据库中system用户与sys用户的表导出
exp rmdb/rmdb123@hz_rmdb file=d:\daochudmp owner=(system,sys)
3 将数据库中的表table1 、table2导出
exp rmdb/rmdb123@hz_rmdb file=d:\daochudmp tables=(table1,table2)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp rmdb/rmdb123@hz_rmdb file=d:\daochudmp tables=(table1) query=\" where filed1 like '00%'\"

上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
不过在上面命令后面 加上 compress=y 就可以了
数据的导入:
1 将D:\daochudmp 中的数据导入 TEST数据库中。
imp rmdb/rmdb123@hz_rmdb file=d:\daochudmp
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:\daochudmp中的表table1 导入
imp rmdb/rmdb123@hz_rmdb file=d:\daochudmp tables=(table1)

注意事项:导出dmp数据时需要有导出表的权限的用户,否则不能导出。

现提出解决方法,供参考:案例如下:源数据库目标数据库
DatasourceLSA_1LSA_2
TableSpaceAB
1在Oracle系统控制台下,点击"安全性/用户",在选项卡的"系统",取消用户A和B的权限Unlimitedtablespace。
2在Oracle系统控制台下,点击"安全性/用户/B",在选项卡的"限额"下设置用户B的限额属性为"无限制"。
3导出:expuserid=A/pass@LSA_1file=LSA_1dmpowner=A
4导入:impuserid=B/pass@LSA_2file=LSA_1dmpfromuser=Atouser=Bignore=y
5成功完成注意事项:
1以上方法中,必须注意12两点,才能保证导入到指定的表空间。
2如果要在已有的数据表中追加记录,导入时使用参数rows=y,如
impuserid=B/pass@LSA_2file=LSA_1dmpfromuser=Atouser=Bignore=yrows=y

imp管理员用户/密码@数据库名fromuser=原数据用户名touser=要导入数据的用户名file=f:\XXXDMPignore=ytables=(cb_general)ps:ignore=y如果表已经创建,那么用ytables代表要恢复的表名

实现的方法和详细的 *** 作步骤如下:

1、第一步,如果要从Oracle实例orcl导出多个dmp文件表,则在打开cmd窗口后,首先设置环境变量以将Oracle实例切换为orcl(设置ORACLE_SID
 = orcl),然后登录到sqlplus
 ,如下图所示,然后进入下一步。

2、其次,完成上述步骤后,可以使用sql语句“select  from dba_directories”以查看当前实例下可用的dmp导出目录。
 导出dmp文件时,可以选择其中之一,如下图所示,然后进入下一步。

3、接着,完成上述步骤后,退出sqlplus并使用命令“expdp”导出需要的数据库表dmp文件,如下图所示,然后进入下一步。

4、最后,完成上述步骤后,就可以将该文件导入实例orcl中的另一个用户,如下图所示。这样,问题就解决了。

1、首先进入命令行,点击开始,输入cmd。

2、键盘按回车键,出现命令行窗口。

3、接着导入的命令是:imp 用户名/密码@网络服务名 file=xxxdmp full=y。

4、导出的命令是:exp 用户名/密码@网络服务名 file=xxxdmp tables=(表名)

5、就可以进行dmp数据库表结构和表数据的同时导入导出了,这样就完成了。


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

原文地址: https://www.outofmemory.cn/yw/13404844.html

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

发表评论

登录后才能评论

评论列表(0条)

保存