关于dmp文件我们用的还是比较多的,dmp文件它是作为oracle导入和导出表使用的文件格式,今天就将dmp文件导出和导入进行学习。
dmp文件导出
dmp文件导出用的比较多的一般是三种,他们分别是:导出整个数据库实例下的所有数据、导出指定用户的所有表、导出指定表。
这里已我的数据库为例,进行介绍,我的Oracle数据库实例为"ORACLE",查看自己数据库实例可以从"任务管理器-->服务"中进行查看,如下图
打开命令行:
1,将数据库ORACLE完全导出,用户名system密码manager 导出到c:\daochu.dmp中
exp system/manager@ORACLE file=c:\daochu.dmp full=y
2,将数据库中RFD用户与,JYZGCX用户的表导出
exp system/manager@ORACLE file=d:\daochu.dmpowner=(RFD,JYZGCX)
3,将数据库中的表T_USER、T_ROLE导出
expJYZGCX/JYZGCX@ORACLEfile= d:\data\newsmgnt.dmp 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:\daochu.dmp"full=y ignore=y”
上述语句说明如下:
kang是创建的登录数据库用户名;
123456是登录数据库的密码;
localhost:代表当前数据库的地址是本机,如果是远程导入,替换成对应的ip地址就行
ORACLE:是实例名称)
file:后面的是你当前dmp文件存放的路径
full=y,这个貌似是全部
ignore=y,忽略一些错误
备注:关于数据库实例、表空间、用户等基本概念和创建的语句可参考前面的文章“Oracle学习——扫盲篇”
小结
本篇文章主要讲述了,oracle数据导出和导入的具体步骤,其中导入dmp文件的时候即便不知道表空间、用户名和密码也可以进行导入。
通过导入导出dmp文件,可以把一个或多个数据库表的表结构和表数据同时导入导出。下面是进行导入导出的步骤:
1、进入命令行,点击开始,输入cmd;
2、回车,出现命令行窗口;
3、导入的命令是“imp 用户名/密码@网络服务名 file=xxx.dmp full=y”,输入此命令即可导入;
4、导出的命令是“exp 用户名/密码@网络服务名 file=xxx.dmp tables=(表名)”,输入此命令即可导出。
1、先看你要目标数据库与备份的版本差异(此类问题解决的是导入版本出错问题)
2、是怎么备份出来的(是exp备出的,还是数据泵备出的)
2、备份出来的数据的用户名
3、了解备份是有分区表的还是没有分区表的,有分区表的先建立分区表空间。
4、看数据量大不大,如果大的话要先建立大表的结构,这样导入速度快。
5、先按照先前的表空间建立数据库。
6、建立完成导入(开始->运行->输入cmd imp 用户名/密码 fromuser=备份出来的用户名 touser=用户名 file=路径\备份.dmp log=路径\日志名.log buffer=4096000 ignore=y commit=y feedback=10000)
本机安装了ORACLE 的话
点击开始-->运行-->cmd
在黑窗口 imp 用户名/密码@数据库名 file=dmp路径 full="y"
imp mes/mes@ORCL file="d:\110516mes.dmp" full="y" 这是我的。
导入的时候你要创建相应的用户赋予权限
开始->运行->输入cmd->imp PECARD_HN/PECARD_HN@127.0.0.1:1521/orcl file=E:\work\dmp\PECARD_HN.dmp full=y