导入dmp文件分为三大步:创建表空间、创建用户、导入dmp文件
一、创建表空间:
点击new,新建一个sql window
创建表空间的语句为:
create tablespace CDP datafile 'D:\app\LBD\virtual\oradata\orcl\CDP.dbf' size 2000M
其中,CDP代表表空间名字,datafile后面的目录地址代表本地ORACLE的安装目录,为方便查看我这里将表空间的文件名设置为表空间的名字。文件目录需要自己提前创建好,dbf文件是oracle自己创建的。
运行之后我们就可以看到自己的表空间了
这一步常见的报错有:
ora-01119错误 原因:该错误的主要问题是在于创建表空间的文件目录地址没有指定正确。
ORACLE-01537错误 原因:表空间'CDP'或者文件名'CDP.dbf'已经被使用。
二、创建用户
使用数据库 dba 用户创建用户并赋予相应的导入导出等权限
1.选择new--user
2.点选General标签。选择第一步创建的表空间,并填写用户名密码
3.点选Role Privileges标签。Role选择connect,勾选“Default”。
4.点选System Privileges标签。选择“create any table”、“create any type”、“create any sequence”,
5.点选Quotas标签。tablespace中选择“users”表空间,勾选“Unlimited”(无限权限)。
6.点击APPLY。退出plsql重新登陆。到这里,我们就可以使用刚刚创建的用户以普通用户(Normal)的身份登录了
三、导入dmp文件
给用户赋予dba权限:
1, plsql上用有dba权限的账号登录;
2, 运行GRANT DBA TO MYCDP;
导入dmp命令行:
注意要用windows自带的命令行导入(win+r)
例1:
imp system/123@127.0.0.1:1521/orcl file=C:\pmc20190722.dmp log=D:\test.log fromuser=root touser=system constraints=N ignore=y
例2:
imp MYCDP/MYCDP@ORCL file=D:\umecmycim20200425.dmp full=y;
这一步的常见报错有:
IMP-00013: 只有 DBA 才能导入由其他 DBA 导出的文件。 原因:没有给创建的用户赋权限 ,要用超级管理员账号登陆, 运行GRANT DBA TO MYCDP;赋予dba权限之后才可以导入。
IMP-00002: 无法打开 C:***.dmp进行读取 。 原因:检查sql语句最后是不是少了分号“;”,或者没有加: full=y,这些都会引起无法读取。
IMP-00034:警告:在导出文件中未找到FromUser"root "
注意: 导出时的账号是什么,导进去的账号是什么。注意设置,最好一致!(不一致会出现问题)