1、使用足够权限的用户登录oracle这里我以本地的sys用户(SYSDBA
特权用户)为例使用navicat登录到该数据库(sys用户必须后面跟as sysdba,然后输入口令密码登录)
sqlplus sys as sysdba
2、在oracle中创建一个用户名假设这里是WWT,并且授予可导出、导入的权限。
create user WWT identified by OracleW123;
/**导入**/
GRANT IMP_FULL_DATABASE TO WWT;
/**导出**/
GRANT EXP_FULL_DATABASE TO WWT;
/**导入**/
GRANT DATAPUMP_IMP_FULL_DATABASE TO WWT;
/**导出**/
GRANT DATAPUMP_EXP_FULL_DATABASE TO WWT;
/**这将授予用户在整个数据库范围内进行导入操作所需的系统权限**/
3、为了方便演示现在通过navicat登录并且在该用户下STUDENT表,并且往表里新增两条数据。
出现对表空间USERS无权限的提示。在sys用户登录的命令行下给创建的角色赋予USERS表空间足够的权限和空间,这样我们就可以保持新增的数据了。
ALTER USER WWT QUOTA UNLIMITED ON USERS;
4、准备步骤做完,开始进行导出dmp文件步骤。创建oracle导出目录
create directory dmpdata as 'C:\Users\18748\Desktop\cgj';
5、打开新的cmd,此命令在cmd运行不是在sqlplus中运行,可以看到导出成功。
expdp WWT/OracleW123@127.0.0.1:1521/myora schemas=WWT DIRECTORY=dmpdata DUMPFILE=mystudent.dmp logfile=expwwdp.log;
6、开始导入在导入前需要将你想要导入的数据库表的所属用户授权表空间,导入导出相关权限。同上。在cmd非sqlplus下执行导入命令(这里例如你要导入到WENT用户下,首先需要完成上方的相关权限)
impdp WENT/OracleW123@127.0.0.1:1521/myora DIRECTORY=dmpdata DUMPFILE=MYSTUDENT.DMP remap_schema=WWT:WENT logfile=import.log
#remap_schema=WWT:WENT需要导入到别的用户下是需要此参数进行修改源:目标
#如果不需要更改用户则可以使用下方命令
impdp WENT/OracleW123@127.0.0.1:1521/myora DIRECTORY=dmpdata DUMPFILE=MYSTUDENT.DMP table_exists_action=replace log=impdb12qw.log
到此导入导出就结束了注意:expdp和impdp命令只能在oracle服务端用,客户端请使用exp和imp!!!!