1.初次导入expdp导出数据库
首先需要在数据库上 create or replace directory dump_dir as ‘/app/dump/’;
并赋予权限:grant read,write on directory dir_dp to 用户名;
select * from dba_directories; 查看dump dir
expdp 执行导出:
expdp 用户名/密码 schemas 用户名 directory=dump_dir dumpfile=hehda_0920.dmp CONTENT=METADATA_ONLY (最好 按用户导出,否则全库导出在导入的时候会有很多错误)
CONTENT=METADATA_ONLY(只导表结构)
CONTENT=data_only(只导数据)
默认是ALL(全表导入)
2.导入impdp 导入数据库
select * from v$tablespace;(查询导出有哪些表空间)
(建表空间和赋权限和可参数这个网址)https://www.cnblogs.com/gzggyy/p/3319315.html
impdp 用户名/密码 directory=dump_dir dumpfile=heheda_0920.dmp CONTENT=METADATA_ONLY
这之间会有不同错误,有的是可以忽略的。
(最后执行这个语句 看看里面的类容 比对原库是否一致)
select object_type, count(1)
from user_objects
group by object_type
order by 1;
最后一步, plsql 连上如果有失效对象可以执行重新编译
@$ORACLE_HOME/rdbms/admin/utlrp.sql(要sqlplus 已 sysdba 运行)
select a.OBJECT_NAME,a.OBJECT_TYPE,a.status from user_objects a where a.status=‘INVALID’; (查询失效的对象)