一、Windows环境下
运行cmd,依次执行以下语句
1、sqlplus /nolog
2、conn sys /as sysdba 登录到Oracle数据库
3、create directory imp_dump as ‘C:\Users\XXX\Desktop\XXX’;
创建目录imp_dump,地址为保存dmp文件的文件夹路径。
可以用select * from dba_directories;语句查看当前已经存在的目录。
4、CREATE TABLESPACE AXX logging DATAFILE ‘BXX\CXX.DBF’ size 10240M autoextend on next 100M maxsize 10G extent management local;
创建新的表空间,也可以不创建使用已有的表空间。DATAFILE为保存的DBF文件路径。
可以通过select * from dba_data_files t;语句查看其他表空间存放位置。
5、create user username identified by userpassword Default tablespace AXX; 创建用户指定默认表空间为新创建的表空间
grant dba,connect,resource to username; 给用户授予dba,connect,resource权限
grant read,write on directory imp_dump to username; 给用户授予对新创建的目录的操作权限
grant unlimited tablespace to username; 给用户授予所有表空间的权限
所有语句都执行完后,用exit退出。
6、impdp username/userpassword directory=imp_dump dumpfile=XX.dmp logfile=XX.log table_exists_action=REPLACE remap_schema=olduser:newuser REMAP_TABLESPACE=old:new
其中table_exists_action参数表示如果要导入的表已存在对应的操作,REPLACE表示先drop在创建,还有其他skip、append、truncate三个参数值。remap_schema参数表示从原来的olduser用户迁到新的newuser用户。REMAP_TABLESPACE参数表示从原来的old表空间迁到新的new表空间。
二、Linux环境下
1、使用Xshell连接到服务器,切换到Oracle用户
su – oracle
2、剩余步骤与Windows环境下1-6步相同,把路径改成服务器上的路径,将所有dmp文件上传到创建的目录下,对文件修改权限,oracle用户要有读写可执行权限。可以使用chmod 777 /xx/xx/ -R将整个目录下的所有文件权限改为777。注意第6步执行前用exit命令退出。