impdp按用户导入

impdp按用户导入

1、创建该用户对象所设计到所有表空间

create tablespace tbs_hankey_dat datafile '/opt/oracle/oradata/tbs_hankey.dbf' size 2G;
create temporary tablespace tbs_hankey_tmp datafile '/opt/oracle/oradata/tbs_hankey_tmp.dbf' size 2G;
create tablespace tbs_hankey_idx datafile '/opt/oracle/oradata/tbs_hankey_idx.dbf' size 2G;

2、创建用户

create user hankey identified by "hankey" default tablespace tbs_hankey_dat temporary tablespace tbs_hankey_tmp;

如果需要清理旧用户的数据,然后导入新数据(生产环境谨慎操作

su - oracle
sqlplus / as sysdba
在执行之前,先断开数据库的会话
drop user hankey cascade;
若删除用户时显示用户占用,请用一下sql查看,然后执行拼接的sql。

select 'alter system kill session '''||sid||','||serial#||''';' from v$session where upper(username)='HANKEY';

3、导入

su - oracle
oracle@Hankey:~$ impdp '/ as sysdba'  DUMPFILE=hankey_202002028.dmp logfile=webcc_sh.log DIRECTORY=DATA_PUMP_DIR transform=oid:n parallel=4

4、使用oracle用户登录到终端,加密内置算法(非必须,当前项目正好用到)

su - oracle
sqlplus / as sysdba

SQL>@?/rdbms/admin/dbmsobtk.sql
SQL>grant execute on DBMS_CRYPTO to hankey;

5、重新编译数据库对象

sqlplus / as sysdba
exec dbms_utility.compile_schema('HANKEY');

6、按用户收集表的统计信息

exec dbms_stats.gather_schema_stats('HANKEY',estimate_percent=>100,no_invalidate=>DBMS_STATS.AUTO_INVALIDATE,method_opt=>'for all columns size auto',force=>TRUE,cascade=>TRUE,degree=>10);

附:按表收集统计分析

exec dbms_stats.gather_table_stats(ownname => 'HANKEY',tabname => 'T_TEST',CASCADE=>TRUE);

原文地址:https://www.cnblogs.com/connected/p/12377451.html