准备:原数据表空间名称、原临时表空间名称、原用户名、dmp数据文件
1.进入oracle用户
su - oracle
2.启用sqlplus
sqlplus /nolog
3.以管理员用户登录
conn /as sysdba
4.创建数据表空间
CREATE SMALLFILE TABLESPACE ''数据表空间名称" DATAFILE '创建位置' SIZE 2G AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
5.创建临时表空间
CREATE SMALLFILE TEMPORARY TABLESPACE ''临时表空间名称" TEMPFILE '创建位置' SIZE 512M AUTOEXTEND ON NEXT 512M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;
6.创建用户
CREATE USER "用户名" PROFILE "DEFAULT" IDENTIFIED BY "密码" DEFAULT TABLESPACE "数据表空间名称" TEMPORARY TABLESPACE "临时表空间名称" ACCOUNT UNLOCK;
7.给用户授权
GRANT "CONNECT" TO "用户名";
GRANT "DBA" TO "用户名";
8.创建directory
CREATE OR REPLACE DIRECTORY 虚拟目录名 as '实际dmp数据所在目录路径';
9.给虚拟目录授权
GRANT READ, WRITE ON DIRECTORY 虚拟目录名 TO "用户名";
10.到oracle用户下
quit
11.导入数据库(最好使用system用户)
impdp system/system@orcl directory=虚拟目录名 dumpfile=数据文件 remap_tablespace=原数据表空间名称:数据表空间名称,原临时表空间名称:临时表空间名称 logfile=日志文件名.LOG remap_schema=原用户名:用户名 exclude=statistics EXCLUDE="TABLE:LIKE'VT%'" PARALLEL=4
12.优化
exec dbms_stats.gather_schema_stats(ownname => '用户名',options => 'GATHER AUTO');
附:
删除表空间:
DROP TABLESPACE 数据表空间或临时表空间名称 INCLUDING CONTENTS AND DATAFILES;
删除用户:
DROP USER 用户名 CASCADE;